• Skip to content
  • Skip to link menu
Trinity API Reference
  • Trinity API Reference
  • dcop
 

dcop

  • dcop
  • dcopidl
scanner.cpp
1 #line 2 "scanner.cpp"
2 
3 #line 4 "scanner.cpp"
4 
5 #define YY_INT_ALIGNED short int
6 
7 /* A lexical scanner generated by flex */
8 
9 #define FLEX_SCANNER
10 #define YY_FLEX_MAJOR_VERSION 2
11 #define YY_FLEX_MINOR_VERSION 5
12 #define YY_FLEX_SUBMINOR_VERSION 35
13 #if YY_FLEX_SUBMINOR_VERSION > 0
14 #define FLEX_BETA
15 #endif
16 
17 /* First, we deal with platform-specific or compiler-specific issues. */
18 
19 /* begin standard C headers. */
20 #include <stdio.h>
21 #include <string.h>
22 #include <errno.h>
23 #include <stdlib.h>
24 
25 /* end standard C headers. */
26 
27 /* flex integer type definitions */
28 
29 #ifndef FLEXINT_H
30 #define FLEXINT_H
31 
32 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
33 
34 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
35 
36 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
37  * if you want the limit (max/min) macros for int types.
38  */
39 #ifndef __STDC_LIMIT_MACROS
40 #define __STDC_LIMIT_MACROS 1
41 #endif
42 
43 #include <inttypes.h>
44 typedef int8_t flex_int8_t;
45 typedef uint8_t flex_uint8_t;
46 typedef int16_t flex_int16_t;
47 typedef uint16_t flex_uint16_t;
48 typedef int32_t flex_int32_t;
49 typedef uint32_t flex_uint32_t;
50 #else
51 typedef signed char flex_int8_t;
52 typedef short int flex_int16_t;
53 typedef int flex_int32_t;
54 typedef unsigned char flex_uint8_t;
55 typedef unsigned short int flex_uint16_t;
56 typedef unsigned int flex_uint32_t;
57 
58 /* Limits of integral types. */
59 #ifndef INT8_MIN
60 #define INT8_MIN (-128)
61 #endif
62 #ifndef INT16_MIN
63 #define INT16_MIN (-32767-1)
64 #endif
65 #ifndef INT32_MIN
66 #define INT32_MIN (-2147483647-1)
67 #endif
68 #ifndef INT8_MAX
69 #define INT8_MAX (127)
70 #endif
71 #ifndef INT16_MAX
72 #define INT16_MAX (32767)
73 #endif
74 #ifndef INT32_MAX
75 #define INT32_MAX (2147483647)
76 #endif
77 #ifndef UINT8_MAX
78 #define UINT8_MAX (255U)
79 #endif
80 #ifndef UINT16_MAX
81 #define UINT16_MAX (65535U)
82 #endif
83 #ifndef UINT32_MAX
84 #define UINT32_MAX (4294967295U)
85 #endif
86 
87 #endif /* ! C99 */
88 
89 #endif /* ! FLEXINT_H */
90 
91 #ifdef __cplusplus
92 
93 /* The "const" storage-class-modifier is valid. */
94 #define YY_USE_CONST
95 
96 #else /* ! __cplusplus */
97 
98 /* C99 requires __STDC__ to be defined as 1. */
99 #if defined (__STDC__)
100 
101 #define YY_USE_CONST
102 
103 #endif /* defined (__STDC__) */
104 #endif /* ! __cplusplus */
105 
106 #ifdef YY_USE_CONST
107 #define yyconst const
108 #else
109 #define yyconst
110 #endif
111 
112 /* Returned upon end-of-file. */
113 #define YY_NULL 0
114 
115 /* Promotes a possibly negative, possibly signed char to an unsigned
116  * integer for use as an array index. If the signed char is negative,
117  * we want to instead treat it as an 8-bit unsigned char, hence the
118  * double cast.
119  */
120 #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
121 
122 /* Enter a start condition. This macro really ought to take a parameter,
123  * but we do it the disgusting crufty way forced on us by the ()-less
124  * definition of BEGIN.
125  */
126 #define BEGIN (yy_start) = 1 + 2 *
127 
128 /* Translate the current start state into a value that can be later handed
129  * to BEGIN to return to the state. The YYSTATE alias is for lex
130  * compatibility.
131  */
132 #define YY_START (((yy_start) - 1) / 2)
133 #define YYSTATE YY_START
134 
135 /* Action number for EOF rule of a given start state. */
136 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
137 
138 /* Special action meaning "start processing a new file". */
139 #define YY_NEW_FILE yyrestart(yyin )
140 
141 #define YY_END_OF_BUFFER_CHAR 0
142 
143 /* Size of default input buffer. */
144 #ifndef YY_BUF_SIZE
145 #ifdef __ia64__
146 /* On IA-64, the buffer size is 16k, not 8k.
147  * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
148  * Ditto for the __ia64__ case accordingly.
149  */
150 #define YY_BUF_SIZE 32768
151 #else
152 #define YY_BUF_SIZE 16384
153 #endif /* __ia64__ */
154 #endif
155 
156 /* The state buf must be large enough to hold one state per character in the main buffer.
157  */
158 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
159 
160 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
161 #define YY_TYPEDEF_YY_BUFFER_STATE
162 typedef struct yy_buffer_state *YY_BUFFER_STATE;
163 #endif
164 
165 extern int yyleng;
166 
167 extern FILE *yyin, *yyout;
168 
169 #define EOB_ACT_CONTINUE_SCAN 0
170 #define EOB_ACT_END_OF_FILE 1
171 #define EOB_ACT_LAST_MATCH 2
172 
173  #define YY_LESS_LINENO(n)
174 
175 /* Return all but the first "n" matched characters back to the input stream. */
176 #define yyless(n) \
177  do \
178  { \
179  /* Undo effects of setting up yytext. */ \
180  int yyless_macro_arg = (n); \
181  YY_LESS_LINENO(yyless_macro_arg);\
182  *yy_cp = (yy_hold_char); \
183  YY_RESTORE_YY_MORE_OFFSET \
184  (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
185  YY_DO_BEFORE_ACTION; /* set up yytext again */ \
186  } \
187  while ( 0 )
188 
189 #define unput(c) yyunput( c, (yytext_ptr) )
190 
191 #ifndef YY_TYPEDEF_YY_SIZE_T
192 #define YY_TYPEDEF_YY_SIZE_T
193 typedef size_t yy_size_t;
194 #endif
195 
196 #ifndef YY_STRUCT_YY_BUFFER_STATE
197 #define YY_STRUCT_YY_BUFFER_STATE
198 struct yy_buffer_state
199  {
200  FILE *yy_input_file;
201 
202  char *yy_ch_buf; /* input buffer */
203  char *yy_buf_pos; /* current position in input buffer */
204 
205  /* Size of input buffer in bytes, not including room for EOB
206  * characters.
207  */
208  yy_size_t yy_buf_size;
209 
210  /* Number of characters read into yy_ch_buf, not including EOB
211  * characters.
212  */
213  int yy_n_chars;
214 
215  /* Whether we "own" the buffer - i.e., we know we created it,
216  * and can realloc() it to grow it, and should free() it to
217  * delete it.
218  */
219  int yy_is_our_buffer;
220 
221  /* Whether this is an "interactive" input source; if so, and
222  * if we're using stdio for input, then we want to use getc()
223  * instead of fread(), to make sure we stop fetching input after
224  * each newline.
225  */
226  int yy_is_interactive;
227 
228  /* Whether we're considered to be at the beginning of a line.
229  * If so, '^' rules will be active on the next match, otherwise
230  * not.
231  */
232  int yy_at_bol;
233 
234  int yy_bs_lineno;
235  int yy_bs_column;
237  /* Whether to try to fill the input buffer when we reach the
238  * end of it.
239  */
240  int yy_fill_buffer;
241 
242  int yy_buffer_status;
243 
244 #define YY_BUFFER_NEW 0
245 #define YY_BUFFER_NORMAL 1
246  /* When an EOF's been seen but there's still some text to process
247  * then we mark the buffer as YY_EOF_PENDING, to indicate that we
248  * shouldn't try reading from the input source any more. We might
249  * still have a bunch of tokens to match, though, because of
250  * possible backing-up.
251  *
252  * When we actually see the EOF, we change the status to "new"
253  * (via yyrestart()), so that the user can continue scanning by
254  * just pointing yyin at a new input file.
255  */
256 #define YY_BUFFER_EOF_PENDING 2
257 
258  };
259 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
260 
261 /* Stack of input buffers. */
262 static size_t yy_buffer_stack_top = 0;
263 static size_t yy_buffer_stack_max = 0;
264 static YY_BUFFER_STATE * yy_buffer_stack = 0;
266 /* We provide macros for accessing buffer states in case in the
267  * future we want to put the buffer states in a more general
268  * "scanner state".
269  *
270  * Returns the top of the stack, or NULL.
271  */
272 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
273  ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
274  : NULL)
275 
276 /* Same as previous macro, but useful when we know that the buffer stack is not
277  * NULL or when we need an lvalue. For internal use only.
278  */
279 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
280 
281 /* yy_hold_char holds the character lost when yytext is formed. */
282 static char yy_hold_char;
283 static int yy_n_chars; /* number of characters read into yy_ch_buf */
284 int yyleng;
285 
286 /* Points to current character in buffer. */
287 static char *yy_c_buf_p = (char *) 0;
288 static int yy_init = 0; /* whether we need to initialize */
289 static int yy_start = 0; /* start state number */
290 
291 /* Flag which is used to allow yywrap()'s to do buffer switches
292  * instead of setting up a fresh yyin. A bit of a hack ...
293  */
294 static int yy_did_buffer_switch_on_eof;
295 
296 void yyrestart (FILE *input_file );
297 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
298 YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
299 void yy_delete_buffer (YY_BUFFER_STATE b );
300 void yy_flush_buffer (YY_BUFFER_STATE b );
301 void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
302 void yypop_buffer_state (void );
303 
304 static void yyensure_buffer_stack (void );
305 static void yy_load_buffer_state (void );
306 static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
307 
308 #define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
309 
310 YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
311 YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
312 YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
313 
314 void *yyalloc (yy_size_t );
315 void *yyrealloc (void *,yy_size_t );
316 void yyfree (void * );
317 
318 #define yy_new_buffer yy_create_buffer
319 
320 #define yy_set_interactive(is_interactive) \
321  { \
322  if ( ! YY_CURRENT_BUFFER ){ \
323  yyensure_buffer_stack (); \
324  YY_CURRENT_BUFFER_LVALUE = \
325  yy_create_buffer(yyin,YY_BUF_SIZE ); \
326  } \
327  YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
328  }
329 
330 #define yy_set_bol(at_bol) \
331  { \
332  if ( ! YY_CURRENT_BUFFER ){\
333  yyensure_buffer_stack (); \
334  YY_CURRENT_BUFFER_LVALUE = \
335  yy_create_buffer(yyin,YY_BUF_SIZE ); \
336  } \
337  YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
338  }
339 
340 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
341 
342 /* Begin user sect3 */
343 
344 #define yywrap(n) 1
345 #define YY_SKIP_YYWRAP
346 
347 typedef unsigned char YY_CHAR;
348 
349 FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
350 
351 typedef int yy_state_type;
352 
353 extern int yylineno;
354 
355 int yylineno = 1;
356 
357 extern char *yytext;
358 #define yytext_ptr yytext
359 
360 static yy_state_type yy_get_previous_state (void );
361 static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
362 static int yy_get_next_buffer (void );
363 static void yy_fatal_error (yyconst char msg[] );
364 
365 /* Done after the current pattern has been matched and before the
366  * corresponding action - sets up yytext.
367  */
368 #define YY_DO_BEFORE_ACTION \
369  (yytext_ptr) = yy_bp; \
370  yyleng = (size_t) (yy_cp - yy_bp); \
371  (yy_hold_char) = *yy_cp; \
372  *yy_cp = '\0'; \
373  (yy_c_buf_p) = yy_cp;
374 
375 #define YY_NUM_RULES 84
376 #define YY_END_OF_BUFFER 85
377 /* This struct is not used in this scanner,
378  but its presence is necessary. */
379 struct yy_trans_info
380  {
381  flex_int32_t yy_verify;
382  flex_int32_t yy_nxt;
383  };
384 static yyconst flex_int16_t yy_acclist[672] =
385  { 0,
386  6, 6, 85, 6, 83, 84, 1, 6, 83, 84,
387  2, 84, 6, 83, 84, 6, 83, 84, 6, 83,
388  84, 6, 23, 83, 84, 6, 83, 84, 6, 14,
389  83, 84, 6, 15, 83, 84, 7, 21, 83, 84,
390  6, 17, 83, 84, 6, 20, 83, 84, 6, 18,
391  83, 84, 6, 28, 83, 84, 6, 83, 84, 6,
392  69, 79, 83, 84, 6, 78, 83, 84, 6, 16,
393  83, 84, 6, 22, 83, 84, 6, 24, 83, 84,
394  6, 27, 83, 84, 6, 25, 83, 84, 6, 72,
395  83, 84, 6, 72, 83, 84, 6, 72, 83, 84,
396 
397  6, 72, 83, 84, 6, 72, 83, 84, 6, 30,
398  83, 84, 6, 31, 83, 84, 6, 72, 83, 84,
399  6, 72, 83, 84, 6, 72, 83, 84, 6, 72,
400  83, 84, 6, 72, 83, 84, 6, 72, 83, 84,
401  6, 72, 83, 84, 6, 72, 83, 84, 6, 72,
402  83, 84, 6, 72, 83, 84, 6, 72, 83, 84,
403  6, 72, 83, 84, 6, 72, 83, 84, 6, 72,
404  83, 84, 6, 72, 83, 84, 6, 12, 83, 84,
405  5, 13, 83, 84, 6, 19, 83, 84, 6, 6,
406  34, 6, 6, 82, 6, 6, 11, 6, 9, 6,
407 
408  6, 6, 4, 6, 32, 6, 6, 76, 3, 6,
409  8, 6, 6, 79, 6, 6, 6, 69, 6, 80,
410  6, 78, 6, 78, 6, 26, 6, 33, 6, 72,
411  6, 72, 6, 72, 6, 72, 6, 72, 6, 72,
412  6, 72, 6, 72, 6, 72, 6, 72, 6, 72,
413  6, 72, 6, 72, 6, 72, 6, 72, 6, 72,
414  6, 72, 6, 72, 6, 72, 6, 72, 6, 72,
415  6, 72, 6, 72, 6, 72, 6, 72, 6, 72,
416  6, 72, 6, 72, 6, 72, 6, 72, 6, 72,
417  82, 6, 6, 6, 9, 9, 6, 6, 81, 81,
418 
419  6, 81, 6, 6, 6, 29, 6, 6, 8, 8,
420  6, 75, 6, 6, 74, 6, 80, 6, 72, 6,
421  72, 6, 72, 6, 72, 6, 72, 6, 72, 6,
422  72, 6, 72, 6, 72, 6, 72, 6, 72, 6,
423  72, 6, 72, 6, 58, 72, 6, 72, 6, 72,
424  6, 72, 6, 72, 6, 72, 6, 72, 6, 72,
425  6, 72, 6, 72, 6, 72, 6, 72, 6, 72,
426  6, 72, 6, 72, 6, 72, 6, 72, 6, 72,
427  6, 72, 6, 72, 6, 6, 6, 6, 6, 6,
428  6, 77, 6, 6, 72, 6, 72, 6, 72, 6,
429 
430  72, 6, 61, 72, 6, 59, 72, 6, 72, 6,
431  72, 6, 36, 72, 6, 72, 6, 72, 6, 72,
432  6, 72, 6, 72, 6, 50, 72, 6, 72, 6,
433  72, 6, 72, 6, 72, 6, 72, 6, 72, 6,
434  72, 6, 72, 6, 72, 6, 72, 6, 72, 6,
435  72, 6, 57, 72, 6, 72, 6, 72, 6, 72,
436  6, 72, 6, 6, 6, 6, 6, 6, 73, 6,
437  62, 72, 6, 72, 6, 72, 6, 72, 6, 39,
438  72, 6, 35, 72, 6, 72, 6, 60, 72, 6,
439  72, 6, 72, 6, 72, 6, 72, 6, 72, 6,
440 
441  72, 6, 72, 6, 72, 6, 72, 6, 72, 6,
442  49, 72, 6, 72, 6, 72, 6, 56, 72, 6,
443  72, 6, 72, 6, 72, 6, 72, 6, 38, 72,
444  6, 72, 6, 6, 66, 72, 6, 72, 6, 72,
445  6, 72, 6, 51, 72, 6, 44, 72, 6, 63,
446  72, 6, 72, 6, 72, 6, 72, 6, 72, 6,
447  72, 6, 43, 72, 6, 55, 72, 6, 72, 6,
448  47, 72, 6, 45, 72, 6, 40, 72, 6, 72,
449  6, 72, 6, 72, 6, 6, 72, 6, 72, 6,
450  6, 72, 6, 46, 72, 6, 72, 6, 72, 6,
451 
452  53, 72, 6, 72, 6, 54, 72, 6, 65, 72,
453  6, 72, 6, 42, 72, 6, 6, 67, 72, 6,
454  72, 6, 70, 6, 70, 6, 72, 6, 72, 6,
455  41, 72, 6, 72, 6, 48, 72, 6, 6, 6,
456  68, 72, 6, 6, 72, 6, 37, 72, 6, 52,
457  72, 6, 11, 6, 6, 71, 6, 72, 10, 11,
458  6, 6, 72, 10, 6, 72, 6, 72, 6, 64,
459  72
460  } ;
461 
462 static yyconst flex_int16_t yy_accept[320] =
463  { 0,
464  1, 2, 3, 4, 7, 11, 13, 16, 19, 22,
465  26, 29, 33, 37, 41, 45, 49, 53, 57, 60,
466  65, 69, 73, 77, 81, 85, 89, 93, 97, 101,
467  105, 109, 113, 117, 121, 125, 129, 133, 137, 141,
468  145, 149, 153, 157, 161, 165, 169, 173, 177, 181,
469  185, 189, 190, 192, 193, 195, 195, 196, 197, 198,
470  200, 200, 201, 202, 202, 203, 204, 206, 207, 209,
471  210, 212, 213, 215, 216, 217, 219, 221, 223, 225,
472  227, 229, 231, 233, 235, 237, 239, 241, 243, 245,
473  247, 249, 251, 253, 255, 257, 259, 261, 263, 265,
474 
475  267, 269, 271, 273, 275, 277, 279, 281, 283, 285,
476  287, 289, 291, 292, 292, 293, 294, 296, 297, 298,
477  300, 301, 303, 304, 305, 307, 308, 310, 311, 313,
478  314, 316, 318, 320, 322, 324, 326, 328, 330, 332,
479  334, 336, 338, 340, 342, 344, 347, 349, 351, 353,
480  355, 357, 359, 361, 363, 365, 367, 369, 371, 373,
481  375, 377, 379, 381, 383, 385, 385, 385, 386, 387,
482  388, 389, 390, 391, 393, 394, 396, 398, 400, 402,
483  405, 408, 410, 412, 415, 417, 419, 421, 423, 425,
484  428, 430, 432, 434, 436, 438, 440, 442, 444, 446,
485 
486  448, 450, 452, 455, 457, 459, 461, 463, 463, 463,
487  464, 465, 466, 467, 468, 470, 473, 475, 477, 479,
488  482, 485, 487, 490, 492, 494, 496, 498, 500, 502,
489  504, 506, 508, 510, 513, 515, 517, 520, 522, 524,
490  526, 528, 531, 533, 533, 533, 534, 537, 539, 541,
491  543, 546, 549, 552, 554, 556, 558, 560, 562, 565,
492  568, 570, 573, 576, 579, 581, 583, 585, 586, 588,
493  590, 591, 593, 596, 598, 600, 603, 605, 608, 611,
494  613, 616, 617, 620, 622, 624, 625, 626, 628, 630,
495  633, 635, 638, 639, 640, 643, 644, 646, 649, 652,
496 
497  653, 654, 655, 655, 657, 659, 659, 659, 661, 662,
498  662, 664, 665, 665, 665, 667, 669, 672, 672
499  } ;
500 
501 static yyconst flex_int32_t yy_ec[256] =
502  { 0,
503  1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
504  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
505  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
506  1, 4, 5, 6, 7, 1, 1, 8, 9, 10,
507  11, 12, 13, 14, 15, 16, 17, 18, 19, 19,
508  19, 19, 19, 19, 19, 20, 20, 21, 22, 23,
509  24, 25, 26, 1, 27, 28, 29, 30, 31, 32,
510  33, 33, 33, 34, 35, 36, 33, 33, 37, 38,
511  39, 40, 41, 42, 43, 33, 33, 44, 33, 33,
512  45, 46, 47, 1, 48, 1, 49, 50, 51, 52,
513 
514  53, 54, 55, 56, 57, 33, 58, 59, 60, 61,
515  62, 63, 33, 64, 65, 66, 67, 68, 33, 69,
516  70, 33, 71, 1, 72, 73, 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, 1, 1, 1, 1, 1,
520  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
521  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
522  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
523  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
524 
525  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
526  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
527  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
528  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
529  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
530  1, 1, 1, 1, 1
531  } ;
532 
533 static yyconst flex_int32_t yy_meta[74] =
534  { 0,
535  1, 2, 3, 4, 1, 5, 1, 1, 5, 1,
536  1, 6, 1, 1, 1, 1, 1, 7, 7, 8,
537  1, 1, 1, 1, 1, 5, 8, 8, 8, 8,
538  8, 8, 4, 4, 4, 4, 4, 4, 4, 4,
539  4, 4, 4, 9, 1, 5, 1, 4, 7, 7,
540  8, 8, 8, 7, 4, 4, 4, 4, 4, 4,
541  9, 4, 4, 9, 4, 9, 4, 9, 9, 4,
542  1, 10, 1
543  } ;
544 
545 static yyconst flex_int16_t yy_base[337] =
546  { 0,
547  0, 0, 923, 0, 0, 1107, 898, 72, 74, 0,
548  73, 0, 0, 904, 0, 0, 894, 71, 64, 79,
549  85, 894, 0, 69, 890, 82, 148, 221, 61, 69,
550  73, 0, 0, 81, 53, 75, 67, 93, 98, 84,
551  139, 115, 120, 148, 140, 141, 149, 150, 0, 1107,
552  0, 0, 0, 206, 0, 174, 289, 178, 1107, 179,
553  910, 197, 903, 902, 353, 1107, 0, 894, 243, 1107,
554  114, 115, 257, 266, 286, 0, 405, 293, 0, 0,
555  0, 882, 100, 162, 176, 156, 190, 175, 222, 226,
556  188, 213, 230, 233, 264, 189, 232, 237, 212, 227,
557 
558  275, 290, 254, 238, 287, 256, 299, 289, 298, 295,
559  294, 300, 1107, 326, 372, 442, 370, 905, 377, 0,
560  1107, 898, 357, 479, 0, 368, 322, 0, 432, 349,
561  386, 0, 229, 320, 102, 304, 365, 301, 350, 366,
562  325, 373, 374, 385, 383, 878, 402, 386, 371, 437,
563  381, 400, 382, 384, 419, 403, 420, 438, 439, 448,
564  449, 450, 455, 452, 451, 508, 0, 532, 603, 477,
565  528, 667, 500, 503, 540, 456, 498, 514, 473, 877,
566  876, 497, 513, 875, 512, 489, 516, 525, 518, 874,
567  534, 529, 536, 538, 530, 539, 537, 540, 542, 543,
568 
569  541, 546, 864, 547, 545, 548, 544, 601, 716, 612,
570  634, 578, 881, 607, 619, 862, 555, 457, 583, 848,
571  847, 601, 843, 561, 589, 585, 602, 614, 616, 617,
572  637, 638, 632, 841, 633, 639, 840, 651, 624, 647,
573  640, 839, 654, 662, 663, 660, 838, 644, 680, 700,
574  837, 835, 678, 686, 688, 652, 696, 697, 834, 832,
575  706, 830, 829, 823, 698, 701, 683, 726, 713, 724,
576  798, 723, 814, 729, 714, 809, 704, 808, 800, 731,
577  799, 770, 764, 733, 871, 701, 0, 732, 734, 643,
578  750, 575, 826, 828, 565, 583, 737, 309, 158, 848,
579 
580  173, 783, 791, 0, 757, 775, 351, 1107, 834, 782,
581  790, 1107, 787, 793, 774, 798, 56, 1107, 944, 953,
582  963, 973, 983, 992, 1002, 1012, 1022, 1028, 1037, 1047,
583  1051, 1059, 1067, 1076, 1086, 1096
584  } ;
585 
586 static yyconst flex_int16_t yy_def[337] =
587  { 0,
588  318, 1, 318, 319, 319, 318, 319, 320, 321, 319,
589  322, 319, 319, 318, 319, 319, 319, 319, 319, 319,
590  319, 319, 319, 319, 319, 319, 323, 323, 28, 28,
591  28, 319, 319, 28, 28, 28, 28, 28, 28, 28,
592  28, 28, 28, 28, 28, 28, 28, 28, 319, 318,
593  319, 319, 319, 320, 319, 324, 319, 321, 318, 325,
594  326, 321, 319, 318, 319, 318, 319, 319, 319, 318,
595  327, 319, 319, 319, 319, 319, 319, 319, 319, 319,
596  319, 28, 28, 28, 28, 28, 28, 28, 28, 28,
597  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
598 
599  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
600  28, 28, 318, 328, 320, 319, 325, 329, 321, 319,
601  318, 319, 319, 319, 319, 319, 327, 330, 319, 319,
602  319, 77, 28, 28, 28, 28, 28, 28, 28, 28,
603  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
604  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
605  28, 28, 28, 28, 28, 324, 331, 320, 320, 321,
606  319, 319, 319, 319, 319, 28, 28, 28, 28, 28,
607  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
608  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
609 
610  28, 28, 28, 28, 28, 28, 28, 324, 324, 320,
611  320, 321, 319, 319, 319, 28, 28, 28, 28, 28,
612  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
613  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
614  28, 28, 28, 324, 324, 321, 28, 28, 28, 28,
615  28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
616  28, 28, 28, 28, 28, 28, 28, 321, 28, 28,
617  332, 28, 28, 28, 28, 28, 28, 28, 28, 28,
618  28, 321, 28, 28, 332, 319, 333, 28, 28, 28,
619  28, 28, 321, 334, 28, 319, 28, 28, 28, 334,
620 
621  335, 321, 336, 319, 28, 335, 318, 318, 321, 326,
622  28, 318, 318, 326, 28, 28, 28, 0, 318, 318,
623  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
624  318, 318, 318, 318, 318, 318
625  } ;
626 
627 static yyconst flex_int16_t yy_nxt[1181] =
628  { 0,
629  4, 5, 6, 5, 7, 8, 9, 10, 11, 12,
630  13, 14, 15, 16, 17, 18, 19, 20, 21, 21,
631  22, 23, 24, 25, 26, 4, 27, 27, 27, 27,
632  27, 28, 27, 27, 29, 27, 27, 27, 30, 27,
633  27, 31, 27, 27, 32, 4, 33, 27, 27, 27,
634  34, 27, 35, 36, 27, 27, 37, 38, 39, 40,
635  41, 42, 43, 44, 45, 46, 47, 48, 27, 27,
636  49, 50, 51, 52, 52, 70, 59, 55, 60, 82,
637  71, 52, 82, 56, 64, 61, 68, 82, 69, 69,
638  69, 81, 53, 82, 72, 82, 73, 73, 74, 82,
639 
640  72, 82, 78, 78, 78, 53, 81, 82, 84, 75,
641  82, 86, 87, 91, 76, 75, 85, 57, 65, 82,
642  79, 92, 77, 93, 82, 128, 82, 95, 82, 178,
643  62, 75, 129, 129, 129, 133, 88, 75, 94, 89,
644  96, 82, 90, 56, 64, 61, 82, 77, 52, 52,
645  98, 52, 52, 52, 52, 52, 52, 52, 52, 97,
646  52, 52, 52, 52, 52, 82, 82, 82, 52, 52,
647  52, 52, 52, 52, 82, 82, 82, 100, 307, 113,
648  59, 59, 82, 101, 82, 128, 102, 99, 82, 61,
649  118, 134, 52, 52, 52, 104, 105, 307, 106, 59,
650 
651  103, 82, 82, 136, 108, 107, 112, 52, 61, 110,
652  109, 55, 135, 111, 82, 82, 82, 56, 52, 114,
653  52, 52, 52, 138, 52, 52, 52, 52, 52, 52,
654  52, 52, 137, 52, 52, 52, 52, 52, 82, 82,
655  147, 52, 52, 52, 52, 52, 52, 83, 82, 61,
656  118, 57, 82, 82, 141, 82, 82, 119, 82, 82,
657  69, 69, 69, 82, 82, 52, 52, 52, 61, 176,
658  139, 150, 72, 126, 73, 73, 74, 56, 142, 151,
659  82, 72, 82, 74, 74, 74, 140, 75, 143, 144,
660  82, 52, 148, 52, 54, 126, 75, 54, 130, 156,
661 
662  130, 82, 149, 131, 131, 131, 115, 115, 72, 75,
663  78, 78, 78, 82, 54, 82, 82, 158, 75, 155,
664  82, 82, 145, 75, 82, 82, 82, 82, 79, 146,
665  82, 152, 116, 128, 54, 82, 153, 54, 54, 154,
666  179, 157, 54, 166, 166, 75, 82, 159, 177, 54,
667  164, 82, 54, 312, 54, 161, 54, 116, 63, 163,
668  162, 122, 160, 165, 181, 120, 131, 131, 131, 167,
669  123, 123, 59, 52, 171, 171, 82, 55, 63, 59,
670  173, 118, 173, 56, 184, 174, 174, 174, 61, 168,
671  168, 82, 82, 128, 167, 180, 124, 82, 63, 82,
672 
673  82, 63, 63, 131, 131, 131, 63, 82, 82, 82,
674  82, 82, 82, 63, 182, 313, 63, 57, 63, 191,
675  63, 124, 132, 132, 132, 185, 82, 170, 82, 82,
676  183, 132, 132, 132, 132, 132, 132, 187, 186, 188,
677  190, 118, 196, 56, 193, 82, 82, 195, 61, 129,
678  129, 129, 189, 132, 132, 132, 132, 132, 132, 169,
679  169, 169, 175, 82, 82, 82, 198, 194, 169, 169,
680  169, 169, 169, 169, 82, 82, 82, 82, 82, 59,
681  199, 82, 82, 82, 175, 197, 216, 248, 61, 192,
682  169, 169, 169, 169, 169, 169, 172, 172, 172, 82,
683 
684  219, 203, 204, 200, 201, 172, 172, 172, 172, 172,
685  172, 205, 206, 113, 202, 82, 207, 174, 174, 174,
686  174, 174, 174, 82, 82, 208, 208, 172, 172, 172,
687  172, 172, 172, 52, 217, 212, 120, 55, 82, 82,
688  82, 223, 82, 56, 82, 63, 63, 218, 61, 210,
689  210, 82, 214, 114, 214, 82, 82, 215, 215, 215,
690  82, 220, 82, 82, 82, 82, 82, 82, 82, 82,
691  82, 82, 82, 82, 82, 222, 224, 57, 221, 226,
692  59, 82, 231, 227, 229, 225, 230, 82, 304, 61,
693  235, 82, 247, 228, 236, 232, 239, 238, 240, 241,
694 
695  233, 82, 242, 56, 52, 234, 113, 237, 55, 82,
696  243, 82, 251, 52, 56, 82, 249, 55, 244, 244,
697  211, 211, 211, 56, 215, 215, 215, 82, 82, 211,
698  211, 211, 211, 211, 211, 52, 215, 215, 215, 55,
699  82, 252, 82, 82, 246, 56, 114, 253, 57, 61,
700  82, 211, 211, 211, 211, 211, 211, 57, 82, 82,
701  254, 250, 59, 82, 82, 82, 82, 113, 113, 82,
702  82, 61, 269, 82, 56, 120, 255, 82, 82, 57,
703  82, 256, 257, 56, 213, 213, 213, 258, 259, 264,
704  262, 261, 260, 213, 213, 213, 213, 213, 213, 265,
705 
706  266, 263, 267, 271, 82, 56, 82, 114, 114, 82,
707  270, 268, 82, 275, 82, 213, 213, 213, 213, 213,
708  213, 113, 82, 82, 82, 272, 82, 82, 59, 296,
709  82, 61, 82, 245, 245, 245, 274, 61, 273, 82,
710  82, 281, 245, 245, 245, 245, 245, 245, 276, 82,
711  82, 279, 284, 280, 283, 82, 291, 82, 82, 82,
712  82, 114, 277, 82, 245, 245, 245, 245, 245, 245,
713  278, 293, 59, 293, 295, 294, 82, 290, 282, 289,
714  307, 61, 292, 82, 308, 308, 298, 288, 297, 312,
715  82, 305, 294, 301, 61, 308, 310, 61, 52, 307,
716 
717  82, 299, 52, 286, 52, 52, 52, 52, 52, 287,
718  52, 52, 52, 52, 52, 310, 82, 311, 52, 52,
719  52, 52, 52, 52, 82, 82, 82, 293, 59, 293,
720  301, 294, 316, 302, 82, 82, 308, 61, 315, 303,
721  82, 61, 52, 52, 52, 61, 314, 309, 294, 82,
722  301, 313, 302, 302, 61, 82, 82, 314, 82, 303,
723  82, 82, 317, 82, 82, 82, 82, 82, 52, 82,
724  52, 52, 302, 82, 82, 52, 52, 52, 52, 52,
725  52, 52, 287, 52, 52, 52, 52, 52, 82, 120,
726  82, 52, 52, 52, 52, 52, 52, 61, 309, 303,
727 
728  82, 82, 82, 82, 82, 61, 120, 59, 82, 125,
729  121, 120, 59, 53, 80, 52, 52, 52, 67, 303,
730  66, 53, 318, 318, 318, 318, 318, 318, 318, 318,
731  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
732  318, 52, 318, 52, 52, 52, 318, 52, 52, 318,
733  52, 52, 52, 54, 54, 318, 54, 54, 54, 54,
734  54, 54, 54, 58, 58, 58, 58, 58, 58, 58,
735  58, 58, 58, 63, 63, 318, 63, 63, 63, 63,
736  63, 63, 63, 82, 82, 318, 82, 82, 318, 82,
737  82, 82, 56, 318, 318, 56, 56, 56, 56, 56,
738 
739  56, 56, 117, 117, 117, 117, 117, 117, 117, 117,
740  117, 117, 61, 61, 61, 61, 61, 61, 61, 61,
741  61, 61, 127, 127, 318, 127, 127, 127, 127, 127,
742  127, 127, 56, 318, 56, 318, 56, 118, 118, 118,
743  118, 118, 118, 118, 118, 118, 118, 128, 128, 318,
744  128, 128, 128, 128, 128, 128, 128, 209, 209, 285,
745  285, 318, 285, 285, 285, 285, 285, 285, 287, 318,
746  287, 318, 287, 287, 287, 287, 300, 300, 300, 300,
747  300, 300, 300, 300, 300, 300, 306, 306, 306, 306,
748  306, 306, 306, 306, 306, 306, 303, 303, 303, 303,
749 
750  303, 303, 303, 303, 303, 303, 3, 318, 318, 318,
751  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
752  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
753  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
754  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
755  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
756  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
757  318, 318, 318, 318, 318, 318, 318, 318, 318, 318
758  } ;
759 
760 static yyconst flex_int16_t yy_chk[1181] =
761  { 0,
762  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
763  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
764  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
765  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
766  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
767  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
768  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
769  1, 1, 1, 8, 11, 19, 9, 8, 9, 35,
770  19, 11, 317, 8, 11, 9, 18, 29, 18, 18,
771  18, 24, 24, 37, 20, 30, 20, 20, 20, 31,
772 
773  21, 36, 21, 21, 21, 26, 26, 34, 29, 20,
774  40, 31, 31, 35, 20, 21, 30, 8, 11, 38,
775  21, 35, 20, 36, 39, 71, 83, 37, 135, 135,
776  9, 20, 72, 72, 72, 83, 34, 21, 36, 34,
777  38, 42, 34, 8, 11, 9, 43, 20, 27, 27,
778  40, 27, 27, 27, 27, 27, 27, 27, 27, 39,
779  27, 27, 27, 27, 27, 41, 45, 46, 27, 27,
780  27, 27, 27, 27, 44, 47, 48, 42, 301, 56,
781  58, 60, 86, 43, 299, 71, 43, 41, 84, 58,
782  60, 84, 27, 27, 27, 45, 45, 301, 45, 62,
783 
784  44, 88, 85, 86, 46, 45, 48, 54, 62, 47,
785  46, 54, 85, 47, 91, 96, 87, 54, 27, 56,
786  27, 28, 28, 88, 28, 28, 28, 28, 28, 28,
787  28, 28, 87, 28, 28, 28, 28, 28, 99, 92,
788  96, 28, 28, 28, 28, 28, 28, 28, 89, 58,
789  60, 54, 90, 100, 91, 133, 93, 62, 97, 94,
790  69, 69, 69, 98, 104, 28, 28, 28, 62, 133,
791  89, 99, 73, 69, 73, 73, 73, 54, 92, 100,
792  103, 74, 106, 74, 74, 74, 90, 73, 93, 94,
793  95, 28, 97, 28, 57, 69, 74, 57, 75, 104,
794 
795  75, 101, 98, 75, 75, 75, 57, 57, 78, 73,
796  78, 78, 78, 105, 57, 108, 102, 106, 74, 103,
797  111, 110, 95, 78, 109, 107, 112, 138, 78, 95,
798  136, 101, 57, 127, 57, 298, 101, 57, 57, 102,
799  136, 105, 57, 114, 114, 78, 134, 107, 134, 57,
800  111, 141, 57, 307, 57, 108, 57, 57, 65, 110,
801  109, 65, 107, 112, 138, 123, 130, 130, 130, 114,
802  65, 65, 117, 115, 123, 123, 139, 115, 65, 119,
803  126, 117, 126, 115, 141, 126, 126, 126, 119, 115,
804  115, 137, 140, 127, 114, 137, 65, 149, 65, 142,
805 
806  143, 65, 65, 131, 131, 131, 65, 151, 153, 145,
807  154, 144, 148, 65, 139, 307, 65, 115, 65, 149,
808  65, 65, 77, 77, 77, 142, 152, 119, 147, 156,
809  140, 77, 77, 77, 77, 77, 77, 144, 143, 145,
810  148, 117, 154, 115, 151, 155, 157, 153, 119, 129,
811  129, 129, 147, 77, 77, 77, 77, 77, 77, 116,
812  116, 116, 129, 150, 158, 159, 156, 152, 116, 116,
813  116, 116, 116, 116, 160, 161, 162, 165, 164, 170,
814  157, 163, 176, 218, 129, 155, 176, 218, 170, 150,
815  116, 116, 116, 116, 116, 116, 124, 124, 124, 179,
816 
817  179, 161, 162, 158, 159, 124, 124, 124, 124, 124,
818  124, 163, 164, 166, 160, 186, 165, 173, 173, 173,
819  174, 174, 174, 182, 177, 166, 166, 124, 124, 124,
820  124, 124, 124, 168, 177, 170, 171, 168, 185, 183,
821  178, 186, 187, 168, 189, 171, 171, 178, 170, 168,
822  168, 188, 175, 166, 175, 192, 195, 175, 175, 175,
823  191, 182, 193, 197, 194, 196, 198, 201, 199, 200,
824  207, 205, 202, 204, 206, 185, 187, 168, 183, 189,
825  212, 217, 195, 191, 193, 188, 194, 224, 296, 212,
826  199, 295, 217, 192, 199, 196, 202, 201, 204, 205,
827 
828  197, 292, 206, 168, 169, 198, 208, 200, 169, 219,
829  207, 226, 224, 210, 169, 225, 219, 210, 208, 208,
830  169, 169, 169, 210, 214, 214, 214, 222, 227, 169,
831  169, 169, 169, 169, 169, 211, 215, 215, 215, 211,
832  228, 225, 229, 230, 212, 211, 208, 226, 169, 212,
833  239, 169, 169, 169, 169, 169, 169, 210, 233, 235,
834  227, 222, 246, 231, 232, 236, 241, 244, 245, 290,
835  248, 246, 248, 240, 169, 172, 228, 238, 256, 211,
836  243, 229, 230, 210, 172, 172, 172, 231, 232, 239,
837  236, 235, 233, 172, 172, 172, 172, 172, 172, 240,
838 
839  241, 238, 243, 250, 253, 211, 249, 244, 245, 267,
840  249, 246, 254, 256, 255, 172, 172, 172, 172, 172,
841  172, 209, 257, 258, 265, 253, 250, 266, 268, 286,
842  277, 246, 261, 209, 209, 209, 255, 268, 254, 269,
843  275, 267, 209, 209, 209, 209, 209, 209, 257, 272,
844  270, 265, 270, 266, 269, 274, 277, 280, 288, 284,
845  289, 209, 258, 297, 209, 209, 209, 209, 209, 209,
846  261, 282, 282, 282, 284, 282, 291, 275, 268, 274,
847  306, 282, 280, 305, 310, 302, 289, 272, 288, 313,
848  283, 297, 282, 303, 302, 314, 303, 268, 271, 306,
849 
850  315, 291, 271, 271, 271, 271, 271, 271, 271, 271,
851  271, 271, 271, 271, 271, 303, 311, 305, 271, 271,
852  271, 271, 271, 271, 316, 281, 279, 293, 293, 293,
853  294, 293, 315, 294, 278, 276, 309, 293, 311, 294,
854  273, 282, 271, 271, 271, 309, 310, 302, 293, 264,
855  300, 313, 294, 300, 302, 263, 262, 314, 260, 300,
856  259, 252, 316, 251, 247, 242, 237, 234, 271, 223,
857  271, 285, 300, 221, 220, 285, 285, 285, 285, 285,
858  285, 285, 285, 285, 285, 285, 285, 285, 216, 213,
859  203, 285, 285, 285, 285, 285, 285, 293, 309, 294,
860 
861  190, 184, 181, 180, 146, 309, 122, 118, 82, 68,
862  64, 63, 61, 25, 22, 285, 285, 285, 17, 300,
863  14, 7, 3, 0, 0, 0, 0, 0, 0, 0,
864  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
865  0, 285, 0, 285, 319, 319, 0, 319, 319, 0,
866  319, 319, 319, 320, 320, 0, 320, 320, 320, 320,
867  320, 320, 320, 321, 321, 321, 321, 321, 321, 321,
868  321, 321, 321, 322, 322, 0, 322, 322, 322, 322,
869  322, 322, 322, 323, 323, 0, 323, 323, 0, 323,
870  323, 323, 324, 0, 0, 324, 324, 324, 324, 324,
871 
872  324, 324, 325, 325, 325, 325, 325, 325, 325, 325,
873  325, 325, 326, 326, 326, 326, 326, 326, 326, 326,
874  326, 326, 327, 327, 0, 327, 327, 327, 327, 327,
875  327, 327, 328, 0, 328, 0, 328, 329, 329, 329,
876  329, 329, 329, 329, 329, 329, 329, 330, 330, 0,
877  330, 330, 330, 330, 330, 330, 330, 331, 331, 332,
878  332, 0, 332, 332, 332, 332, 332, 332, 333, 0,
879  333, 0, 333, 333, 333, 333, 334, 334, 334, 334,
880  334, 334, 334, 334, 334, 334, 335, 335, 335, 335,
881  335, 335, 335, 335, 335, 335, 336, 336, 336, 336,
882 
883  336, 336, 336, 336, 336, 336, 318, 318, 318, 318,
884  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
885  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
886  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
887  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
888  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
889  318, 318, 318, 318, 318, 318, 318, 318, 318, 318,
890  318, 318, 318, 318, 318, 318, 318, 318, 318, 318
891  } ;
892 
893 extern int yy_flex_debug;
894 int yy_flex_debug = 0;
895 
896 static yy_state_type *yy_state_buf=0, *yy_state_ptr=0;
897 static char *yy_full_match;
898 static int yy_lp;
899 #define REJECT \
900 { \
901 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ \
902 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
903 ++(yy_lp); \
904 goto find_rule; \
905 }
906 
907 #define yymore() yymore_used_but_not_detected
908 #define YY_MORE_ADJ 0
909 #define YY_RESTORE_YY_MORE_OFFSET
910 char *yytext;
911 #line 1 "scanner.ll"
912 #line 2 "scanner.ll"
913 /*****************************************************************
914 Copyright (c) 1999 Torben Weis <weis@kde.org>
915 Copyright (c) 2000 Matthias Ettrich <ettrich@kde.org>
916 
917 Permission is hereby granted, free of charge, to any person obtaining a copy
918 of this software and associated documentation files (the "Software"), to deal
919 in the Software without restriction, including without limitation the rights
920 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
921 copies of the Software, and to permit persons to whom the Software is
922 furnished to do so, subject to the following conditions:
923 
924 The above copyright notice and this permission notice shall be included in
925 all copies or substantial portions of the Software.
926 
927 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
928 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
929 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
930 AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
931 AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
932 CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
933 
934 ******************************************************************/
935 
936 #define YY_NO_UNPUT
937 #include <stdlib.h>
938 #include <ctype.h>
939 
940 class TQString;
941 
942 #ifndef KDE_USE_FINAL
943 #include "yacc.cpp.h"
944 #endif
945 
946 extern int idl_line_no;
947 int comment_mode;
948 int function_mode = 0;
949 
950 #include <tqstring.h>
951 #include <tqregexp.h>
952 
953 static long ascii_to_longlong( long base, const char *s )
954 {
955  long ll = 0;
956  while( *s != '\0' ) {
957  char c = *s++;
958  if( c >= 'a' )
959  c -= 'a' - 'A';
960  c -= '0';
961  if( c > 9 )
962  c -= 'A' - '0' - 10;
963  ll = ll * base + c;
964  }
965  return ll;
966 }
967 
968 static double ascii_to_longdouble (const char *s)
969 {
970  double d;
971 #ifdef HAVE_SCANF_LF
972  sscanf (s, "%Lf", &d);
973 #else
974  /*
975  * this is only an approximation and will probably break fixed<>
976  * parameter calculation on systems where
977  * sizeof(double) < sizeof(long double). but fortunately all
978  * systems where scanf("%Lf") is known to be broken (Linux/Alpha
979  * and HPUX) have sizeof(double) == sizeof(long double).
980  */
981  d = strtod (s, NULL);
982 #endif
983  return d;
984 }
985 
986 static char translate_char( const char *s )
987 {
988  char c = *s++;
989 
990  if( c != '\\' )
991  return c;
992  c = *s++;
993  switch( c ) {
994  case 'n':
995  return '\n';
996  case 't':
997  return '\t';
998  case 'v':
999  return '\v';
1000  case 'b':
1001  return '\b';
1002  case 'r':
1003  return '\r';
1004  case 'f':
1005  return '\f';
1006  case 'a':
1007  return '\a';
1008  case '\\':
1009  return '\\';
1010  case '?':
1011  return '\?';
1012  case '\'':
1013  return '\'';
1014  case '"':
1015  return '"';
1016  case 'x':
1017  case 'X':
1018  return (char) ascii_to_longlong( 16, s );
1019  default:
1020  // Gotta be an octal
1021  return (char) ascii_to_longlong( 8, s );
1022  }
1023 }
1024 
1025 
1026 /*--------------------------------------------------------------------------*/
1027 /*--------------------------------------------------------------------------*/
1028 /*--------------------------------------------------------------------------*/
1029 #line 1030 "scanner.cpp"
1030 
1031 #define INITIAL 0
1032 
1033 #ifndef YY_NO_UNISTD_H
1034 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1035  * down here because we want the user's section 1 to have been scanned first.
1036  * The user has a chance to override it with an option.
1037  */
1038 #include <unistd.h>
1039 #endif
1040 
1041 #ifndef YY_EXTRA_TYPE
1042 #define YY_EXTRA_TYPE void *
1043 #endif
1044 
1045 static int yy_init_globals (void );
1046 
1047 /* Accessor methods to globals.
1048  These are made visible to non-reentrant scanners for convenience. */
1049 
1050 int yylex_destroy (void );
1051 
1052 int yyget_debug (void );
1053 
1054 void yyset_debug (int debug_flag );
1055 
1056 YY_EXTRA_TYPE yyget_extra (void );
1057 
1058 void yyset_extra (YY_EXTRA_TYPE user_defined );
1059 
1060 FILE *yyget_in (void );
1061 
1062 void yyset_in (FILE * in_str );
1063 
1064 FILE *yyget_out (void );
1065 
1066 void yyset_out (FILE * out_str );
1067 
1068 int yyget_leng (void );
1069 
1070 char *yyget_text (void );
1071 
1072 int yyget_lineno (void );
1073 
1074 void yyset_lineno (int line_number );
1075 
1076 /* Macros after this point can all be overridden by user definitions in
1077  * section 1.
1078  */
1079 
1080 #ifndef YY_SKIP_YYWRAP
1081 #ifdef __cplusplus
1082 extern "C" int yywrap (void );
1083 #else
1084 extern int yywrap (void );
1085 #endif
1086 #endif
1087 
1088  static void yyunput (int c,char *buf_ptr );
1089 
1090 #ifndef yytext_ptr
1091 static void yy_flex_strncpy (char *,yyconst char *,int );
1092 #endif
1093 
1094 #ifdef YY_NEED_STRLEN
1095 static int yy_flex_strlen (yyconst char * );
1096 #endif
1097 
1098 #ifndef YY_NO_INPUT
1099 
1100 #ifdef __cplusplus
1101 static int yyinput (void );
1102 #else
1103 static int input (void );
1104 #endif
1105 
1106 #endif
1107 
1108 /* Amount of stuff to slurp up with each read. */
1109 #ifndef YY_READ_BUF_SIZE
1110 #ifdef __ia64__
1111 /* On IA-64, the buffer size is 16k, not 8k */
1112 #define YY_READ_BUF_SIZE 16384
1113 #else
1114 #define YY_READ_BUF_SIZE 8192
1115 #endif /* __ia64__ */
1116 #endif
1117 
1118 /* Copy whatever the last rule matched to the standard output. */
1119 #ifndef ECHO
1120 /* This used to be an fputs(), but since the string might contain NUL's,
1121  * we now use fwrite().
1122  */
1123 #define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
1124 #endif
1125 
1126 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1127  * is returned in "result".
1128  */
1129 #ifndef YY_INPUT
1130 #define YY_INPUT(buf,result,max_size) \
1131  if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1132  { \
1133  int c = '*'; \
1134  size_t n; \
1135  for ( n = 0; n < max_size && \
1136  (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1137  buf[n] = (char) c; \
1138  if ( c == '\n' ) \
1139  buf[n++] = (char) c; \
1140  if ( c == EOF && ferror( yyin ) ) \
1141  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1142  result = n; \
1143  } \
1144  else \
1145  { \
1146  errno=0; \
1147  while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1148  { \
1149  if( errno != EINTR) \
1150  { \
1151  YY_FATAL_ERROR( "input in flex scanner failed" ); \
1152  break; \
1153  } \
1154  errno=0; \
1155  clearerr(yyin); \
1156  } \
1157  }\
1158 \
1159 
1160 #endif
1161 
1162 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1163  * we don't want an extra ';' after the "return" because that will cause
1164  * some compilers to complain about unreachable statements.
1165  */
1166 #ifndef yyterminate
1167 #define yyterminate() return YY_NULL
1168 #endif
1169 
1170 /* Number of entries by which start-condition stack grows. */
1171 #ifndef YY_START_STACK_INCR
1172 #define YY_START_STACK_INCR 25
1173 #endif
1174 
1175 /* Report a fatal error. */
1176 #ifndef YY_FATAL_ERROR
1177 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1178 #endif
1179 
1180 /* end tables serialization structures and prototypes */
1181 
1182 /* Default declaration of generated scanner - a define so the user can
1183  * easily add parameters.
1184  */
1185 #ifndef YY_DECL
1186 #define YY_DECL_IS_OURS 1
1187 
1188 extern int yylex (void);
1189 
1190 #define YY_DECL int yylex (void)
1191 #endif /* !YY_DECL */
1192 
1193 /* Code executed at the beginning of each rule, after yytext and yyleng
1194  * have been set up.
1195  */
1196 #ifndef YY_USER_ACTION
1197 #define YY_USER_ACTION
1198 #endif
1199 
1200 /* Code executed at the end of each rule. */
1201 #ifndef YY_BREAK
1202 #define YY_BREAK break;
1203 #endif
1204 
1205 #define YY_RULE_SETUP \
1206  YY_USER_ACTION
1207 
1210 YY_DECL
1211 {
1212  yy_state_type yy_current_state;
1213  char *yy_cp, *yy_bp;
1214  int yy_act;
1215 
1216 #line 148 "scanner.ll"
1217 
1218 
1219 #line 1220 "scanner.cpp"
1220 
1221  if ( !(yy_init) )
1222  {
1223  (yy_init) = 1;
1224 
1225 #ifdef YY_USER_INIT
1226  YY_USER_INIT;
1227 #endif
1228 
1229  /* Create the reject buffer large enough to save one state per allowed character. */
1230  if ( ! (yy_state_buf) )
1231  (yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE );
1232  if ( ! (yy_state_buf) )
1233  YY_FATAL_ERROR( "out of dynamic memory in yylex()" );
1234 
1235  if ( ! (yy_start) )
1236  (yy_start) = 1; /* first start state */
1237 
1238  if ( ! yyin )
1239  yyin = stdin;
1240 
1241  if ( ! yyout )
1242  yyout = stdout;
1243 
1244  if ( ! YY_CURRENT_BUFFER ) {
1245  yyensure_buffer_stack ();
1246  YY_CURRENT_BUFFER_LVALUE =
1247  yy_create_buffer(yyin,YY_BUF_SIZE );
1248  }
1249 
1250  yy_load_buffer_state( );
1251  }
1252 
1253  while ( 1 ) /* loops until end-of-file is reached */
1254  {
1255  yy_cp = (yy_c_buf_p);
1256 
1257  /* Support of yytext. */
1258  *yy_cp = (yy_hold_char);
1259 
1260  /* yy_bp points to the position in yy_ch_buf of the start of
1261  * the current run.
1262  */
1263  yy_bp = yy_cp;
1264 
1265  yy_current_state = (yy_start);
1266 
1267  (yy_state_ptr) = (yy_state_buf);
1268  *(yy_state_ptr)++ = yy_current_state;
1269 
1270 yy_match:
1271  do
1272  {
1273  YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1274  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1275  {
1276  yy_current_state = (int) yy_def[yy_current_state];
1277  if ( yy_current_state >= 319 )
1278  yy_c = yy_meta[(unsigned int) yy_c];
1279  }
1280  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1281  *(yy_state_ptr)++ = yy_current_state;
1282  ++yy_cp;
1283  }
1284  while ( yy_current_state != 318 );
1285 
1286 yy_find_action:
1287  yy_current_state = *--(yy_state_ptr);
1288  (yy_lp) = yy_accept[yy_current_state];
1289 find_rule: /* we branch to this label when backing up */
1290  for ( ; ; ) /* until we find what rule we matched */
1291  {
1292  if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] )
1293  {
1294  yy_act = yy_acclist[(yy_lp)];
1295  {
1296  (yy_full_match) = yy_cp;
1297  break;
1298  }
1299  }
1300  --yy_cp;
1301  yy_current_state = *--(yy_state_ptr);
1302  (yy_lp) = yy_accept[yy_current_state];
1303  }
1304 
1305  YY_DO_BEFORE_ACTION;
1306 
1307 do_action: /* This label is used only to access EOF actions. */
1308 
1309  switch ( yy_act )
1310  { /* beginning of action switch */
1311 case 1:
1312 YY_RULE_SETUP
1313 #line 150 "scanner.ll"
1314 ;
1315  YY_BREAK
1316 case 2:
1317 /* rule 2 can match eol */
1318 YY_RULE_SETUP
1319 #line 151 "scanner.ll"
1320 { idl_line_no++; }
1321  YY_BREAK
1322 case 3:
1323 YY_RULE_SETUP
1324 #line 153 "scanner.ll"
1325 { comment_mode = 1; }
1326  YY_BREAK
1327 case 4:
1328 YY_RULE_SETUP
1329 #line 154 "scanner.ll"
1330 { if (!comment_mode) { REJECT; } else { comment_mode = 0; } }
1331  YY_BREAK
1332 case 5:
1333 YY_RULE_SETUP
1334 #line 155 "scanner.ll"
1335 {
1336  if (! comment_mode) {
1337  if (!function_mode) { REJECT; } else {
1338  function_mode = 0;
1339  return T_RIGHT_CURLY_BRACKET;
1340  }
1341  }
1342  }
1343  YY_BREAK
1344 case 6:
1345 YY_RULE_SETUP
1346 #line 163 "scanner.ll"
1347 { if (!comment_mode && !function_mode) { REJECT; } }
1348  YY_BREAK
1349 case 7:
1350 YY_RULE_SETUP
1351 #line 164 "scanner.ll"
1352 { if (!comment_mode) { REJECT; } }
1353  YY_BREAK
1354 case 8:
1355 YY_RULE_SETUP
1356 #line 166 "scanner.ll"
1357 ;
1358  YY_BREAK
1359 case 9:
1360 YY_RULE_SETUP
1361 #line 167 "scanner.ll"
1362 {
1363  exit( 1 );
1364  }
1365  YY_BREAK
1366 case 10:
1367 /* rule 10 can match eol */
1368 YY_RULE_SETUP
1369 #line 170 "scanner.ll"
1370 {
1371  TQString s( yytext );
1372  int i = s.find(TQRegExp("[\"<]"))+1;
1373  int j = s.find(TQRegExp("[\">]"), i);
1374  yylval._str = new TQString( s.mid( i, j - i ) );
1375  idl_line_no++;
1376  return T_INCLUDE;
1377  }
1378  YY_BREAK
1379 case 11:
1380 /* rule 11 can match eol */
1381 YY_RULE_SETUP
1382 #line 178 "scanner.ll"
1383 {
1384  idl_line_no++;
1385  }
1386  YY_BREAK
1387 case 12:
1388 YY_RULE_SETUP
1389 #line 181 "scanner.ll"
1390 return T_LEFT_CURLY_BRACKET;
1391  YY_BREAK
1392 case 13:
1393 YY_RULE_SETUP
1394 #line 182 "scanner.ll"
1395 return T_RIGHT_CURLY_BRACKET;
1396  YY_BREAK
1397 case 14:
1398 YY_RULE_SETUP
1399 #line 183 "scanner.ll"
1400 return T_LEFT_PARANTHESIS;
1401  YY_BREAK
1402 case 15:
1403 YY_RULE_SETUP
1404 #line 184 "scanner.ll"
1405 return T_RIGHT_PARANTHESIS;
1406  YY_BREAK
1407 case 16:
1408 YY_RULE_SETUP
1409 #line 185 "scanner.ll"
1410 return T_COLON;
1411  YY_BREAK
1412 case 17:
1413 YY_RULE_SETUP
1414 #line 186 "scanner.ll"
1415 return T_PLUS;
1416  YY_BREAK
1417 case 18:
1418 YY_RULE_SETUP
1419 #line 187 "scanner.ll"
1420 return T_MINUS;
1421  YY_BREAK
1422 case 19:
1423 YY_RULE_SETUP
1424 #line 188 "scanner.ll"
1425 return T_TILDE;
1426  YY_BREAK
1427 case 20:
1428 YY_RULE_SETUP
1429 #line 189 "scanner.ll"
1430 return T_COMMA;
1431  YY_BREAK
1432 case 21:
1433 YY_RULE_SETUP
1434 #line 190 "scanner.ll"
1435 return T_ASTERISK;
1436  YY_BREAK
1437 case 22:
1438 YY_RULE_SETUP
1439 #line 191 "scanner.ll"
1440 return T_SEMICOLON;
1441  YY_BREAK
1442 case 23:
1443 YY_RULE_SETUP
1444 #line 192 "scanner.ll"
1445 return T_AMPERSAND;
1446  YY_BREAK
1447 case 24:
1448 YY_RULE_SETUP
1449 #line 193 "scanner.ll"
1450 return T_LESS;
1451  YY_BREAK
1452 case 25:
1453 YY_RULE_SETUP
1454 #line 194 "scanner.ll"
1455 return T_GREATER;
1456  YY_BREAK
1457 case 26:
1458 YY_RULE_SETUP
1459 #line 195 "scanner.ll"
1460 return T_SCOPE;
1461  YY_BREAK
1462 case 27:
1463 YY_RULE_SETUP
1464 #line 196 "scanner.ll"
1465 return T_EQUAL;
1466  YY_BREAK
1467 case 28:
1468 YY_RULE_SETUP
1469 #line 197 "scanner.ll"
1470 return T_ACCESS;
1471  YY_BREAK
1472 case 29:
1473 YY_RULE_SETUP
1474 #line 198 "scanner.ll"
1475 return T_TRIPLE_DOT;
1476  YY_BREAK
1477 case 30:
1478 YY_RULE_SETUP
1479 #line 199 "scanner.ll"
1480 return T_ARRAY_OPEN;
1481  YY_BREAK
1482 case 31:
1483 YY_RULE_SETUP
1484 #line 200 "scanner.ll"
1485 return T_ARRAY_CLOSE;
1486  YY_BREAK
1487 case 32:
1488 YY_RULE_SETUP
1489 #line 201 "scanner.ll"
1490 return T_ACCESS;
1491  YY_BREAK
1492 case 33:
1493 YY_RULE_SETUP
1494 #line 202 "scanner.ll"
1495 return T_SHIFT;
1496  YY_BREAK
1497 case 34:
1498 YY_RULE_SETUP
1499 #line 203 "scanner.ll"
1500 return T_MISCOPERATOR;
1501  YY_BREAK
1502 case 35:
1503 YY_RULE_SETUP
1504 #line 206 "scanner.ll"
1505 return T_CONST;
1506  YY_BREAK
1507 case 36:
1508 YY_RULE_SETUP
1509 #line 207 "scanner.ll"
1510 return T_ENUM;
1511  YY_BREAK
1512 case 37:
1513 YY_RULE_SETUP
1514 #line 208 "scanner.ll"
1515 return T_NAMESPACE;
1516  YY_BREAK
1517 case 38:
1518 YY_RULE_SETUP
1519 #line 209 "scanner.ll"
1520 return T_USING;
1521  YY_BREAK
1522 case 39:
1523 YY_RULE_SETUP
1524 #line 210 "scanner.ll"
1525 return T_CLASS;
1526  YY_BREAK
1527 case 40:
1528 YY_RULE_SETUP
1529 #line 211 "scanner.ll"
1530 return T_STRUCT;
1531  YY_BREAK
1532 case 41:
1533 YY_RULE_SETUP
1534 #line 212 "scanner.ll"
1535 return T_FUNOPERATOR;
1536  YY_BREAK
1537 case 42:
1538 YY_RULE_SETUP
1539 #line 213 "scanner.ll"
1540 return T_VIRTUAL;
1541  YY_BREAK
1542 case 43:
1543 YY_RULE_SETUP
1544 #line 214 "scanner.ll"
1545 return T_PUBLIC;
1546  YY_BREAK
1547 case 44:
1548 YY_RULE_SETUP
1549 #line 215 "scanner.ll"
1550 return T_INLINE;
1551  YY_BREAK
1552 case 45:
1553 YY_RULE_SETUP
1554 #line 216 "scanner.ll"
1555 return T_STATIC;
1556  YY_BREAK
1557 case 46:
1558 YY_RULE_SETUP
1559 #line 217 "scanner.ll"
1560 return T_MUTABLE;
1561  YY_BREAK
1562 case 47:
1563 YY_RULE_SETUP
1564 #line 218 "scanner.ll"
1565 return T_SIGNED;
1566  YY_BREAK
1567 case 48:
1568 YY_RULE_SETUP
1569 #line 219 "scanner.ll"
1570 return T_UNSIGNED;
1571  YY_BREAK
1572 case 49:
1573 YY_RULE_SETUP
1574 #line 220 "scanner.ll"
1575 return T_SHORT;
1576  YY_BREAK
1577 case 50:
1578 YY_RULE_SETUP
1579 #line 221 "scanner.ll"
1580 return T_LONG;
1581  YY_BREAK
1582 case 51:
1583 YY_RULE_SETUP
1584 #line 222 "scanner.ll"
1585 return T_FRIEND;
1586  YY_BREAK
1587 case 52:
1588 YY_RULE_SETUP
1589 #line 223 "scanner.ll"
1590 return T_PROTECTED;
1591  YY_BREAK
1592 case 53:
1593 YY_RULE_SETUP
1594 #line 224 "scanner.ll"
1595 return T_PRIVATE;
1596  YY_BREAK
1597 case 54:
1598 YY_RULE_SETUP
1599 #line 225 "scanner.ll"
1600 return T_SIGNAL;
1601  YY_BREAK
1602 case 55:
1603 YY_RULE_SETUP
1604 #line 226 "scanner.ll"
1605 return T_RETURN;
1606  YY_BREAK
1607 case 56:
1608 YY_RULE_SETUP
1609 #line 227 "scanner.ll"
1610 return T_SLOT;
1611  YY_BREAK
1612 case 57:
1613 YY_RULE_SETUP
1614 #line 228 "scanner.ll"
1615 return T_TRUE;
1616  YY_BREAK
1617 case 58:
1618 YY_RULE_SETUP
1619 #line 229 "scanner.ll"
1620 return T_INT;
1621  YY_BREAK
1622 case 59:
1623 YY_RULE_SETUP
1624 #line 230 "scanner.ll"
1625 return T_CHAR;
1626  YY_BREAK
1627 case 60:
1628 YY_RULE_SETUP
1629 #line 231 "scanner.ll"
1630 return T_FALSE;
1631  YY_BREAK
1632 case 61:
1633 YY_RULE_SETUP
1634 #line 232 "scanner.ll"
1635 return T_TRUE;
1636  YY_BREAK
1637 case 62:
1638 YY_RULE_SETUP
1639 #line 233 "scanner.ll"
1640 return T_FALSE;
1641  YY_BREAK
1642 case 63:
1643 YY_RULE_SETUP
1644 #line 234 "scanner.ll"
1645 return T_DCOP_AREA;
1646  YY_BREAK
1647 case 64:
1648 YY_RULE_SETUP
1649 #line 235 "scanner.ll"
1650 return T_DCOP_SIGNAL_AREA;
1651  YY_BREAK
1652 case 65:
1653 YY_RULE_SETUP
1654 #line 236 "scanner.ll"
1655 return T_TYPEDEF;
1656  YY_BREAK
1657 case 66:
1658 YY_RULE_SETUP
1659 #line 237 "scanner.ll"
1660 return T_DCOP;
1661  YY_BREAK
1662 case 67:
1663 YY_RULE_SETUP
1664 #line 238 "scanner.ll"
1665 ;
1666  YY_BREAK
1667 case 68:
1668 YY_RULE_SETUP
1669 #line 239 "scanner.ll"
1670 ;
1671  YY_BREAK
1672 case 69:
1673 YY_RULE_SETUP
1674 #line 240 "scanner.ll"
1675 return T_NULL;
1676  YY_BREAK
1677 case 70:
1678 YY_RULE_SETUP
1679 #line 241 "scanner.ll"
1680 return T_EXTERN;
1681  YY_BREAK
1682 case 71:
1683 YY_RULE_SETUP
1684 #line 242 "scanner.ll"
1685 return T_EXTERN_C;
1686  YY_BREAK
1687 case 72:
1688 YY_RULE_SETUP
1689 #line 244 "scanner.ll"
1690 {
1691  yylval._str = new TQString( yytext );
1692  return T_IDENTIFIER;
1693  }
1694  YY_BREAK
1695 case 73:
1696 #line 250 "scanner.ll"
1697 case 74:
1698 #line 251 "scanner.ll"
1699 case 75:
1700 #line 252 "scanner.ll"
1701 case 76:
1702 #line 253 "scanner.ll"
1703 case 77:
1704 YY_RULE_SETUP
1705 #line 253 "scanner.ll"
1706 {
1707  yylval._float = ascii_to_longdouble( yytext );
1708  return T_DOUBLE_LITERAL;
1709  }
1710  YY_BREAK
1711 case 78:
1712 YY_RULE_SETUP
1713 #line 257 "scanner.ll"
1714 {
1715  yylval._int = ascii_to_longlong( 10, yytext );
1716  return T_INTEGER_LITERAL;
1717  }
1718  YY_BREAK
1719 case 79:
1720 YY_RULE_SETUP
1721 #line 261 "scanner.ll"
1722 {
1723  yylval._int = ascii_to_longlong( 8, yytext );
1724  return T_INTEGER_LITERAL;
1725  }
1726  YY_BREAK
1727 case 80:
1728 YY_RULE_SETUP
1729 #line 265 "scanner.ll"
1730 {
1731  yylval._int = ascii_to_longlong( 16, yytext + 2 );
1732  return T_INTEGER_LITERAL;
1733  }
1734  YY_BREAK
1735 case 81:
1736 YY_RULE_SETUP
1737 #line 269 "scanner.ll"
1738 {
1739  TQCString s( yytext );
1740  s = s.mid( 1, s.length() - 2 );
1741  yylval._char = translate_char( s );
1742  return T_CHARACTER_LITERAL;
1743  }
1744  YY_BREAK
1745 case 82:
1746 YY_RULE_SETUP
1747 #line 275 "scanner.ll"
1748 {
1749  TQString s( yytext );
1750  yylval._str = new TQString( s.mid( 1, s.length() - 2 ) );
1751  return T_STRING_LITERAL;
1752  }
1753  YY_BREAK
1754 case 83:
1755 YY_RULE_SETUP
1756 #line 280 "scanner.ll"
1757 {
1758  if (function_mode)
1759  return yylex(); // call once again
1760 
1761  tqFatal("could not parse %c(%d) at line %d" , yytext[0], yytext[0], idl_line_no);
1762  return T_UNKNOWN;
1763  }
1764  YY_BREAK
1765 case 84:
1766 YY_RULE_SETUP
1767 #line 288 "scanner.ll"
1768 ECHO;
1769  YY_BREAK
1770 #line 1771 "scanner.cpp"
1771  case YY_STATE_EOF(INITIAL):
1772  yyterminate();
1773 
1774  case YY_END_OF_BUFFER:
1775  {
1776  /* Amount of text matched not including the EOB char. */
1777  int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
1778 
1779  /* Undo the effects of YY_DO_BEFORE_ACTION. */
1780  *yy_cp = (yy_hold_char);
1781  YY_RESTORE_YY_MORE_OFFSET
1782 
1783  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
1784  {
1785  /* We're scanning a new file or input source. It's
1786  * possible that this happened because the user
1787  * just pointed yyin at a new source and called
1788  * yylex(). If so, then we have to assure
1789  * consistency between YY_CURRENT_BUFFER and our
1790  * globals. Here is the right place to do so, because
1791  * this is the first action (other than possibly a
1792  * back-up) that will match for the new input source.
1793  */
1794  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
1795  YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
1796  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
1797  }
1798 
1799  /* Note that here we test for yy_c_buf_p "<=" to the position
1800  * of the first EOB in the buffer, since yy_c_buf_p will
1801  * already have been incremented past the NUL character
1802  * (since all states make transitions on EOB to the
1803  * end-of-buffer state). Contrast this with the test
1804  * in input().
1805  */
1806  if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
1807  { /* This was really a NUL. */
1808  yy_state_type yy_next_state;
1809 
1810  (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
1811 
1812  yy_current_state = yy_get_previous_state( );
1813 
1814  /* Okay, we're now positioned to make the NUL
1815  * transition. We couldn't have
1816  * yy_get_previous_state() go ahead and do it
1817  * for us because it doesn't know how to deal
1818  * with the possibility of jamming (and we don't
1819  * want to build jamming into it because then it
1820  * will run more slowly).
1821  */
1822 
1823  yy_next_state = yy_try_NUL_trans( yy_current_state );
1824 
1825  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1826 
1827  if ( yy_next_state )
1828  {
1829  /* Consume the NUL. */
1830  yy_cp = ++(yy_c_buf_p);
1831  yy_current_state = yy_next_state;
1832  goto yy_match;
1833  }
1834 
1835  else
1836  {
1837  yy_cp = (yy_c_buf_p);
1838  goto yy_find_action;
1839  }
1840  }
1841 
1842  else switch ( yy_get_next_buffer( ) )
1843  {
1844  case EOB_ACT_END_OF_FILE:
1845  {
1846  (yy_did_buffer_switch_on_eof) = 0;
1847 
1848  if ( yywrap( ) )
1849  {
1850  /* Note: because we've taken care in
1851  * yy_get_next_buffer() to have set up
1852  * yytext, we can now set up
1853  * yy_c_buf_p so that if some total
1854  * hoser (like flex itself) wants to
1855  * call the scanner after we return the
1856  * YY_NULL, it'll still work - another
1857  * YY_NULL will get returned.
1858  */
1859  (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
1860 
1861  yy_act = YY_STATE_EOF(YY_START);
1862  goto do_action;
1863  }
1864 
1865  else
1866  {
1867  if ( ! (yy_did_buffer_switch_on_eof) )
1868  YY_NEW_FILE;
1869  }
1870  break;
1871  }
1872 
1873  case EOB_ACT_CONTINUE_SCAN:
1874  (yy_c_buf_p) =
1875  (yytext_ptr) + yy_amount_of_matched_text;
1876 
1877  yy_current_state = yy_get_previous_state( );
1878 
1879  yy_cp = (yy_c_buf_p);
1880  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1881  goto yy_match;
1882 
1883  case EOB_ACT_LAST_MATCH:
1884  (yy_c_buf_p) =
1885  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
1886 
1887  yy_current_state = yy_get_previous_state( );
1888 
1889  yy_cp = (yy_c_buf_p);
1890  yy_bp = (yytext_ptr) + YY_MORE_ADJ;
1891  goto yy_find_action;
1892  }
1893  break;
1894  }
1895 
1896  default:
1897  YY_FATAL_ERROR(
1898  "fatal flex scanner internal error--no action found" );
1899  } /* end of action switch */
1900  } /* end of scanning one token */
1901 } /* end of yylex */
1902 
1903 /* yy_get_next_buffer - try to read in a new buffer
1904  *
1905  * Returns a code representing an action:
1906  * EOB_ACT_LAST_MATCH -
1907  * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
1908  * EOB_ACT_END_OF_FILE - end of file
1909  */
1910 static int yy_get_next_buffer (void)
1911 {
1912  char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
1913  char *source = (yytext_ptr);
1914  int number_to_move, i;
1915  int ret_val;
1916 
1917  if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
1918  YY_FATAL_ERROR(
1919  "fatal flex scanner internal error--end of buffer missed" );
1920 
1921  if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
1922  { /* Don't try to fill the buffer, so this is an EOF. */
1923  if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
1924  {
1925  /* We matched a single character, the EOB, so
1926  * treat this as a final EOF.
1927  */
1928  return EOB_ACT_END_OF_FILE;
1929  }
1930 
1931  else
1932  {
1933  /* We matched some text prior to the EOB, first
1934  * process it.
1935  */
1936  return EOB_ACT_LAST_MATCH;
1937  }
1938  }
1939 
1940  /* Try to read more data. */
1941 
1942  /* First move last chars to start of buffer. */
1943  number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
1944 
1945  for ( i = 0; i < number_to_move; ++i )
1946  *(dest++) = *(source++);
1947 
1948  if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
1949  /* don't do the read, it's not guaranteed to return an EOF,
1950  * just force an EOF
1951  */
1952  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
1953 
1954  else
1955  {
1956  int num_to_read =
1957  YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
1958 
1959  while ( num_to_read <= 0 )
1960  { /* Not enough room in the buffer - grow it. */
1961 
1962  YY_FATAL_ERROR(
1963 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
1964 
1965  }
1966 
1967  if ( num_to_read > YY_READ_BUF_SIZE )
1968  num_to_read = YY_READ_BUF_SIZE;
1969 
1970  /* Read in more data. */
1971  YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
1972  (yy_n_chars), (size_t) num_to_read );
1973 
1974  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
1975  }
1976 
1977  if ( (yy_n_chars) == 0 )
1978  {
1979  if ( number_to_move == YY_MORE_ADJ )
1980  {
1981  ret_val = EOB_ACT_END_OF_FILE;
1982  yyrestart(yyin );
1983  }
1984 
1985  else
1986  {
1987  ret_val = EOB_ACT_LAST_MATCH;
1988  YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
1989  YY_BUFFER_EOF_PENDING;
1990  }
1991  }
1992 
1993  else
1994  ret_val = EOB_ACT_CONTINUE_SCAN;
1995 
1996  if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
1997  /* Extend the array by 50%, plus the number we really need. */
1998  yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
1999  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
2000  if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2001  YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2002  }
2003 
2004  (yy_n_chars) += number_to_move;
2005  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2006  YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2007 
2008  (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2009 
2010  return ret_val;
2011 }
2012 
2013 /* yy_get_previous_state - get the state just before the EOB char was reached */
2014 
2015  static yy_state_type yy_get_previous_state (void)
2016 {
2017  yy_state_type yy_current_state;
2018  char *yy_cp;
2019 
2020  yy_current_state = (yy_start);
2021 
2022  (yy_state_ptr) = (yy_state_buf);
2023  *(yy_state_ptr)++ = yy_current_state;
2024 
2025  for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2026  {
2027  YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2028  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2029  {
2030  yy_current_state = (int) yy_def[yy_current_state];
2031  if ( yy_current_state >= 319 )
2032  yy_c = yy_meta[(unsigned int) yy_c];
2033  }
2034  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2035  *(yy_state_ptr)++ = yy_current_state;
2036  }
2037 
2038  return yy_current_state;
2039 }
2040 
2041 /* yy_try_NUL_trans - try to make a transition on the NUL character
2042  *
2043  * synopsis
2044  * next_state = yy_try_NUL_trans( current_state );
2045  */
2046  static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2047 {
2048  int yy_is_jam;
2049 
2050  YY_CHAR yy_c = 1;
2051  while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2052  {
2053  yy_current_state = (int) yy_def[yy_current_state];
2054  if ( yy_current_state >= 319 )
2055  yy_c = yy_meta[(unsigned int) yy_c];
2056  }
2057  yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2058  yy_is_jam = (yy_current_state == 318);
2059  if ( ! yy_is_jam )
2060  *(yy_state_ptr)++ = yy_current_state;
2061 
2062  return yy_is_jam ? 0 : yy_current_state;
2063 }
2064 
2065  static void yyunput (int c, char * yy_bp )
2066 {
2067  char *yy_cp;
2068 
2069  yy_cp = (yy_c_buf_p);
2070 
2071  /* undo effects of setting up yytext */
2072  *yy_cp = (yy_hold_char);
2073 
2074  if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2075  { /* need to shift things up to make room */
2076  /* +2 for EOB chars. */
2077  int number_to_move = (yy_n_chars) + 2;
2078  char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2079  YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2080  char *source =
2081  &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2082 
2083  while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2084  *--dest = *--source;
2085 
2086  yy_cp += (int) (dest - source);
2087  yy_bp += (int) (dest - source);
2088  YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2089  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2090 
2091  if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2092  YY_FATAL_ERROR( "flex scanner push-back overflow" );
2093  }
2094 
2095  *--yy_cp = (char) c;
2096 
2097  (yytext_ptr) = yy_bp;
2098  (yy_hold_char) = *yy_cp;
2099  (yy_c_buf_p) = yy_cp;
2100 }
2101 
2102 #ifndef YY_NO_INPUT
2103 #ifdef __cplusplus
2104  static int yyinput (void)
2105 #else
2106  static int input (void)
2107 #endif
2108 
2109 {
2110  int c;
2111 
2112  *(yy_c_buf_p) = (yy_hold_char);
2113 
2114  if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2115  {
2116  /* yy_c_buf_p now points to the character we want to return.
2117  * If this occurs *before* the EOB characters, then it's a
2118  * valid NUL; if not, then we've hit the end of the buffer.
2119  */
2120  if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2121  /* This was really a NUL. */
2122  *(yy_c_buf_p) = '\0';
2123 
2124  else
2125  { /* need more input */
2126  int offset = (yy_c_buf_p) - (yytext_ptr);
2127  ++(yy_c_buf_p);
2128 
2129  switch ( yy_get_next_buffer( ) )
2130  {
2131  case EOB_ACT_LAST_MATCH:
2132  /* This happens because yy_g_n_b()
2133  * sees that we've accumulated a
2134  * token and flags that we need to
2135  * try matching the token before
2136  * proceeding. But for input(),
2137  * there's no matching to consider.
2138  * So convert the EOB_ACT_LAST_MATCH
2139  * to EOB_ACT_END_OF_FILE.
2140  */
2141 
2142  /* Reset buffer status. */
2143  yyrestart(yyin );
2144 
2145  /*FALLTHROUGH*/
2146 
2147  case EOB_ACT_END_OF_FILE:
2148  {
2149  if ( yywrap( ) )
2150  return EOF;
2151 
2152  if ( ! (yy_did_buffer_switch_on_eof) )
2153  YY_NEW_FILE;
2154 #ifdef __cplusplus
2155  return yyinput();
2156 #else
2157  return input();
2158 #endif
2159  }
2160 
2161  case EOB_ACT_CONTINUE_SCAN:
2162  (yy_c_buf_p) = (yytext_ptr) + offset;
2163  break;
2164  }
2165  }
2166  }
2167 
2168  c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2169  *(yy_c_buf_p) = '\0'; /* preserve yytext */
2170  (yy_hold_char) = *++(yy_c_buf_p);
2171 
2172  return c;
2173 }
2174 #endif /* ifndef YY_NO_INPUT */
2175 
2181  void yyrestart (FILE * input_file )
2182 {
2183 
2184  if ( ! YY_CURRENT_BUFFER ){
2185  yyensure_buffer_stack ();
2186  YY_CURRENT_BUFFER_LVALUE =
2187  yy_create_buffer(yyin,YY_BUF_SIZE );
2188  }
2189 
2190  yy_init_buffer(YY_CURRENT_BUFFER,input_file );
2191  yy_load_buffer_state( );
2192 }
2193 
2198  void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
2199 {
2200 
2201  /* TODO. We should be able to replace this entire function body
2202  * with
2203  * yypop_buffer_state();
2204  * yypush_buffer_state(new_buffer);
2205  */
2206  yyensure_buffer_stack ();
2207  if ( YY_CURRENT_BUFFER == new_buffer )
2208  return;
2209 
2210  if ( YY_CURRENT_BUFFER )
2211  {
2212  /* Flush out information for old buffer. */
2213  *(yy_c_buf_p) = (yy_hold_char);
2214  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2215  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2216  }
2217 
2218  YY_CURRENT_BUFFER_LVALUE = new_buffer;
2219  yy_load_buffer_state( );
2220 
2221  /* We don't actually know whether we did this switch during
2222  * EOF (yywrap()) processing, but the only time this flag
2223  * is looked at is after yywrap() is called, so it's safe
2224  * to go ahead and always set it.
2225  */
2226  (yy_did_buffer_switch_on_eof) = 1;
2227 }
2228 
2229 static void yy_load_buffer_state (void)
2230 {
2231  (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2232  (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2233  yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2234  (yy_hold_char) = *(yy_c_buf_p);
2235 }
2236 
2243  YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
2244 {
2245  YY_BUFFER_STATE b;
2246 
2247  b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
2248  if ( ! b )
2249  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2250 
2251  b->yy_buf_size = size;
2252 
2253  /* yy_ch_buf has to be 2 characters longer than the size given because
2254  * we need to put in 2 end-of-buffer characters.
2255  */
2256  b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
2257  if ( ! b->yy_ch_buf )
2258  YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2259 
2260  b->yy_is_our_buffer = 1;
2261 
2262  yy_init_buffer(b,file );
2263 
2264  return b;
2265 }
2266 
2271  void yy_delete_buffer (YY_BUFFER_STATE b )
2272 {
2273 
2274  if ( ! b )
2275  return;
2276 
2277  if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2278  YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2279 
2280  if ( b->yy_is_our_buffer )
2281  yyfree((void *) b->yy_ch_buf );
2282 
2283  yyfree((void *) b );
2284 }
2285 
2286 /* Initializes or reinitializes a buffer.
2287  * This function is sometimes called more than once on the same buffer,
2288  * such as during a yyrestart() or at EOF.
2289  */
2290  static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
2291 
2292 {
2293  int oerrno = errno;
2294 
2295  yy_flush_buffer(b );
2296 
2297  b->yy_input_file = file;
2298  b->yy_fill_buffer = 1;
2299 
2300  /* If b is the current buffer, then yy_init_buffer was _probably_
2301  * called from yyrestart() or through yy_get_next_buffer.
2302  * In that case, we don't want to reset the lineno or column.
2303  */
2304  if (b != YY_CURRENT_BUFFER){
2305  b->yy_bs_lineno = 1;
2306  b->yy_bs_column = 0;
2307  }
2308 
2309  b->yy_is_interactive = 0;
2310 
2311  errno = oerrno;
2312 }
2313 
2318  void yy_flush_buffer (YY_BUFFER_STATE b )
2319 {
2320  if ( ! b )
2321  return;
2322 
2323  b->yy_n_chars = 0;
2324 
2325  /* We always need two end-of-buffer characters. The first causes
2326  * a transition to the end-of-buffer state. The second causes
2327  * a jam in that state.
2328  */
2329  b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2330  b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2331 
2332  b->yy_buf_pos = &b->yy_ch_buf[0];
2333 
2334  b->yy_at_bol = 1;
2335  b->yy_buffer_status = YY_BUFFER_NEW;
2336 
2337  if ( b == YY_CURRENT_BUFFER )
2338  yy_load_buffer_state( );
2339 }
2340 
2347 void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2348 {
2349  if (new_buffer == NULL)
2350  return;
2351 
2352  yyensure_buffer_stack();
2353 
2354  /* This block is copied from yy_switch_to_buffer. */
2355  if ( YY_CURRENT_BUFFER )
2356  {
2357  /* Flush out information for old buffer. */
2358  *(yy_c_buf_p) = (yy_hold_char);
2359  YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2360  YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2361  }
2362 
2363  /* Only push if top exists. Otherwise, replace top. */
2364  if (YY_CURRENT_BUFFER)
2365  (yy_buffer_stack_top)++;
2366  YY_CURRENT_BUFFER_LVALUE = new_buffer;
2367 
2368  /* copied from yy_switch_to_buffer. */
2369  yy_load_buffer_state( );
2370  (yy_did_buffer_switch_on_eof) = 1;
2371 }
2372 
2377 void yypop_buffer_state (void)
2378 {
2379  if (!YY_CURRENT_BUFFER)
2380  return;
2381 
2382  yy_delete_buffer(YY_CURRENT_BUFFER );
2383  YY_CURRENT_BUFFER_LVALUE = NULL;
2384  if ((yy_buffer_stack_top) > 0)
2385  --(yy_buffer_stack_top);
2386 
2387  if (YY_CURRENT_BUFFER) {
2388  yy_load_buffer_state( );
2389  (yy_did_buffer_switch_on_eof) = 1;
2390  }
2391 }
2392 
2393 /* Allocates the stack if it does not exist.
2394  * Guarantees space for at least one push.
2395  */
2396 static void yyensure_buffer_stack (void)
2397 {
2398  int num_to_alloc;
2399 
2400  if (!(yy_buffer_stack)) {
2401 
2402  /* First allocation is just for 2 elements, since we don't know if this
2403  * scanner will even need a stack. We use 2 instead of 1 to avoid an
2404  * immediate realloc on the next call.
2405  */
2406  num_to_alloc = 1;
2407  (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
2408  (num_to_alloc * sizeof(struct yy_buffer_state*)
2409  );
2410  if ( ! (yy_buffer_stack) )
2411  YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2412 
2413  memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2414 
2415  (yy_buffer_stack_max) = num_to_alloc;
2416  (yy_buffer_stack_top) = 0;
2417  return;
2418  }
2419 
2420  if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2421 
2422  /* Increase the buffer to prepare for a possible push. */
2423  int grow_size = 8 /* arbitrary grow size */;
2424 
2425  num_to_alloc = (yy_buffer_stack_max) + grow_size;
2426  (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
2427  ((yy_buffer_stack),
2428  num_to_alloc * sizeof(struct yy_buffer_state*)
2429  );
2430  if ( ! (yy_buffer_stack) )
2431  YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
2432 
2433  /* zero only the new slots.*/
2434  memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2435  (yy_buffer_stack_max) = num_to_alloc;
2436  }
2437 }
2438 
2445 YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
2446 {
2447  YY_BUFFER_STATE b;
2448 
2449  if ( size < 2 ||
2450  base[size-2] != YY_END_OF_BUFFER_CHAR ||
2451  base[size-1] != YY_END_OF_BUFFER_CHAR )
2452  /* They forgot to leave room for the EOB's. */
2453  return 0;
2454 
2455  b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
2456  if ( ! b )
2457  YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2458 
2459  b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2460  b->yy_buf_pos = b->yy_ch_buf = base;
2461  b->yy_is_our_buffer = 0;
2462  b->yy_input_file = 0;
2463  b->yy_n_chars = b->yy_buf_size;
2464  b->yy_is_interactive = 0;
2465  b->yy_at_bol = 1;
2466  b->yy_fill_buffer = 0;
2467  b->yy_buffer_status = YY_BUFFER_NEW;
2468 
2469  yy_switch_to_buffer(b );
2470 
2471  return b;
2472 }
2473 
2482 YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
2483 {
2484 
2485  return yy_scan_bytes(yystr,strlen(yystr) );
2486 }
2487 
2495 YY_BUFFER_STATE yy_scan_bytes (yyconst char * yybytes, int _yybytes_len )
2496 {
2497  YY_BUFFER_STATE b;
2498  char *buf;
2499  yy_size_t n;
2500  int i;
2501 
2502  /* Get memory for full buffer, including space for trailing EOB's. */
2503  n = _yybytes_len + 2;
2504  buf = (char *) yyalloc(n );
2505  if ( ! buf )
2506  YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
2507 
2508  for ( i = 0; i < _yybytes_len; ++i )
2509  buf[i] = yybytes[i];
2510 
2511  buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
2512 
2513  b = yy_scan_buffer(buf,n );
2514  if ( ! b )
2515  YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
2516 
2517  /* It's okay to grow etc. this buffer, and we should throw it
2518  * away when we're done.
2519  */
2520  b->yy_is_our_buffer = 1;
2521 
2522  return b;
2523 }
2524 
2525 #ifndef YY_EXIT_FAILURE
2526 #define YY_EXIT_FAILURE 2
2527 #endif
2528 
2529 static void yy_fatal_error (yyconst char* msg )
2530 {
2531  (void) fprintf( stderr, "[dcopidl-scanner] %s\n", msg );
2532  exit( YY_EXIT_FAILURE );
2533 }
2534 
2535 /* Redefine yyless() so it works in section 3 code. */
2536 
2537 #undef yyless
2538 #define yyless(n) \
2539  do \
2540  { \
2541  /* Undo effects of setting up yytext. */ \
2542  int yyless_macro_arg = (n); \
2543  YY_LESS_LINENO(yyless_macro_arg);\
2544  yytext[yyleng] = (yy_hold_char); \
2545  (yy_c_buf_p) = yytext + yyless_macro_arg; \
2546  (yy_hold_char) = *(yy_c_buf_p); \
2547  *(yy_c_buf_p) = '\0'; \
2548  yyleng = yyless_macro_arg; \
2549  } \
2550  while ( 0 )
2551 
2552 /* Accessor methods (get/set functions) to struct members. */
2553 
2557 int yyget_lineno (void)
2558 {
2559 
2560  return yylineno;
2561 }
2562 
2566 FILE *yyget_in (void)
2567 {
2568  return yyin;
2569 }
2570 
2574 FILE *yyget_out (void)
2575 {
2576  return yyout;
2577 }
2578 
2582 int yyget_leng (void)
2583 {
2584  return yyleng;
2585 }
2586 
2591 char *yyget_text (void)
2592 {
2593  return yytext;
2594 }
2595 
2600 void yyset_lineno (int line_number )
2601 {
2602 
2603  yylineno = line_number;
2604 }
2605 
2612 void yyset_in (FILE * in_str )
2613 {
2614  yyin = in_str ;
2615 }
2616 
2617 void yyset_out (FILE * out_str )
2618 {
2619  yyout = out_str ;
2620 }
2621 
2622 int yyget_debug (void)
2623 {
2624  return yy_flex_debug;
2625 }
2626 
2627 void yyset_debug (int bdebug )
2628 {
2629  yy_flex_debug = bdebug ;
2630 }
2631 
2632 static int yy_init_globals (void)
2633 {
2634  /* Initialization is the same as for the non-reentrant scanner.
2635  * This function is called from yylex_destroy(), so don't allocate here.
2636  */
2637 
2638  (yy_buffer_stack) = 0;
2639  (yy_buffer_stack_top) = 0;
2640  (yy_buffer_stack_max) = 0;
2641  (yy_c_buf_p) = (char *) 0;
2642  (yy_init) = 0;
2643  (yy_start) = 0;
2644 
2645  (yy_state_buf) = 0;
2646  (yy_state_ptr) = 0;
2647  (yy_full_match) = 0;
2648  (yy_lp) = 0;
2649 
2650 /* Defined in main.c */
2651 #ifdef YY_STDINIT
2652  yyin = stdin;
2653  yyout = stdout;
2654 #else
2655  yyin = (FILE *) 0;
2656  yyout = (FILE *) 0;
2657 #endif
2658 
2659  /* For future reference: Set errno on error, since we are called by
2660  * yylex_init()
2661  */
2662  return 0;
2663 }
2664 
2665 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
2666 int yylex_destroy (void)
2667 {
2668 
2669  /* Pop the buffer stack, destroying each element. */
2670  while(YY_CURRENT_BUFFER){
2671  yy_delete_buffer(YY_CURRENT_BUFFER );
2672  YY_CURRENT_BUFFER_LVALUE = NULL;
2673  yypop_buffer_state();
2674  }
2675 
2676  /* Destroy the stack itself. */
2677  yyfree((yy_buffer_stack) );
2678  (yy_buffer_stack) = NULL;
2679 
2680  yyfree ( (yy_state_buf) );
2681  (yy_state_buf) = NULL;
2682 
2683  /* Reset the globals. This is important in a non-reentrant scanner so the next time
2684  * yylex() is called, initialization will occur. */
2685  yy_init_globals( );
2686 
2687  return 0;
2688 }
2689 
2690 /*
2691  * Internal utility routines.
2692  */
2693 
2694 #ifndef yytext_ptr
2695 static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
2696 {
2697  int i;
2698  for ( i = 0; i < n; ++i )
2699  s1[i] = s2[i];
2700 }
2701 #endif
2702 
2703 #ifdef YY_NEED_STRLEN
2704 static int yy_flex_strlen (yyconst char * s )
2705 {
2706  int n;
2707  for ( n = 0; s[n]; ++n )
2708  ;
2709 
2710  return n;
2711 }
2712 #endif
2713 
2714 void *yyalloc (yy_size_t size )
2715 {
2716  return (void *) malloc( size );
2717 }
2718 
2719 void *yyrealloc (void * ptr, yy_size_t size )
2720 {
2721  /* The cast to (char *) in the following accommodates both
2722  * implementations that use char* generic pointers, and those
2723  * that use void* generic pointers. It works with the latter
2724  * because both ANSI C and C++ allow castless assignment from
2725  * any pointer type to void*, and deal with argument conversions
2726  * as though doing an assignment.
2727  */
2728  return (void *) realloc( (char *) ptr, size );
2729 }
2730 
2731 void yyfree (void * ptr )
2732 {
2733  free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
2734 }
2735 
2736 #define YYTABLES_NAME "yytables"
2737 
2738 #line 288 "scanner.ll"
2739 
2740 
2741 
2742 void dcopidlInitFlex( const char *_code )
2743 {
2744  comment_mode = 0;
2745  yy_switch_to_buffer(yy_scan_string(_code ) );
2746 }
2747 

dcop

Skip menu "dcop"
  • Main Page
  • Modules
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

dcop

Skip menu "dcop"
  • arts
  • dcop
  • dnssd
  • interfaces
  •   kspeech
  •     interface
  •     library
  •   tdetexteditor
  • kate
  • kded
  • kdoctools
  • kimgio
  • kjs
  • libtdemid
  • libtdescreensaver
  •     tdecore
  • tdeabc
  • tdecmshell
  • tdecore
  • tdefx
  • tdehtml
  • tdeinit
  • tdeio
  •   bookmarks
  •   httpfilter
  •   kpasswdserver
  •   kssl
  • tdeioslave
  •   http
  •   tdefile
  •   tdeio
  •   tdeioexec
  • tdemdi
  •   tdemdi
  • tdenewstuff
  • tdeparts
  • tdeprint
  • tderandr
  • tderesources
  • tdespell2
  • tdesu
  • tdeui
  • tdeunittest
  • tdeutils
  • tdewallet
Generated for dcop by doxygen 1.8.8
This website is maintained by Timothy Pearson.