source: trunk/src/moc/moc_lex.cpp@ 144

Last change on this file since 144 was 2, checked in by dmik, 20 years ago

Imported xplatform parts of the official release 3.3.1 from Trolltech

  • Property svn:keywords set to Id
File size: 91.9 KB
Line 
1
2#line 3 "lex.yy.c"
3
4#define YY_INT_ALIGNED short int
5
6/* A lexical scanner generated by flex */
7
8#define FLEX_SCANNER
9#define YY_FLEX_MAJOR_VERSION 2
10#define YY_FLEX_MINOR_VERSION 5
11#define YY_FLEX_SUBMINOR_VERSION 31
12#if YY_FLEX_SUBMINOR_VERSION > 0
13#define FLEX_BETA
14#endif
15
16/* First, we deal with platform-specific or compiler-specific issues. */
17
18/* begin standard C headers. */
19#include <stdio.h>
20#include <string.h>
21#include <errno.h>
22#include <stdlib.h>
23
24/* end standard C headers. */
25
26/* flex integer type definitions */
27
28#ifndef FLEXINT_H
29#define FLEXINT_H
30
31/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
32
33#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
34#include <inttypes.h>
35typedef int8_t flex_int8_t;
36typedef uint8_t flex_uint8_t;
37typedef int16_t flex_int16_t;
38typedef uint16_t flex_uint16_t;
39typedef int32_t flex_int32_t;
40typedef uint32_t flex_uint32_t;
41#else
42typedef signed char flex_int8_t;
43typedef short int flex_int16_t;
44typedef int flex_int32_t;
45typedef unsigned char flex_uint8_t;
46typedef unsigned short int flex_uint16_t;
47typedef unsigned int flex_uint32_t;
48#endif /* ! C99 */
49
50/* Limits of integral types. */
51#ifndef INT8_MIN
52#define INT8_MIN (-128)
53#endif
54#ifndef INT16_MIN
55#define INT16_MIN (-32767-1)
56#endif
57#ifndef INT32_MIN
58#define INT32_MIN (-2147483647-1)
59#endif
60#ifndef INT8_MAX
61#define INT8_MAX (127)
62#endif
63#ifndef INT16_MAX
64#define INT16_MAX (32767)
65#endif
66#ifndef INT32_MAX
67#define INT32_MAX (2147483647)
68#endif
69#ifndef UINT8_MAX
70#define UINT8_MAX (255U)
71#endif
72#ifndef UINT16_MAX
73#define UINT16_MAX (65535U)
74#endif
75#ifndef UINT32_MAX
76#define UINT32_MAX (4294967295U)
77#endif
78
79#endif /* ! FLEXINT_H */
80
81#ifdef __cplusplus
82
83/* The "const" storage-class-modifier is valid. */
84#define YY_USE_CONST
85
86#else /* ! __cplusplus */
87
88#if __STDC__
89
90#define YY_USE_CONST
91
92#endif /* __STDC__ */
93#endif /* ! __cplusplus */
94
95#ifdef YY_USE_CONST
96#define yyconst const
97#else
98#define yyconst
99#endif
100
101/* Returned upon end-of-file. */
102#define YY_NULL 0
103
104/* Promotes a possibly negative, possibly signed char to an unsigned
105 * integer for use as an array index. If the signed char is negative,
106 * we want to instead treat it as an 8-bit unsigned char, hence the
107 * double cast.
108 */
109#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
110
111/* Enter a start condition. This macro really ought to take a parameter,
112 * but we do it the disgusting crufty way forced on us by the ()-less
113 * definition of BEGIN.
114 */
115#define BEGIN (yy_start) = 1 + 2 *
116
117/* Translate the current start state into a value that can be later handed
118 * to BEGIN to return to the state. The YYSTATE alias is for lex
119 * compatibility.
120 */
121#define YY_START (((yy_start) - 1) / 2)
122#define YYSTATE YY_START
123
124/* Action number for EOF rule of a given start state. */
125#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
126
127/* Special action meaning "start processing a new file". */
128#define YY_NEW_FILE yyrestart(yyin )
129
130#define YY_END_OF_BUFFER_CHAR 0
131
132/* Size of default input buffer. */
133#ifndef YY_BUF_SIZE
134#define YY_BUF_SIZE 16384
135#endif
136
137#ifndef YY_TYPEDEF_YY_BUFFER_STATE
138#define YY_TYPEDEF_YY_BUFFER_STATE
139typedef struct yy_buffer_state *YY_BUFFER_STATE;
140#endif
141
142extern int yyleng;
143
144extern FILE *yyin, *yyout;
145
146#define EOB_ACT_CONTINUE_SCAN 0
147#define EOB_ACT_END_OF_FILE 1
148#define EOB_ACT_LAST_MATCH 2
149
150 #define YY_LESS_LINENO(n)
151
152/* Return all but the first "n" matched characters back to the input stream. */
153#define yyless(n) \
154 do \
155 { \
156 /* Undo effects of setting up yytext. */ \
157 int yyless_macro_arg = (n); \
158 YY_LESS_LINENO(yyless_macro_arg);\
159 *yy_cp = (yy_hold_char); \
160 YY_RESTORE_YY_MORE_OFFSET \
161 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
162 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
163 } \
164 while ( 0 )
165
166#define unput(c) yyunput( c, (yytext_ptr) )
167
168/* The following is because we cannot portably get our hands on size_t
169 * (without autoconf's help, which isn't available because we want
170 * flex-generated scanners to compile on their own).
171 */
172
173#ifndef YY_TYPEDEF_YY_SIZE_T
174#define YY_TYPEDEF_YY_SIZE_T
175typedef unsigned int yy_size_t;
176#endif
177
178#ifndef YY_STRUCT_YY_BUFFER_STATE
179#define YY_STRUCT_YY_BUFFER_STATE
180struct yy_buffer_state
181 {
182 FILE *yy_input_file;
183
184 char *yy_ch_buf; /* input buffer */
185 char *yy_buf_pos; /* current position in input buffer */
186
187 /* Size of input buffer in bytes, not including room for EOB
188 * characters.
189 */
190 yy_size_t yy_buf_size;
191
192 /* Number of characters read into yy_ch_buf, not including EOB
193 * characters.
194 */
195 int yy_n_chars;
196
197 /* Whether we "own" the buffer - i.e., we know we created it,
198 * and can realloc() it to grow it, and should free() it to
199 * delete it.
200 */
201 int yy_is_our_buffer;
202
203 /* Whether this is an "interactive" input source; if so, and
204 * if we're using stdio for input, then we want to use getc()
205 * instead of fread(), to make sure we stop fetching input after
206 * each newline.
207 */
208 int yy_is_interactive;
209
210 /* Whether we're considered to be at the beginning of a line.
211 * If so, '^' rules will be active on the next match, otherwise
212 * not.
213 */
214 int yy_at_bol;
215
216 int yy_bs_lineno; /**< The line count. */
217 int yy_bs_column; /**< The column count. */
218
219 /* Whether to try to fill the input buffer when we reach the
220 * end of it.
221 */
222 int yy_fill_buffer;
223
224 int yy_buffer_status;
225
226#define YY_BUFFER_NEW 0
227#define YY_BUFFER_NORMAL 1
228 /* When an EOF's been seen but there's still some text to process
229 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
230 * shouldn't try reading from the input source any more. We might
231 * still have a bunch of tokens to match, though, because of
232 * possible backing-up.
233 *
234 * When we actually see the EOF, we change the status to "new"
235 * (via yyrestart()), so that the user can continue scanning by
236 * just pointing yyin at a new input file.
237 */
238#define YY_BUFFER_EOF_PENDING 2
239
240 };
241#endif /* !YY_STRUCT_YY_BUFFER_STATE */
242
243/* Stack of input buffers. */
244static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
245static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
246static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
247
248/* We provide macros for accessing buffer states in case in the
249 * future we want to put the buffer states in a more general
250 * "scanner state".
251 *
252 * Returns the top of the stack, or NULL.
253 */
254#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
255 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
256 : NULL)
257
258/* Same as previous macro, but useful when we know that the buffer stack is not
259 * NULL or when we need an lvalue. For internal use only.
260 */
261#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
262
263/* yy_hold_char holds the character lost when yytext is formed. */
264static char yy_hold_char;
265static int yy_n_chars; /* number of characters read into yy_ch_buf */
266int yyleng;
267
268/* Points to current character in buffer. */
269static char *yy_c_buf_p = (char *) 0;
270static int yy_init = 1; /* whether we need to initialize */
271static int yy_start = 0; /* start state number */
272
273/* Flag which is used to allow yywrap()'s to do buffer switches
274 * instead of setting up a fresh yyin. A bit of a hack ...
275 */
276static int yy_did_buffer_switch_on_eof;
277
278void yyrestart (FILE *input_file );
279void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer );
280YY_BUFFER_STATE yy_create_buffer (FILE *file,int size );
281void yy_delete_buffer (YY_BUFFER_STATE b );
282void yy_flush_buffer (YY_BUFFER_STATE b );
283void yypush_buffer_state (YY_BUFFER_STATE new_buffer );
284void yypop_buffer_state (void );
285
286static void yyensure_buffer_stack (void );
287static void yy_load_buffer_state (void );
288static void yy_init_buffer (YY_BUFFER_STATE b,FILE *file );
289
290#define YY_FLUSH_BUFFER yy_flush_buffer(YY_CURRENT_BUFFER )
291
292YY_BUFFER_STATE yy_scan_buffer (char *base,yy_size_t size );
293YY_BUFFER_STATE yy_scan_string (yyconst char *yy_str );
294YY_BUFFER_STATE yy_scan_bytes (yyconst char *bytes,int len );
295
296void *yyalloc (yy_size_t );
297void *yyrealloc (void *,yy_size_t );
298void yyfree (void * );
299
300#define yy_new_buffer yy_create_buffer
301
302#define yy_set_interactive(is_interactive) \
303 { \
304 if ( ! YY_CURRENT_BUFFER ){ \
305 yyensure_buffer_stack (); \
306 YY_CURRENT_BUFFER_LVALUE = \
307 yy_create_buffer(yyin,YY_BUF_SIZE ); \
308 } \
309 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
310 }
311
312#define yy_set_bol(at_bol) \
313 { \
314 if ( ! YY_CURRENT_BUFFER ){\
315 yyensure_buffer_stack (); \
316 YY_CURRENT_BUFFER_LVALUE = \
317 yy_create_buffer(yyin,YY_BUF_SIZE ); \
318 } \
319 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
320 }
321
322#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
323
324/* Begin user sect3 */
325
326typedef unsigned char YY_CHAR;
327
328FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
329
330typedef int yy_state_type;
331
332extern int yylineno;
333
334int yylineno = 1;
335
336extern char *yytext;
337#define yytext_ptr yytext
338
339static yy_state_type yy_get_previous_state (void );
340static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
341static int yy_get_next_buffer (void );
342static void yy_fatal_error (yyconst char msg[] );
343
344/* Done after the current pattern has been matched and before the
345 * corresponding action - sets up yytext.
346 */
347#define YY_DO_BEFORE_ACTION \
348 (yytext_ptr) = yy_bp; \
349 yyleng = (size_t) (yy_cp - yy_bp); \
350 (yy_hold_char) = *yy_cp; \
351 *yy_cp = '\0'; \
352 (yy_c_buf_p) = yy_cp;
353
354#define YY_NUM_RULES 151
355#define YY_END_OF_BUFFER 152
356/* This struct is not used in this scanner,
357 but its presence is necessary. */
358struct yy_trans_info
359 {
360 flex_int32_t yy_verify;
361 flex_int32_t yy_nxt;
362 };
363static yyconst flex_int16_t yy_accept[615] =
364 { 0,
365 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
367 0, 0, 0, 0, 0, 0, 0, 0, 152, 151,
368 139, 150, 151, 139, 134, 146, 139, 146, 146, 105,
369 105, 105, 105, 105, 139, 134, 148, 139, 113, 148,
370 148, 148, 130, 148, 99, 99, 99, 99, 99, 99,
371 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
372 99, 99, 99, 139, 134, 140, 139, 140, 140, 106,
373 106, 106, 106, 15, 16, 139, 134, 141, 139, 141,
374 141, 107, 107, 107, 107, 107, 28, 29, 139, 134,
375
376 145, 139, 54, 55, 58, 145, 59, 56, 57, 60,
377 139, 134, 143, 139, 42, 43, 46, 143, 47, 44,
378 45, 139, 134, 144, 139, 48, 49, 52, 144, 53,
379 50, 51, 139, 134, 142, 139, 111, 142, 13, 14,
380 139, 134, 137, 137, 112, 61, 62, 137, 137, 134,
381 149, 139, 149, 139, 134, 147, 139, 147, 139, 134,
382 34, 35, 100, 100, 100, 100, 100, 104, 101, 102,
383 103, 139, 136, 135, 139, 134, 134, 134, 0, 108,
384 0, 105, 105, 105, 105, 105, 113, 0, 0, 123,
385 0, 0, 132, 131, 130, 92, 99, 99, 99, 99,
386
387 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
388 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
389 99, 99, 99, 99, 99, 99, 99, 99, 0, 109,
390 0, 106, 106, 106, 106, 106, 106, 0, 110, 0,
391 107, 107, 107, 107, 107, 111, 0, 138, 112, 0,
392 138, 100, 100, 100, 100, 100, 100, 104, 0, 135,
393 134, 105, 105, 105, 105, 114, 0, 0, 114, 0,
394 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
395 93, 131, 99, 99, 99, 99, 99, 99, 87, 99,
396 99, 99, 99, 99, 99, 99, 99, 99, 99, 76,
397
398 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
399 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
400 99, 99, 106, 106, 106, 106, 106, 106, 106, 106,
401 106, 106, 107, 107, 107, 107, 100, 100, 100, 100,
402 100, 100, 134, 105, 105, 105, 105, 129, 125, 124,
403 126, 0, 127, 122, 115, 116, 117, 118, 119, 120,
404 121, 0, 99, 99, 99, 99, 99, 99, 99, 65,
405 74, 99, 99, 99, 83, 99, 99, 99, 99, 77,
406 99, 99, 99, 99, 99, 99, 99, 99, 99, 99,
407 99, 99, 99, 99, 99, 99, 99, 99, 99, 82,
408
409 99, 106, 106, 106, 106, 106, 106, 106, 106, 106,
410 106, 106, 107, 107, 107, 107, 100, 36, 100, 100,
411 100, 100, 134, 1, 105, 105, 3, 127, 128, 99,
412 99, 99, 99, 99, 99, 99, 84, 72, 99, 99,
413 80, 99, 99, 99, 99, 99, 99, 99, 99, 99,
414 75, 99, 99, 7, 99, 99, 99, 96, 99, 86,
415 99, 97, 99, 99, 106, 106, 106, 106, 106, 106,
416 106, 106, 106, 106, 21, 30, 107, 107, 33, 100,
417 39, 100, 100, 37, 134, 105, 105, 99, 99, 99,
418 99, 99, 12, 99, 81, 68, 63, 69, 99, 99,
419
420 99, 99, 99, 90, 99, 99, 78, 67, 85, 99,
421 99, 99, 99, 99, 106, 106, 106, 106, 106, 27,
422 106, 106, 17, 106, 107, 107, 100, 100, 38, 134,
423 105, 105, 99, 11, 99, 99, 99, 99, 95, 99,
424 99, 88, 99, 99, 6, 99, 64, 99, 71, 99,
425 106, 26, 106, 106, 106, 19, 106, 20, 107, 107,
426 100, 100, 134, 134, 105, 4, 99, 5, 99, 99,
427 99, 99, 91, 99, 66, 94, 79, 73, 106, 23,
428 106, 106, 106, 107, 31, 100, 100, 133, 2, 99,
429 99, 99, 99, 98, 89, 106, 106, 106, 18, 32,
430
431 100, 100, 99, 10, 9, 70, 106, 25, 24, 40,
432 41, 8, 22, 0
433 } ;
434
435static yyconst flex_int32_t yy_ec[256] =
436 { 0,
437 1, 1, 1, 1, 1, 1, 1, 2, 3, 4,
438 1, 2, 2, 1, 1, 1, 1, 1, 1, 1,
439 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
440 1, 3, 1, 5, 6, 1, 1, 1, 7, 8,
441 9, 10, 1, 11, 1, 12, 13, 14, 15, 15,
442 15, 15, 15, 15, 15, 16, 16, 17, 18, 19,
443 1, 20, 1, 1, 21, 22, 23, 24, 25, 26,
444 27, 28, 29, 30, 28, 31, 32, 33, 34, 35,
445 36, 37, 38, 39, 40, 41, 42, 28, 43, 28,
446 44, 45, 46, 1, 47, 1, 48, 49, 50, 51,
447
448 52, 53, 54, 55, 56, 28, 28, 57, 58, 59,
449 60, 61, 28, 62, 63, 64, 65, 66, 67, 68,
450 69, 28, 70, 1, 71, 1, 1, 1, 1, 1,
451 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
452 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
453 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
454 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
455 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
456 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
457 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
458
459 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
460 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
461 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
462 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
463 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
464 1, 1, 1, 1, 1
465 } ;
466
467static yyconst flex_int32_t yy_meta[72] =
468 { 0,
469 1, 1, 1, 2, 3, 1, 4, 1, 1, 1,
470 1, 1, 1, 5, 5, 5, 1, 1, 1, 1,
471 5, 5, 5, 5, 5, 5, 6, 6, 6, 6,
472 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
473 6, 6, 6, 1, 1, 1, 6, 5, 5, 5,
474 5, 5, 5, 6, 6, 6, 6, 6, 6, 6,
475 6, 6, 6, 6, 6, 6, 6, 6, 6, 1,
476 1
477 } ;
478
479static yyconst flex_int16_t yy_base[642] =
480 { 0,
481 0, 3, 16, 5, 87, 9, 158, 229, 300, 176,
482 370, 440, 207, 510, 382, 555, 184, 399, 600, 645,
483 188, 254, 204, 266, 691, 177, 278, 416, 1189, 1190,
484 182, 1190, 183, 220, 1137, 1190, 196, 207, 214, 0,
485 1130, 1138, 1133, 1121, 260, 1132, 1190, 211, 1137, 243,
486 281, 251, 382, 1164, 0, 1133, 1132, 213, 320, 1118,
487 226, 138, 1118, 1116, 1110, 1126, 1112, 327, 1120, 351,
488 378, 350, 375, 434, 1120, 1190, 408, 394, 442, 0,
489 1123, 392, 403, 1190, 1190, 459, 1118, 1190, 461, 427,
490 458, 0, 1111, 1119, 1114, 1102, 1190, 1190, 471, 1113,
491
492 1190, 464, 1190, 1190, 1190, 465, 1190, 1190, 1190, 1190,
493 477, 1112, 1190, 479, 1190, 1190, 1190, 475, 1190, 1190,
494 1190, 487, 1111, 1190, 489, 1190, 1190, 1190, 484, 1190,
495 1190, 1190, 493, 1110, 1190, 498, 1115, 492, 1190, 1190,
496 501, 1108, 1190, 506, 1113, 1190, 1190, 507, 523, 1106,
497 1190, 528, 514, 530, 1105, 1190, 532, 527, 536, 1104,
498 1190, 1190, 0, 1129, 1128, 411, 1115, 1106, 1190, 1190,
499 1190, 541, 1190, 0, 543, 0, 0, 1098, 505, 1190,
500 1145, 0, 1100, 1089, 1088, 1089, 1099, 543, 1136, 1135,
501 758, 1129, 537, 555, 560, 1190, 0, 554, 1084, 1081,
502
503 1074, 1089, 1088, 1076, 1069, 1068, 1068, 1071, 1074, 220,
504 1070, 1064, 1069, 1074, 522, 1076, 1070, 1063, 1068, 1061,
505 493, 1062, 1057, 1057, 382, 1061, 1054, 524, 517, 1190,
506 1111, 0, 560, 530, 1065, 1059, 1052, 555, 1190, 1107,
507 0, 1062, 1051, 1050, 1051, 1061, 592, 604, 1060, 606,
508 612, 0, 1066, 477, 1066, 1068, 1072, 1055, 612, 0,
509 1046, 1035, 1045, 1035, 1036, 1190, 1087, 1086, 1085, 614,
510 616, 1084, 1083, 1082, 1081, 1080, 1079, 1078, 1077, 1076,
511 1190, 610, 1051, 1048, 465, 1043, 1054, 1019, 0, 1017,
512 1014, 1012, 1011, 1024, 1014, 1019, 1022, 1017, 1012, 0,
513
514 1013, 1018, 1013, 1002, 997, 998, 1004, 1004, 997, 999,
515 993, 992, 990, 993, 993, 1000, 991, 994, 990, 984,
516 996, 998, 1014, 1011, 543, 1006, 1017, 975, 976, 982,
517 979, 973, 973, 983, 973, 974, 1003, 1007, 1005, 1000,
518 991, 988, 970, 962, 961, 966, 968, 1190, 1190, 1190,
519 1190, 620, 1190, 1190, 1190, 1190, 1190, 1190, 1190, 1190,
520 1190, 1014, 999, 979, 988, 992, 982, 976, 957, 0,
521 0, 950, 948, 954, 0, 948, 945, 949, 948, 0,
522 957, 942, 956, 955, 950, 945, 937, 935, 539, 935,
523 941, 946, 938, 927, 942, 933, 937, 936, 924, 0,
524
525 924, 966, 946, 955, 959, 949, 943, 933, 928, 923,
526 930, 914, 913, 912, 917, 919, 945, 0, 932, 935,
527 944, 943, 908, 0, 905, 917, 0, 1190, 1190, 922,
528 920, 921, 904, 905, 895, 876, 0, 0, 875, 867,
529 0, 867, 858, 845, 836, 832, 824, 832, 775, 759,
530 0, 764, 768, 0, 768, 752, 767, 0, 762, 0,
531 754, 0, 764, 754, 771, 776, 780, 767, 767, 763,
532 736, 749, 748, 740, 0, 0, 735, 747, 0, 761,
533 0, 754, 768, 0, 739, 742, 725, 750, 749, 763,
534 748, 759, 0, 724, 0, 0, 0, 0, 730, 733,
535
536 720, 727, 714, 0, 725, 713, 0, 0, 0, 711,
537 721, 719, 713, 712, 730, 729, 743, 727, 665, 0,
538 636, 623, 0, 623, 637, 620, 662, 661, 0, 636,
539 630, 627, 649, 0, 638, 647, 638, 622, 0, 623,
540 610, 0, 619, 608, 0, 617, 0, 617, 0, 615,
541 637, 0, 624, 633, 624, 0, 608, 0, 609, 605,
542 634, 633, 607, 372, 593, 0, 610, 0, 618, 602,
543 593, 587, 0, 587, 0, 0, 0, 0, 604, 0,
544 612, 594, 581, 570, 0, 581, 562, 1190, 0, 541,
545 451, 413, 376, 0, 0, 361, 357, 255, 0, 0,
546
547 246, 234, 171, 0, 0, 0, 147, 0, 0, 0,
548 0, 0, 0, 1190, 826, 832, 838, 844, 850, 856,
549 862, 868, 874, 880, 886, 888, 894, 900, 902, 908,
550 910, 916, 918, 924, 930, 932, 938, 944, 950, 953,
551 958
552 } ;
553
554static yyconst flex_int16_t yy_def[642] =
555 { 0,
556 615, 615, 614, 3, 614, 5, 616, 616, 614, 9,
557 617, 617, 618, 618, 619, 619, 620, 620, 621, 621,
558 622, 622, 623, 623, 614, 25, 615, 615, 614, 614,
559 614, 614, 614, 614, 624, 614, 614, 625, 614, 626,
560 626, 626, 626, 626, 614, 624, 614, 614, 627, 628,
561 614, 614, 614, 614, 629, 629, 629, 629, 629, 629,
562 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
563 629, 629, 629, 614, 624, 614, 614, 630, 614, 631,
564 631, 631, 631, 614, 614, 614, 624, 614, 614, 632,
565 614, 633, 633, 633, 633, 633, 614, 614, 614, 624,
566
567 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
568 614, 624, 614, 614, 614, 614, 614, 614, 614, 614,
569 614, 614, 624, 614, 614, 614, 614, 614, 614, 614,
570 614, 614, 614, 624, 614, 614, 634, 614, 614, 614,
571 614, 624, 614, 614, 635, 614, 614, 614, 614, 624,
572 614, 614, 614, 614, 624, 614, 614, 614, 614, 624,
573 614, 614, 636, 636, 636, 636, 636, 637, 614, 614,
574 614, 614, 614, 638, 614, 624, 624, 624, 625, 614,
575 625, 626, 626, 626, 626, 626, 627, 627, 614, 614,
576 639, 614, 614, 614, 614, 614, 629, 629, 629, 629,
577
578 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
579 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
580 629, 629, 629, 629, 629, 629, 629, 629, 630, 614,
581 630, 631, 631, 631, 631, 631, 631, 632, 614, 632,
582 633, 633, 633, 633, 633, 634, 634, 614, 635, 635,
583 614, 636, 636, 636, 636, 636, 636, 637, 637, 638,
584 624, 626, 626, 626, 626, 614, 614, 614, 614, 614,
585 614, 614, 614, 614, 614, 614, 614, 614, 614, 640,
586 614, 614, 629, 629, 629, 629, 629, 629, 629, 629,
587 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
588
589 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
590 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
591 629, 629, 631, 631, 631, 631, 631, 631, 631, 631,
592 631, 631, 633, 633, 633, 633, 636, 636, 636, 636,
593 636, 636, 624, 626, 626, 626, 626, 614, 614, 614,
594 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
595 614, 640, 629, 629, 629, 629, 629, 629, 629, 629,
596 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
597 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
598 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
599
600 629, 631, 631, 631, 631, 631, 631, 631, 631, 631,
601 631, 631, 633, 633, 633, 633, 636, 636, 636, 636,
602 636, 636, 624, 626, 626, 626, 626, 614, 614, 629,
603 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
604 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
605 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
606 629, 629, 629, 629, 631, 631, 631, 631, 631, 631,
607 631, 631, 631, 631, 631, 633, 633, 633, 633, 636,
608 636, 636, 636, 636, 624, 626, 626, 629, 629, 629,
609 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
610
611 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
612 629, 629, 629, 629, 631, 631, 631, 631, 631, 631,
613 631, 631, 631, 631, 633, 633, 636, 636, 636, 641,
614 626, 626, 629, 629, 629, 629, 629, 629, 629, 629,
615 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
616 631, 631, 631, 631, 631, 631, 631, 631, 633, 633,
617 636, 636, 641, 641, 626, 626, 629, 629, 629, 629,
618 629, 629, 629, 629, 629, 629, 629, 629, 631, 631,
619 631, 631, 631, 633, 633, 636, 636, 614, 626, 629,
620 629, 629, 629, 629, 629, 631, 631, 631, 631, 633,
621
622 636, 636, 629, 629, 629, 629, 631, 631, 631, 636,
623 636, 629, 631, 0, 614, 614, 614, 614, 614, 614,
624 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
625 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
626 614
627 } ;
628
629static yyconst flex_int16_t yy_nxt[1262] =
630 { 0,
631 614, 31, 31, 32, 31, 34, 32, 45, 35, 614,
632 46, 74, 33, 614, 75, 33, 36, 37, 37, 32,
633 38, 36, 36, 36, 36, 36, 36, 36, 39, 36,
634 36, 36, 36, 36, 36, 36, 40, 40, 40, 40,
635 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
636 40, 40, 40, 40, 40, 40, 40, 40, 40, 36,
637 36, 36, 40, 40, 40, 41, 40, 40, 40, 40,
638 40, 40, 40, 40, 42, 40, 40, 40, 40, 43,
639 44, 40, 40, 40, 40, 36, 36, 47, 48, 48,
640 32, 49, 47, 50, 47, 47, 47, 47, 51, 52,
641
642 53, 53, 53, 54, 47, 47, 47, 55, 55, 55,
643 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
644 55, 55, 56, 55, 55, 55, 55, 55, 55, 55,
645 47, 47, 47, 57, 58, 55, 59, 60, 61, 62,
646 55, 55, 63, 64, 65, 66, 67, 68, 69, 70,
647 71, 72, 73, 55, 55, 55, 47, 47, 76, 77,
648 77, 32, 78, 76, 76, 76, 76, 76, 76, 76,
649 79, 76, 76, 76, 76, 76, 76, 76, 99, 34,
650 613, 100, 35, 172, 172, 136, 136, 32, 137, 152,
651 152, 32, 173, 81, 208, 174, 138, 172, 172, 209,
652
653 153, 76, 76, 76, 612, 157, 157, 32, 114, 114,
654 32, 180, 172, 172, 115, 116, 158, 117, 82, 118,
655 83, 172, 175, 173, 119, 176, 174, 84, 85, 76,
656 77, 86, 32, 78, 87, 76, 76, 76, 76, 76,
657 76, 79, 76, 76, 76, 76, 76, 76, 76, 190,
658 120, 181, 121, 139, 140, 152, 154, 32, 611, 155,
659 173, 172, 175, 174, 81, 176, 153, 157, 159, 32,
660 610, 160, 76, 76, 76, 200, 299, 201, 158, 31,
661 31, 32, 168, 300, 206, 169, 170, 191, 171, 82,
662 33, 83, 192, 207, 193, 193, 193, 609, 84, 85,
663
664 88, 89, 89, 32, 90, 88, 88, 88, 88, 88,
665 88, 88, 91, 88, 88, 88, 88, 88, 88, 88,
666 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
667 92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
668 92, 92, 92, 88, 88, 88, 92, 92, 92, 93,
669 92, 92, 92, 92, 92, 92, 92, 92, 94, 92,
670 92, 92, 92, 95, 96, 92, 92, 92, 92, 97,
671 98, 102, 102, 32, 202, 588, 203, 103, 104, 204,
672 105, 608, 106, 125, 125, 32, 607, 107, 215, 126,
673 127, 216, 128, 194, 129, 195, 195, 195, 230, 130,
674
675 136, 141, 32, 137, 142, 218, 219, 220, 225, 172,
676 172, 138, 226, 108, 221, 109, 564, 31, 34, 32,
677 168, 35, 606, 169, 170, 131, 171, 132, 33, 222,
678 227, 239, 223, 255, 228, 172, 175, 317, 231, 176,
679 110, 102, 111, 32, 318, 112, 224, 103, 104, 256,
680 105, 173, 106, 234, 174, 605, 235, 107, 236, 237,
681 172, 175, 172, 172, 176, 172, 172, 173, 139, 140,
682 174, 240, 172, 175, 173, 604, 176, 174, 172, 175,
683 172, 172, 176, 108, 173, 109, 365, 174, 172, 175,
684 172, 172, 176, 173, 172, 175, 174, 338, 176, 172,
685
686 172, 173, 172, 175, 174, 366, 176, 248, 248, 180,
687 110, 114, 122, 32, 339, 123, 173, 115, 116, 174,
688 117, 230, 118, 173, 248, 251, 174, 119, 176, 172,
689 172, 172, 175, 172, 172, 176, 173, 172, 175, 174,
690 312, 176, 172, 172, 172, 175, 187, 187, 176, 181,
691 193, 193, 193, 120, 313, 121, 125, 133, 32, 239,
692 134, 231, 126, 127, 404, 128, 603, 129, 282, 282,
693 282, 194, 130, 195, 195, 195, 283, 305, 284, 321,
694 322, 306, 323, 405, 324, 328, 452, 285, 286, 329,
695 453, 287, 602, 325, 326, 246, 246, 327, 131, 240,
696
697 132, 144, 144, 32, 145, 248, 248, 146, 147, 249,
698 249, 601, 148, 248, 251, 258, 258, 176, 146, 147,
699 351, 600, 353, 282, 282, 282, 428, 352, 352, 352,
700 352, 599, 598, 352, 352, 597, 596, 595, 594, 593,
701 592, 591, 590, 146, 589, 147, 144, 149, 32, 145,
702 150, 564, 146, 147, 587, 586, 585, 148, 584, 583,
703 582, 581, 580, 146, 147, 579, 578, 577, 576, 575,
704 574, 573, 572, 571, 570, 569, 568, 567, 566, 565,
705 564, 562, 561, 560, 559, 558, 557, 556, 146, 555,
706 147, 30, 31, 31, 32, 30, 30, 30, 161, 162,
707
708 30, 30, 30, 33, 30, 30, 30, 30, 30, 30,
709 30, 163, 163, 163, 164, 163, 163, 163, 163, 163,
710 163, 163, 163, 163, 163, 163, 163, 165, 166, 163,
711 163, 163, 167, 163, 30, 30, 30, 163, 163, 163,
712 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
713 163, 163, 163, 163, 163, 163, 163, 163, 163, 163,
714 30, 30, 268, 554, 269, 553, 552, 551, 550, 549,
715 548, 270, 271, 547, 546, 545, 544, 543, 542, 541,
716 540, 539, 538, 537, 536, 535, 534, 533, 532, 531,
717 530, 529, 528, 527, 526, 525, 524, 523, 522, 521,
718
719 520, 519, 272, 518, 517, 273, 274, 516, 515, 514,
720 275, 513, 512, 511, 510, 509, 276, 508, 507, 277,
721 506, 278, 505, 279, 504, 280, 30, 30, 30, 30,
722 30, 30, 80, 80, 80, 80, 80, 80, 101, 101,
723 101, 101, 101, 101, 113, 113, 113, 113, 113, 113,
724 124, 124, 124, 124, 124, 124, 135, 135, 135, 135,
725 135, 135, 143, 143, 143, 143, 143, 143, 151, 151,
726 151, 151, 151, 151, 156, 156, 156, 156, 156, 156,
727 177, 503, 177, 177, 177, 177, 179, 502, 179, 179,
728 179, 179, 182, 182, 187, 501, 500, 187, 187, 187,
729
730 189, 499, 189, 189, 189, 189, 197, 197, 229, 498,
731 229, 229, 229, 229, 232, 232, 238, 497, 238, 238,
732 238, 238, 241, 241, 246, 496, 495, 246, 246, 246,
733 249, 494, 493, 249, 249, 249, 252, 252, 258, 492,
734 491, 258, 258, 258, 260, 490, 260, 260, 260, 260,
735 267, 489, 267, 267, 267, 267, 362, 362, 563, 488,
736 563, 563, 563, 563, 487, 486, 485, 484, 483, 482,
737 481, 480, 479, 478, 477, 476, 475, 474, 473, 472,
738 471, 470, 469, 468, 467, 466, 465, 464, 463, 462,
739 461, 460, 459, 458, 457, 456, 455, 454, 451, 450,
740
741 449, 448, 447, 446, 445, 444, 443, 442, 441, 440,
742 439, 438, 437, 436, 435, 434, 433, 432, 431, 430,
743 429, 427, 426, 425, 424, 423, 422, 421, 420, 419,
744 418, 417, 416, 415, 414, 413, 412, 411, 410, 409,
745 408, 407, 406, 403, 402, 401, 400, 399, 398, 397,
746 396, 395, 394, 393, 392, 391, 390, 389, 388, 387,
747 386, 385, 384, 383, 382, 381, 380, 379, 378, 377,
748 376, 375, 374, 373, 372, 371, 370, 369, 368, 367,
749 364, 363, 348, 361, 360, 359, 358, 357, 356, 355,
750 354, 350, 349, 348, 347, 346, 345, 344, 343, 259,
751
752 342, 341, 340, 337, 250, 247, 336, 335, 334, 333,
753 238, 332, 331, 330, 229, 320, 319, 316, 315, 314,
754 311, 310, 309, 308, 307, 304, 303, 302, 301, 298,
755 297, 296, 295, 294, 293, 292, 291, 290, 289, 288,
756 281, 266, 266, 188, 265, 264, 263, 262, 179, 261,
757 259, 257, 254, 253, 178, 178, 178, 250, 178, 247,
758 178, 178, 178, 178, 245, 244, 243, 242, 178, 233,
759 178, 217, 214, 213, 212, 211, 210, 205, 199, 198,
760 196, 188, 178, 186, 185, 184, 183, 178, 614, 29,
761 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
762
763 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
764 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
765 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
766 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
767 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
768 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
769 614
770 } ;
771
772static yyconst flex_int16_t yy_chk[1262] =
773 { 0,
774 0, 1, 1, 1, 2, 2, 2, 4, 2, 0,
775 4, 6, 1, 0, 6, 2, 3, 3, 3, 3,
776 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
777 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
778 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
779 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
780 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
781 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
782 3, 3, 3, 3, 3, 3, 3, 5, 5, 5,
783 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
784
785 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
786 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
787 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
788 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
789 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
790 5, 5, 5, 5, 5, 5, 5, 5, 7, 7,
791 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
792 7, 7, 7, 7, 7, 7, 7, 7, 10, 26,
793 607, 10, 26, 31, 31, 17, 17, 17, 17, 21,
794 21, 21, 33, 7, 62, 33, 17, 37, 37, 62,
795
796 21, 7, 7, 7, 603, 23, 23, 23, 13, 13,
797 13, 38, 48, 48, 13, 13, 23, 13, 7, 13,
798 7, 34, 34, 39, 13, 34, 39, 7, 7, 8,
799 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,
800 8, 8, 8, 8, 8, 8, 8, 8, 8, 50,
801 13, 38, 13, 17, 17, 22, 22, 22, 602, 22,
802 52, 45, 45, 52, 8, 45, 22, 24, 24, 24,
803 601, 24, 8, 8, 8, 58, 210, 58, 24, 27,
804 27, 27, 27, 210, 61, 27, 27, 50, 27, 8,
805 27, 8, 51, 61, 51, 51, 51, 598, 8, 8,
806
807 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
808 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
809 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
810 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
811 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
812 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
813 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,
814 9, 11, 11, 11, 59, 564, 59, 11, 11, 59,
815 11, 597, 11, 15, 15, 15, 596, 11, 68, 15,
816 15, 68, 15, 53, 15, 53, 53, 53, 78, 15,
817
818 18, 18, 18, 18, 18, 70, 70, 70, 72, 77,
819 77, 18, 72, 11, 70, 11, 564, 28, 28, 28,
820 28, 28, 593, 28, 28, 15, 28, 15, 28, 71,
821 73, 90, 71, 166, 73, 74, 74, 225, 78, 74,
822 11, 12, 12, 12, 225, 12, 71, 12, 12, 166,
823 12, 79, 12, 82, 79, 592, 82, 12, 83, 83,
824 86, 86, 89, 89, 86, 102, 102, 91, 18, 18,
825 91, 90, 99, 99, 106, 591, 99, 106, 111, 111,
826 114, 114, 111, 12, 118, 12, 285, 118, 122, 122,
827 125, 125, 122, 129, 133, 133, 129, 254, 133, 136,
828
829 136, 138, 141, 141, 138, 285, 141, 144, 144, 179,
830 12, 14, 14, 14, 254, 14, 148, 14, 14, 148,
831 14, 229, 14, 153, 149, 149, 153, 14, 149, 152,
832 152, 154, 154, 157, 157, 154, 158, 159, 159, 158,
833 221, 159, 172, 172, 175, 175, 188, 188, 175, 179,
834 193, 193, 193, 14, 221, 14, 16, 16, 16, 238,
835 16, 229, 16, 16, 325, 16, 590, 16, 194, 194,
836 194, 195, 16, 195, 195, 195, 198, 215, 198, 228,
837 228, 215, 233, 325, 233, 234, 389, 198, 198, 234,
838 389, 198, 587, 233, 233, 247, 247, 233, 16, 238,
839
840 16, 19, 19, 19, 19, 248, 248, 19, 19, 250,
841 250, 586, 19, 251, 251, 259, 259, 251, 19, 19,
842 270, 584, 271, 282, 282, 282, 352, 270, 270, 271,
843 271, 583, 582, 352, 352, 581, 579, 574, 572, 571,
844 570, 569, 567, 19, 565, 19, 20, 20, 20, 20,
845 20, 563, 20, 20, 562, 561, 560, 20, 559, 557,
846 555, 554, 553, 20, 20, 551, 550, 548, 546, 544,
847 543, 541, 540, 538, 537, 536, 535, 533, 532, 531,
848 530, 528, 527, 526, 525, 524, 522, 521, 20, 519,
849 20, 25, 25, 25, 25, 25, 25, 25, 25, 25,
850
851 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
852 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
853 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
854 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
855 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
856 25, 25, 25, 25, 25, 25, 25, 25, 25, 25,
857 25, 25, 191, 518, 191, 517, 516, 515, 514, 513,
858 512, 191, 191, 511, 510, 506, 505, 503, 502, 501,
859 500, 499, 494, 492, 491, 490, 489, 488, 487, 486,
860 485, 483, 482, 480, 478, 477, 474, 473, 472, 471,
861
862 470, 469, 191, 468, 467, 191, 191, 466, 465, 464,
863 191, 463, 461, 459, 457, 456, 191, 455, 453, 191,
864 452, 191, 450, 191, 449, 191, 615, 615, 615, 615,
865 615, 615, 616, 616, 616, 616, 616, 616, 617, 617,
866 617, 617, 617, 617, 618, 618, 618, 618, 618, 618,
867 619, 619, 619, 619, 619, 619, 620, 620, 620, 620,
868 620, 620, 621, 621, 621, 621, 621, 621, 622, 622,
869 622, 622, 622, 622, 623, 623, 623, 623, 623, 623,
870 624, 448, 624, 624, 624, 624, 625, 447, 625, 625,
871 625, 625, 626, 626, 627, 446, 445, 627, 627, 627,
872
873 628, 444, 628, 628, 628, 628, 629, 629, 630, 443,
874 630, 630, 630, 630, 631, 631, 632, 442, 632, 632,
875 632, 632, 633, 633, 634, 440, 439, 634, 634, 634,
876 635, 436, 435, 635, 635, 635, 636, 636, 637, 434,
877 433, 637, 637, 637, 638, 432, 638, 638, 638, 638,
878 639, 431, 639, 639, 639, 639, 640, 640, 641, 430,
879 641, 641, 641, 641, 426, 425, 423, 422, 421, 420,
880 419, 417, 416, 415, 414, 413, 412, 411, 410, 409,
881 408, 407, 406, 405, 404, 403, 402, 401, 399, 398,
882 397, 396, 395, 394, 393, 392, 391, 390, 388, 387,
883
884 386, 385, 384, 383, 382, 381, 379, 378, 377, 376,
885 374, 373, 372, 369, 368, 367, 366, 365, 364, 363,
886 362, 347, 346, 345, 344, 343, 342, 341, 340, 339,
887 338, 337, 336, 335, 334, 333, 332, 331, 330, 329,
888 328, 327, 326, 324, 323, 322, 321, 320, 319, 318,
889 317, 316, 315, 314, 313, 312, 311, 310, 309, 308,
890 307, 306, 305, 304, 303, 302, 301, 299, 298, 297,
891 296, 295, 294, 293, 292, 291, 290, 288, 287, 286,
892 284, 283, 280, 279, 278, 277, 276, 275, 274, 273,
893 272, 269, 268, 267, 265, 264, 263, 262, 261, 258,
894
895 257, 256, 255, 253, 249, 246, 245, 244, 243, 242,
896 240, 237, 236, 235, 231, 227, 226, 224, 223, 222,
897 220, 219, 218, 217, 216, 214, 213, 212, 211, 209,
898 208, 207, 206, 205, 204, 203, 202, 201, 200, 199,
899 192, 190, 189, 187, 186, 185, 184, 183, 181, 178,
900 168, 167, 165, 164, 160, 155, 150, 145, 142, 137,
901 134, 123, 112, 100, 96, 95, 94, 93, 87, 81,
902 75, 69, 67, 66, 65, 64, 63, 60, 57, 56,
903 54, 49, 46, 44, 43, 42, 41, 35, 29, 614,
904 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
905
906 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
907 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
908 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
909 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
910 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
911 614, 614, 614, 614, 614, 614, 614, 614, 614, 614,
912 614
913 } ;
914
915static yy_state_type yy_last_accepting_state;
916static char *yy_last_accepting_cpos;
917
918extern int yy_flex_debug;
919int yy_flex_debug = 0;
920
921/* The intent behind this definition is that it'll catch
922 * any uses of REJECT which flex missed.
923 */
924#define REJECT reject_used_but_not_detected
925#define yymore() yymore_used_but_not_detected
926#define YY_MORE_ADJ 0
927#define YY_RESTORE_YY_MORE_OFFSET
928char *yytext;
929#line 1 "moc.l"
930/****************************************************************************
931** $Id: moc_lex.cpp 2 2005-11-16 15:49:26Z dmik $
932**
933** Lexical analyzer for meta object compiler
934**
935** Created : 930417
936**
937** Copyright (C) 1992-2001 Trolltech AS. All rights reserved.
938**
939** This file is part of the Qt GUI Toolkit.
940**
941** This file may be distributed under the terms of the Q Public License
942** as defined by Trolltech AS of Norway and appearing in the file
943** LICENSE.QPL included in the packaging of this file.
944**
945** This file may be distributed and/or modified under the terms of the
946** GNU General Public License version 2 as published by the Free Software
947** Foundation and appearing in the file LICENSE.GPL included in the
948** packaging of this file.
949**
950** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
951** licenses may use this file in accordance with the Qt Commercial License
952** Agreement provided with the Software.
953**
954** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
955** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
956**
957** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
958** information about Qt Commercial License Agreements.
959** See http://www.trolltech.com/qpl/ for QPL licensing information.
960** See http://www.trolltech.com/gpl/ for GPL licensing information.
961**
962** Contact info@trolltech.com if any conditions of this licensing are
963** not clear to you.
964**
965*****************************************************************************/
966#line 39 "moc.l"
967#ifdef MOC_YACC_CODE
968
969#ifdef MOC_MWERKS_PLUGIN
970#ifdef Q_OS_MAC9
971# define isascii(c) ((int)( (unsigned int) (c) <= (unsigned char)0x7F ))
972#endif
973const char *buf_buffer = NULL;
974long buf_size_total = 0, buf_index = 0;
975#define YY_INPUT(buf, result, max_size) \
976 { \
977 if(buf_index < buf_size_total ) { \
978 while(!isascii(buf_buffer[buf_index])) buf_index++; \
979 int ms = ((max_size < buf_size_total) ? max_size : buf_size_total); \
980 for(result = 0; result < ms; result++) { \
981 char c = buf_buffer[buf_index + result]; \
982 if(!isascii(c)) { \
983 buf_index++; \
984 break; \
985 } \
986 buf[result] = c == '\r' ? '\n' : c; \
987 } \
988 buf_index += result; \
989 } else result = YY_NULL; \
990 }
991#endif
992
993#include "qstring.h"
994
995
996#define input yyinput // yyinput in C++
997
998#define X if(lexDebug){fprintf(stderr,"LEX (%i) : %s\n",lineNo,yytext);};
999#define Y if(lexDebug){fprintf(stderr,"LEX (%i) : %s\n",lineNo,yytext);};
1000/*
1001#define Y if(lexDebug){fprintf(stderr,"LEX (%i) : %s updates level to %i\n"\
1002 ,lineNo,yytext,templLevel);};
1003*/
1004#define Z if(lexDebug){fprintf(stderr,"LEX (%i) : skipped the string %s\"\n"\
1005 ,lineNo,yytext);};
1006#define BEGIN_INSIDE
1007
1008
1009#define linput() \
1010 ( (c = input()) == '\n' ? (lineNo++, c) : (c == EOF) ? 0 : c )
1011
1012#include <string.h>
1013#include <stdlib.h>
1014
1015int classPLevel = 1; /* Depth of nested curly braces in IN_CLASS */
1016int namespacePLevel = 1; /* Depth of nested curly braces in IN_NAMESPACE */
1017int expLevel = 1; /* Depth of nested parentheses in IN_EXPR */
1018int enumLevel = 1; /* Depth of nested parentheses in IN_ENUM */
1019int fctLevel = 1; /* Depth of nested parentheses in IN_FCT */
1020int templLevel = 1; /* Depth of levels in IN_TEMPL_ARGS */
1021
1022int lastState = 0; /* Remembers the state when a
1023 MOC_SKIP_BEGIN is encountered */
1024int skipLevel = 0; /* Depth of MOC_SKIP_BEGINs */
1025
1026class QString;
1027
1028extern void addExpressionChar( const char );
1029extern void addExpressionString( const char * );
1030extern void moc_warn( const char *msg );
1031
1032#line 1033 "lex.yy.c"
1033
1034#define INITIAL 0
1035#define OUTSIDE 1
1036#define QT_DEF 2
1037#define IN_CLASS 3
1038#define IN_NAMESPACE 4
1039#define IN_ENUM 5
1040#define IN_EXPR 6
1041#define IN_DEF_ARG 7
1042#define IN_FCT 8
1043#define IN_TEMPL_ARGS 9
1044#define GIMME_SEMICOLON 10
1045#define SKIP 11
1046#define IN_PROPERTY 12
1047#define IN_CLASSINFO 13
1048
1049#ifndef YY_NO_UNISTD_H
1050/* Special case for "unistd.h", since it is non-ANSI. We include it way
1051 * down here because we want the user's section 1 to have been scanned first.
1052 * The user has a chance to override it with an option.
1053 */
1054#include <unistd.h>
1055#endif
1056
1057#ifndef YY_EXTRA_TYPE
1058#define YY_EXTRA_TYPE void *
1059#endif
1060
1061/* Macros after this point can all be overridden by user definitions in
1062 * section 1.
1063 */
1064
1065#ifndef YY_SKIP_YYWRAP
1066#ifdef __cplusplus
1067extern "C" int yywrap (void );
1068#else
1069extern int yywrap (void );
1070#endif
1071#endif
1072
1073 static void yyunput (int c,char *buf_ptr );
1074
1075#ifndef yytext_ptr
1076static void yy_flex_strncpy (char *,yyconst char *,int );
1077#endif
1078
1079#ifdef YY_NEED_STRLEN
1080static int yy_flex_strlen (yyconst char * );
1081#endif
1082
1083#ifndef YY_NO_INPUT
1084
1085#ifdef __cplusplus
1086static int yyinput (void );
1087#else
1088static int input (void );
1089#endif
1090
1091#endif
1092
1093/* Amount of stuff to slurp up with each read. */
1094#ifndef YY_READ_BUF_SIZE
1095#define YY_READ_BUF_SIZE 8192
1096#endif
1097
1098/* Copy whatever the last rule matched to the standard output. */
1099#ifndef ECHO
1100/* This used to be an fputs(), but since the string might contain NUL's,
1101 * we now use fwrite().
1102 */
1103#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
1104#endif
1105
1106/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1107 * is returned in "result".
1108 */
1109#ifndef YY_INPUT
1110#define YY_INPUT(buf,result,max_size) \
1111 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1112 { \
1113 int c = '*'; \
1114 size_t n; \
1115 for ( n = 0; n < max_size && \
1116 (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
1117 buf[n] = (char) c; \
1118 if ( c == '\n' ) \
1119 buf[n++] = (char) c; \
1120 if ( c == EOF && ferror( yyin ) ) \
1121 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1122 result = n; \
1123 } \
1124 else \
1125 { \
1126 errno=0; \
1127 while ( (result = fread(buf, 1, max_size, yyin))==0 && ferror(yyin)) \
1128 { \
1129 if( errno != EINTR) \
1130 { \
1131 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1132 break; \
1133 } \
1134 errno=0; \
1135 clearerr(yyin); \
1136 } \
1137 }\
1138\
1139
1140#endif
1141
1142/* No semi-colon after return; correct usage is to write "yyterminate();" -
1143 * we don't want an extra ';' after the "return" because that will cause
1144 * some compilers to complain about unreachable statements.
1145 */
1146#ifndef yyterminate
1147#define yyterminate() return YY_NULL
1148#endif
1149
1150/* Number of entries by which start-condition stack grows. */
1151#ifndef YY_START_STACK_INCR
1152#define YY_START_STACK_INCR 25
1153#endif
1154
1155/* Report a fatal error. */
1156#ifndef YY_FATAL_ERROR
1157#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1158#endif
1159
1160/* end tables serialization structures and prototypes */
1161
1162/* Default declaration of generated scanner - a define so the user can
1163 * easily add parameters.
1164 */
1165#ifndef YY_DECL
1166#define YY_DECL_IS_OURS 1
1167
1168extern int yylex (void);
1169
1170#define YY_DECL int yylex (void)
1171#endif /* !YY_DECL */
1172
1173/* Code executed at the beginning of each rule, after yytext and yyleng
1174 * have been set up.
1175 */
1176#ifndef YY_USER_ACTION
1177#define YY_USER_ACTION
1178#endif
1179
1180/* Code executed at the end of each rule. */
1181#ifndef YY_BREAK
1182#define YY_BREAK break;
1183#endif
1184
1185#define YY_RULE_SETUP \
1186 if ( yyleng > 0 ) \
1187 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1188 (yytext[yyleng - 1] == '\n'); \
1189 YY_USER_ACTION
1190
1191/** The main scanner function which does all the work.
1192 */
1193YY_DECL
1194{
1195 register yy_state_type yy_current_state;
1196 register char *yy_cp, *yy_bp;
1197 register int yy_act;
1198
1199#line 110 "moc.l"
1200
1201
1202#line 1203 "lex.yy.c"
1203
1204 if ( (yy_init) )
1205 {
1206 (yy_init) = 0;
1207
1208#ifdef YY_USER_INIT
1209 YY_USER_INIT;
1210#endif
1211
1212 if ( ! (yy_start) )
1213 (yy_start) = 1; /* first start state */
1214
1215 if ( ! yyin )
1216 yyin = stdin;
1217
1218 if ( ! yyout )
1219 yyout = stdout;
1220
1221 if ( ! YY_CURRENT_BUFFER ) {
1222 yyensure_buffer_stack ();
1223 YY_CURRENT_BUFFER_LVALUE =
1224 yy_create_buffer(yyin,YY_BUF_SIZE );
1225 }
1226
1227 yy_load_buffer_state( );
1228 }
1229
1230 while ( 1 ) /* loops until end-of-file is reached */
1231 {
1232 yy_cp = (yy_c_buf_p);
1233
1234 /* Support of yytext. */
1235 *yy_cp = (yy_hold_char);
1236
1237 /* yy_bp points to the position in yy_ch_buf of the start of
1238 * the current run.
1239 */
1240 yy_bp = yy_cp;
1241
1242 yy_current_state = (yy_start);
1243 yy_current_state += YY_AT_BOL();
1244yy_match:
1245 do
1246 {
1247 register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
1248 if ( yy_accept[yy_current_state] )
1249 {
1250 (yy_last_accepting_state) = yy_current_state;
1251 (yy_last_accepting_cpos) = yy_cp;
1252 }
1253 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
1254 {
1255 yy_current_state = (int) yy_def[yy_current_state];
1256 if ( yy_current_state >= 615 )
1257 yy_c = yy_meta[(unsigned int) yy_c];
1258 }
1259 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
1260 ++yy_cp;
1261 }
1262 while ( yy_base[yy_current_state] != 1190 );
1263
1264yy_find_action:
1265 yy_act = yy_accept[yy_current_state];
1266 if ( yy_act == 0 )
1267 { /* have to back up */
1268 yy_cp = (yy_last_accepting_cpos);
1269 yy_current_state = (yy_last_accepting_state);
1270 yy_act = yy_accept[yy_current_state];
1271 }
1272
1273 YY_DO_BEFORE_ACTION;
1274
1275do_action: /* This label is used only to access EOF actions. */
1276
1277 switch ( yy_act )
1278 { /* beginning of action switch */
1279 case 0: /* must back up */
1280 /* undo the effects of YY_DO_BEFORE_ACTION */
1281 *yy_cp = (yy_hold_char);
1282 yy_cp = (yy_last_accepting_cpos);
1283 yy_current_state = (yy_last_accepting_state);
1284 goto yy_find_action;
1285
1286case 1:
1287YY_RULE_SETUP
1288#line 112 "moc.l"
1289{ X;
1290 BEGIN QT_DEF;
1291 return CLASS; }
1292 YY_BREAK
1293case 2:
1294YY_RULE_SETUP
1295#line 115 "moc.l"
1296{ X;
1297 BEGIN QT_DEF;
1298 return NAMESPACE; }
1299 YY_BREAK
1300case 3:
1301YY_RULE_SETUP
1302#line 118 "moc.l"
1303{ X;
1304 BEGIN QT_DEF;
1305 return USING; }
1306 YY_BREAK
1307case 4:
1308YY_RULE_SETUP
1309#line 121 "moc.l"
1310{ X;
1311 BEGIN QT_DEF;
1312 return TEMPLATE; }
1313 YY_BREAK
1314case 5:
1315YY_RULE_SETUP
1316#line 124 "moc.l"
1317{ X; return Q_OBJECT; }
1318 YY_BREAK
1319case 6:
1320YY_RULE_SETUP
1321#line 125 "moc.l"
1322{ X; return SIGNALS; }
1323 YY_BREAK
1324case 7:
1325YY_RULE_SETUP
1326#line 126 "moc.l"
1327{ X; return SLOTS; }
1328 YY_BREAK
1329case 8:
1330YY_RULE_SETUP
1331#line 127 "moc.l"
1332{ X; return Q_CLASSINFO; }
1333 YY_BREAK
1334case 9:
1335YY_RULE_SETUP
1336#line 128 "moc.l"
1337{ X; return Q_PROPERTY; }
1338 YY_BREAK
1339case 10:
1340YY_RULE_SETUP
1341#line 129 "moc.l"
1342{ X; return Q_OVERRIDE; }
1343 YY_BREAK
1344case 11:
1345YY_RULE_SETUP
1346#line 130 "moc.l"
1347{ X; return Q_ENUMS; }
1348 YY_BREAK
1349case 12:
1350YY_RULE_SETUP
1351#line 131 "moc.l"
1352{ X; return Q_SETS; }
1353 YY_BREAK
1354case 13:
1355YY_RULE_SETUP
1356#line 133 "moc.l"
1357{ fctLevel++;Y; }
1358 YY_BREAK
1359case 14:
1360YY_RULE_SETUP
1361#line 134 "moc.l"
1362{ fctLevel--;Y;if (fctLevel==0){X;return '}';}}
1363 YY_BREAK
1364case 15:
1365YY_RULE_SETUP
1366#line 135 "moc.l"
1367{ classPLevel++;Y; }
1368 YY_BREAK
1369case 16:
1370YY_RULE_SETUP
1371#line 136 "moc.l"
1372{ classPLevel--;Y;if (classPLevel == 0)
1373 {X;return '}';} }
1374 YY_BREAK
1375case 17:
1376YY_RULE_SETUP
1377#line 138 "moc.l"
1378{ X;if( classPLevel == 1 ) return PUBLIC; }
1379 YY_BREAK
1380case 18:
1381YY_RULE_SETUP
1382#line 139 "moc.l"
1383{ X;if( classPLevel == 1 ) return PROTECTED; }
1384 YY_BREAK
1385case 19:
1386YY_RULE_SETUP
1387#line 140 "moc.l"
1388{ X;if( classPLevel == 1 ) return PRIVATE; }
1389 YY_BREAK
1390case 20:
1391YY_RULE_SETUP
1392#line 141 "moc.l"
1393{ X;if( classPLevel == 1 ) return SIGNALS; }
1394 YY_BREAK
1395case 21:
1396YY_RULE_SETUP
1397#line 142 "moc.l"
1398{ X;if( classPLevel == 1 ) return SLOTS; }
1399 YY_BREAK
1400case 22:
1401YY_RULE_SETUP
1402#line 143 "moc.l"
1403{ X;if( classPLevel == 1 ) return Q_CLASSINFO; }
1404 YY_BREAK
1405case 23:
1406YY_RULE_SETUP
1407#line 144 "moc.l"
1408{ X;
1409 if ( classPLevel == 1 )
1410 return Q_OBJECT;
1411 else if ( classPLevel > 1 )
1412 moc_warn( "Cannot use Q_OBJECT in nested class." );
1413 }
1414 YY_BREAK
1415case 24:
1416YY_RULE_SETUP
1417#line 150 "moc.l"
1418{ X;if( classPLevel == 1 ) return Q_PROPERTY; }
1419 YY_BREAK
1420case 25:
1421YY_RULE_SETUP
1422#line 151 "moc.l"
1423{ X;if( classPLevel == 1 ) return Q_OVERRIDE; }
1424 YY_BREAK
1425case 26:
1426YY_RULE_SETUP
1427#line 152 "moc.l"
1428{ X;if( classPLevel == 1 ) return Q_ENUMS; }
1429 YY_BREAK
1430case 27:
1431YY_RULE_SETUP
1432#line 153 "moc.l"
1433{ X;if( classPLevel == 1 ) return Q_SETS; }
1434 YY_BREAK
1435case 28:
1436YY_RULE_SETUP
1437#line 155 "moc.l"
1438{ namespacePLevel++;Y; }
1439 YY_BREAK
1440case 29:
1441YY_RULE_SETUP
1442#line 156 "moc.l"
1443{ namespacePLevel--;Y;if (namespacePLevel == 0)
1444 {X;return '}';}}
1445 YY_BREAK
1446case 30:
1447YY_RULE_SETUP
1448#line 158 "moc.l"
1449{ X;
1450 BEGIN QT_DEF;
1451 return CLASS; }
1452 YY_BREAK
1453case 31:
1454YY_RULE_SETUP
1455#line 161 "moc.l"
1456{ X;
1457 BEGIN QT_DEF;
1458 return TEMPLATE; }
1459 YY_BREAK
1460case 32:
1461YY_RULE_SETUP
1462#line 164 "moc.l"
1463{ X;
1464 BEGIN QT_DEF;
1465 return NAMESPACE; }
1466 YY_BREAK
1467case 33:
1468YY_RULE_SETUP
1469#line 167 "moc.l"
1470{ X;
1471 BEGIN QT_DEF;
1472 return USING; }
1473 YY_BREAK
1474case 34:
1475YY_RULE_SETUP
1476#line 171 "moc.l"
1477{ X; return '('; }
1478 YY_BREAK
1479case 35:
1480YY_RULE_SETUP
1481#line 172 "moc.l"
1482{ X; return ')'; }
1483 YY_BREAK
1484case 36:
1485YY_RULE_SETUP
1486#line 173 "moc.l"
1487{ X; return READ; }
1488 YY_BREAK
1489case 37:
1490YY_RULE_SETUP
1491#line 174 "moc.l"
1492{ X; return WRITE; }
1493 YY_BREAK
1494case 38:
1495YY_RULE_SETUP
1496#line 175 "moc.l"
1497{ X; return STORED; }
1498 YY_BREAK
1499case 39:
1500YY_RULE_SETUP
1501#line 176 "moc.l"
1502{ X; return RESET; }
1503 YY_BREAK
1504case 40:
1505YY_RULE_SETUP
1506#line 177 "moc.l"
1507{ X; return DESIGNABLE; }
1508 YY_BREAK
1509case 41:
1510YY_RULE_SETUP
1511#line 178 "moc.l"
1512{ X; return SCRIPTABLE; }
1513 YY_BREAK
1514case 42:
1515YY_RULE_SETUP
1516#line 181 "moc.l"
1517{ expLevel++;X; }
1518 YY_BREAK
1519case 43:
1520YY_RULE_SETUP
1521#line 182 "moc.l"
1522{ expLevel--;Y;if (expLevel == 0)
1523 { X; BEGIN QT_DEF; return ')';} }
1524 YY_BREAK
1525case 44:
1526YY_RULE_SETUP
1527#line 184 "moc.l"
1528{ expLevel++;X; }
1529 YY_BREAK
1530case 45:
1531YY_RULE_SETUP
1532#line 185 "moc.l"
1533{ expLevel--;X;if (expLevel == 0)
1534 { X; BEGIN QT_DEF; return ']';} }
1535 YY_BREAK
1536case 46:
1537YY_RULE_SETUP
1538#line 187 "moc.l"
1539{ if (expLevel == 0)
1540 { X; BEGIN QT_DEF; return ',' ;} }
1541 YY_BREAK
1542case 47:
1543YY_RULE_SETUP
1544#line 189 "moc.l"
1545{ if (expLevel == 0)
1546 { X; BEGIN QT_DEF; return ';' ;} }
1547 YY_BREAK
1548case 48:
1549YY_RULE_SETUP
1550#line 191 "moc.l"
1551{ expLevel++;X; }
1552 YY_BREAK
1553case 49:
1554YY_RULE_SETUP
1555#line 192 "moc.l"
1556{ expLevel--;Y;if (expLevel == 0)
1557 { X; BEGIN QT_DEF; return ')';} }
1558 YY_BREAK
1559case 50:
1560YY_RULE_SETUP
1561#line 194 "moc.l"
1562{ expLevel++;X; }
1563 YY_BREAK
1564case 51:
1565YY_RULE_SETUP
1566#line 195 "moc.l"
1567{ expLevel--;X;if (expLevel == 0)
1568 { X; BEGIN QT_DEF; return ']';} }
1569 YY_BREAK
1570case 52:
1571YY_RULE_SETUP
1572#line 197 "moc.l"
1573{ if (expLevel <= 1)
1574 { X; BEGIN QT_DEF; return ',' ;} }
1575 YY_BREAK
1576case 53:
1577YY_RULE_SETUP
1578#line 199 "moc.l"
1579{ if (expLevel == 0)
1580 { X; BEGIN QT_DEF; return ';' ;} }
1581 YY_BREAK
1582case 54:
1583YY_RULE_SETUP
1584#line 201 "moc.l"
1585{ enumLevel++;X; }
1586 YY_BREAK
1587case 55:
1588YY_RULE_SETUP
1589#line 202 "moc.l"
1590{ enumLevel--;X; }
1591 YY_BREAK
1592case 56:
1593YY_RULE_SETUP
1594#line 203 "moc.l"
1595{ enumLevel++;X; }
1596 YY_BREAK
1597case 57:
1598YY_RULE_SETUP
1599#line 204 "moc.l"
1600{ enumLevel--;X }
1601 YY_BREAK
1602case 58:
1603YY_RULE_SETUP
1604#line 205 "moc.l"
1605{ if (enumLevel == 0)
1606 { X; BEGIN QT_DEF; return ',' ;} }
1607 YY_BREAK
1608case 59:
1609YY_RULE_SETUP
1610#line 207 "moc.l"
1611{ if (enumLevel == 0)
1612 { X; BEGIN QT_DEF; return ';' ;} }
1613 YY_BREAK
1614case 60:
1615YY_RULE_SETUP
1616#line 209 "moc.l"
1617{ if (enumLevel == 0)
1618 { X; BEGIN QT_DEF; return '}' ;} }
1619 YY_BREAK
1620case 61:
1621YY_RULE_SETUP
1622#line 211 "moc.l"
1623{ templLevel++;
1624 Y;
1625 addExpressionChar( yytext[0] );
1626 }
1627 YY_BREAK
1628case 62:
1629YY_RULE_SETUP
1630#line 215 "moc.l"
1631{ templLevel--;
1632 Y;
1633 if ( templLevel == 0 ) {
1634 X;
1635 BEGIN QT_DEF;
1636 return yytext[0];
1637 } else {
1638 addExpressionChar( yytext[0] );
1639 }
1640 }
1641 YY_BREAK
1642case 63:
1643YY_RULE_SETUP
1644#line 225 "moc.l"
1645{ X;return FRIEND; }
1646 YY_BREAK
1647case 64:
1648YY_RULE_SETUP
1649#line 226 "moc.l"
1650{ X;return TYPEDEF; }
1651 YY_BREAK
1652case 65:
1653YY_RULE_SETUP
1654#line 227 "moc.l"
1655{ X;return AUTO; }
1656 YY_BREAK
1657case 66:
1658YY_RULE_SETUP
1659#line 228 "moc.l"
1660{ X;return REGISTER; }
1661 YY_BREAK
1662case 67:
1663YY_RULE_SETUP
1664#line 229 "moc.l"
1665{ X;return STATIC; }
1666 YY_BREAK
1667case 68:
1668YY_RULE_SETUP
1669#line 230 "moc.l"
1670{ X;return EXTERN; }
1671 YY_BREAK
1672case 69:
1673YY_RULE_SETUP
1674#line 231 "moc.l"
1675{ X;return INLINE; }
1676 YY_BREAK
1677case 70:
1678YY_RULE_SETUP
1679#line 232 "moc.l"
1680{ X;return INLINE; }
1681 YY_BREAK
1682case 71:
1683YY_RULE_SETUP
1684#line 233 "moc.l"
1685{ X;return VIRTUAL; }
1686 YY_BREAK
1687case 72:
1688YY_RULE_SETUP
1689#line 234 "moc.l"
1690{ X;return CONST; }
1691 YY_BREAK
1692case 73:
1693YY_RULE_SETUP
1694#line 235 "moc.l"
1695{ X;return VOLATILE; }
1696 YY_BREAK
1697case 74:
1698YY_RULE_SETUP
1699#line 236 "moc.l"
1700{ X;return CHAR; }
1701 YY_BREAK
1702case 75:
1703YY_RULE_SETUP
1704#line 237 "moc.l"
1705{ X;return SHORT; }
1706 YY_BREAK
1707case 76:
1708YY_RULE_SETUP
1709#line 238 "moc.l"
1710{ X;return INT; }
1711 YY_BREAK
1712case 77:
1713YY_RULE_SETUP
1714#line 239 "moc.l"
1715{ X;return LONG; }
1716 YY_BREAK
1717case 78:
1718YY_RULE_SETUP
1719#line 240 "moc.l"
1720{ X;return SIGNED; }
1721 YY_BREAK
1722case 79:
1723YY_RULE_SETUP
1724#line 241 "moc.l"
1725{ X;return UNSIGNED; }
1726 YY_BREAK
1727case 80:
1728YY_RULE_SETUP
1729#line 242 "moc.l"
1730{ X;return FLOAT; }
1731 YY_BREAK
1732case 81:
1733YY_RULE_SETUP
1734#line 243 "moc.l"
1735{ X;return DOUBLE; }
1736 YY_BREAK
1737case 82:
1738YY_RULE_SETUP
1739#line 244 "moc.l"
1740{ X;return VOID; }
1741 YY_BREAK
1742case 83:
1743YY_RULE_SETUP
1744#line 245 "moc.l"
1745{ X;return ENUM; }
1746 YY_BREAK
1747case 84:
1748YY_RULE_SETUP
1749#line 246 "moc.l"
1750{ X;return CLASS; }
1751 YY_BREAK
1752case 85:
1753YY_RULE_SETUP
1754#line 247 "moc.l"
1755{ X;return STRUCT; }
1756 YY_BREAK
1757case 86:
1758YY_RULE_SETUP
1759#line 248 "moc.l"
1760{ X;return UNION; }
1761 YY_BREAK
1762case 87:
1763YY_RULE_SETUP
1764#line 249 "moc.l"
1765{ X;return ASM; }
1766 YY_BREAK
1767case 88:
1768YY_RULE_SETUP
1769#line 250 "moc.l"
1770{ X;return PRIVATE; }
1771 YY_BREAK
1772case 89:
1773YY_RULE_SETUP
1774#line 251 "moc.l"
1775{ X;return PROTECTED; }
1776 YY_BREAK
1777case 90:
1778YY_RULE_SETUP
1779#line 252 "moc.l"
1780{ X;return PUBLIC; }
1781 YY_BREAK
1782case 91:
1783YY_RULE_SETUP
1784#line 253 "moc.l"
1785{ X;return OPERATOR; }
1786 YY_BREAK
1787case 92:
1788YY_RULE_SETUP
1789#line 254 "moc.l"
1790{ X;return DBL_COLON; }
1791 YY_BREAK
1792case 93:
1793YY_RULE_SETUP
1794#line 255 "moc.l"
1795{ X;return TRIPLE_DOT; }
1796 YY_BREAK
1797case 94:
1798YY_RULE_SETUP
1799#line 256 "moc.l"
1800{ X;return TEMPLATE; }
1801 YY_BREAK
1802case 95:
1803YY_RULE_SETUP
1804#line 257 "moc.l"
1805{ X;return MUTABLE; }
1806 YY_BREAK
1807case 96:
1808YY_RULE_SETUP
1809#line 258 "moc.l"
1810{ X;return THROW; }
1811 YY_BREAK
1812case 97:
1813YY_RULE_SETUP
1814#line 259 "moc.l"
1815{ X;return USING; }
1816 YY_BREAK
1817case 98:
1818YY_RULE_SETUP
1819#line 260 "moc.l"
1820{ X;return NAMESPACE; }
1821 YY_BREAK
1822case 99:
1823YY_RULE_SETUP
1824#line 262 "moc.l"
1825{
1826 X;
1827 yylval.string = qstrdup(yytext);
1828 return IDENTIFIER;
1829 }
1830 YY_BREAK
1831case 100:
1832YY_RULE_SETUP
1833#line 268 "moc.l"
1834{
1835 X;
1836 yylval.string = qstrdup(yytext);
1837 return IDENTIFIER;
1838 }
1839 YY_BREAK
1840case 101:
1841YY_RULE_SETUP
1842#line 274 "moc.l"
1843{ X; return '('; }
1844 YY_BREAK
1845case 102:
1846YY_RULE_SETUP
1847#line 275 "moc.l"
1848{ X; return ')'; }
1849 YY_BREAK
1850case 103:
1851YY_RULE_SETUP
1852#line 276 "moc.l"
1853{ X; return ','; }
1854 YY_BREAK
1855case 104:
1856/* rule 104 can match eol */
1857YY_RULE_SETUP
1858#line 278 "moc.l"
1859{
1860 X;
1861 yylval.string = qstrdup( yytext + 1 );
1862 input(); /* discard the '"' */
1863 return STRING;
1864 }
1865 YY_BREAK
1866case 105:
1867YY_RULE_SETUP
1868#line 285 "moc.l"
1869;
1870 YY_BREAK
1871case 106:
1872YY_RULE_SETUP
1873#line 286 "moc.l"
1874;
1875 YY_BREAK
1876case 107:
1877YY_RULE_SETUP
1878#line 287 "moc.l"
1879;
1880 YY_BREAK
1881case 108:
1882/* rule 108 can match eol */
1883YY_RULE_SETUP
1884#line 289 "moc.l"
1885{ /* discard strings */
1886 Z;
1887 }
1888 YY_BREAK
1889case 109:
1890/* rule 109 can match eol */
1891YY_RULE_SETUP
1892#line 293 "moc.l"
1893{ /* discard strings */
1894 Z;
1895 }
1896 YY_BREAK
1897case 110:
1898/* rule 110 can match eol */
1899YY_RULE_SETUP
1900#line 297 "moc.l"
1901{ /* discard strings */
1902 Z;
1903 }
1904 YY_BREAK
1905case 111:
1906/* rule 111 can match eol */
1907YY_RULE_SETUP
1908#line 301 "moc.l"
1909{ /* discard strings */
1910 Z;
1911 addExpressionString( yytext );
1912 input(); /* discard the '"' */
1913 }
1914 YY_BREAK
1915case 112:
1916/* rule 112 can match eol */
1917YY_RULE_SETUP
1918#line 308 "moc.l"
1919{
1920 X;
1921 addExpressionString( yytext );
1922 input(); /* discard the '"' */
1923 return STRING;
1924 }
1925 YY_BREAK
1926case 113:
1927/* rule 113 can match eol */
1928YY_RULE_SETUP
1929#line 315 "moc.l"
1930{
1931 X;
1932 yylval.string = qstrdup( yytext + 1 );
1933 input(); /* discard the '"' */
1934 return STRING;
1935 }
1936 YY_BREAK
1937case 114:
1938YY_RULE_SETUP
1939#line 322 "moc.l"
1940{ X;
1941 yylval.char_val = yytext[1];
1942 return CHAR_VAL;
1943 }
1944 YY_BREAK
1945case 115:
1946YY_RULE_SETUP
1947#line 327 "moc.l"
1948{ X;
1949 yylval.char_val = '\a';
1950 return CHAR_VAL;
1951 }
1952 YY_BREAK
1953case 116:
1954YY_RULE_SETUP
1955#line 332 "moc.l"
1956{ X;
1957 yylval.char_val = '\b';
1958 return CHAR_VAL;
1959 }
1960 YY_BREAK
1961case 117:
1962YY_RULE_SETUP
1963#line 337 "moc.l"
1964{ X;
1965 yylval.char_val = '\f';
1966 return CHAR_VAL;
1967 }
1968 YY_BREAK
1969case 118:
1970YY_RULE_SETUP
1971#line 342 "moc.l"
1972{ X;
1973 yylval.char_val = '\n';
1974 return CHAR_VAL;
1975 }
1976 YY_BREAK
1977case 119:
1978YY_RULE_SETUP
1979#line 347 "moc.l"
1980{ X;
1981 yylval.char_val = '\r';
1982 return CHAR_VAL;
1983 }
1984 YY_BREAK
1985case 120:
1986YY_RULE_SETUP
1987#line 352 "moc.l"
1988{ X;
1989 yylval.char_val = '\t';
1990 return CHAR_VAL;
1991 }
1992 YY_BREAK
1993case 121:
1994YY_RULE_SETUP
1995#line 357 "moc.l"
1996{ X;
1997 yylval.char_val = '\v';
1998 return CHAR_VAL;
1999 }
2000 YY_BREAK
2001case 122:
2002YY_RULE_SETUP
2003#line 362 "moc.l"
2004{ X;
2005 yylval.char_val = '\\';
2006 return CHAR_VAL;
2007 }
2008 YY_BREAK
2009case 123:
2010YY_RULE_SETUP
2011#line 367 "moc.l"
2012{ X;
2013 yylval.char_val = '\?';
2014 return CHAR_VAL;
2015 }
2016 YY_BREAK
2017case 124:
2018YY_RULE_SETUP
2019#line 372 "moc.l"
2020{ X;
2021 yylval.char_val = '\'';
2022 return CHAR_VAL;
2023 }
2024 YY_BREAK
2025case 125:
2026YY_RULE_SETUP
2027#line 377 "moc.l"
2028{ X;
2029 yylval.char_val = '\"'; /* " */
2030 return CHAR_VAL;
2031 }
2032 YY_BREAK
2033case 126:
2034YY_RULE_SETUP
2035#line 382 "moc.l"
2036{ X;
2037 yylval.char_val = '\0';
2038 return CHAR_VAL;
2039 }
2040 YY_BREAK
2041case 127:
2042YY_RULE_SETUP
2043#line 387 "moc.l"
2044{ X;
2045 yylval.char_val =
2046 (char)strtol( &yytext[1], 0, 8 );
2047 return CHAR_VAL;
2048 }
2049 YY_BREAK
2050case 128:
2051YY_RULE_SETUP
2052#line 393 "moc.l"
2053{ X;
2054 yylval.char_val =
2055 (char)strtol( &yytext[2], 0, 16 );
2056 return CHAR_VAL;
2057 }
2058 YY_BREAK
2059case 129:
2060YY_RULE_SETUP
2061#line 399 "moc.l"
2062{ X;
2063 yylval.char_val = ' ';
2064 return CHAR_VAL;
2065 }
2066 YY_BREAK
2067case 130:
2068YY_RULE_SETUP
2069#line 404 "moc.l"
2070{ X;
2071 yylval.int_val = atoi(yytext);
2072 return INT_VAL;
2073 }
2074 YY_BREAK
2075case 131:
2076YY_RULE_SETUP
2077#line 409 "moc.l"
2078{ X;
2079 yylval.double_val = atof(yytext);
2080 return DOUBLE_VAL;
2081 }
2082 YY_BREAK
2083case 132:
2084YY_RULE_SETUP
2085#line 414 "moc.l"
2086{ X;
2087 yylval.double_val = atof(yytext);
2088 return DOUBLE_VAL;
2089 }
2090 YY_BREAK
2091case 133:
2092*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
2093(yy_c_buf_p) = yy_cp -= 1;
2094YY_DO_BEFORE_ACTION; /* set up yytext again */
2095YY_RULE_SETUP
2096#line 420 "moc.l"
2097{ /* skip multi-line macro-definitions */
2098 int c, c1;
2099 input(); /* Discard the '\n'. */
2100 do {
2101 c1=' ';
2102 while((c = linput()) != '\n' && c != 0) c1=c;
2103 if (c == 0) break;
2104 } while(c1=='\\');
2105 unput(c); /* put back the '\n' or the EOF */
2106 }
2107 YY_BREAK
2108case 134:
2109YY_RULE_SETUP
2110#line 431 "moc.l"
2111{ /* preprocessor commands are skipped */}
2112 YY_BREAK
2113case 135:
2114YY_RULE_SETUP
2115#line 432 "moc.l"
2116{ /* C++ comment */
2117 QCString s = yytext;
2118 if ( s.contains( "MOC_SKIP_BEGIN" ) ) {
2119 skipLevel++;
2120 if ( skipLevel == 1 ) {
2121 lastState = YYSTATE;
2122 BEGIN SKIP;
2123 }
2124 } else
2125 if ( s.contains( "MOC_SKIP_END" ) ) {
2126 if ( skipLevel == 0 ) {
2127 moc_warn(" MOC_SKIP_END without MOC_SKIP_BEGIN");
2128 } else {
2129 skipLevel--;
2130 if ( skipLevel == 0 ) {
2131 BEGIN lastState;
2132 }
2133 }
2134 }
2135 }
2136 YY_BREAK
2137case 136:
2138YY_RULE_SETUP
2139#line 452 "moc.l"
2140{ /* C comment */
2141 int c = ' ';
2142 do {
2143 if ( c!= '*' ) {
2144 while((c = linput()) != '*' && c != 0)
2145 ;
2146 }
2147 if (c == 0) break;
2148 } while(((c = linput())) != '/' && c != 0);
2149 if (c == 0)
2150 unput(c);
2151 }
2152 YY_BREAK
2153case 137:
2154YY_RULE_SETUP
2155#line 465 "moc.l"
2156{ addExpressionChar( yytext[0] ); }
2157 YY_BREAK
2158case 138:
2159YY_RULE_SETUP
2160#line 467 "moc.l"
2161{
2162 /* spaces are important in template args,
2163 e.g. Foo<const int> */
2164 addExpressionChar( yytext[0] ); }
2165 YY_BREAK
2166case 139:
2167YY_RULE_SETUP
2168#line 471 "moc.l"
2169;
2170 YY_BREAK
2171case 140:
2172YY_RULE_SETUP
2173#line 472 "moc.l"
2174;
2175 YY_BREAK
2176case 141:
2177YY_RULE_SETUP
2178#line 473 "moc.l"
2179;
2180 YY_BREAK
2181case 142:
2182YY_RULE_SETUP
2183#line 474 "moc.l"
2184;
2185 YY_BREAK
2186case 143:
2187YY_RULE_SETUP
2188#line 475 "moc.l"
2189{ addExpressionChar( yytext[0] ); }
2190 YY_BREAK
2191case 144:
2192YY_RULE_SETUP
2193#line 476 "moc.l"
2194;
2195 YY_BREAK
2196case 145:
2197YY_RULE_SETUP
2198#line 477 "moc.l"
2199{ addExpressionChar( yytext[0] ); }
2200 YY_BREAK
2201case 146:
2202YY_RULE_SETUP
2203#line 478 "moc.l"
2204;
2205 YY_BREAK
2206case 147:
2207YY_RULE_SETUP
2208#line 479 "moc.l"
2209;
2210 YY_BREAK
2211case 148:
2212YY_RULE_SETUP
2213#line 480 "moc.l"
2214{
2215 X;
2216 return yytext[0];
2217 }
2218 YY_BREAK
2219case 149:
2220YY_RULE_SETUP
2221#line 484 "moc.l"
2222{
2223 X;
2224 return ';';
2225 }
2226 YY_BREAK
2227case 150:
2228/* rule 150 can match eol */
2229YY_RULE_SETUP
2230#line 488 "moc.l"
2231{
2232 lineNo++;
2233 }
2234 YY_BREAK
2235case 151:
2236YY_RULE_SETUP
2237#line 493 "moc.l"
2238ECHO;
2239 YY_BREAK
2240#line 2241 "lex.yy.c"
2241case YY_STATE_EOF(INITIAL):
2242case YY_STATE_EOF(OUTSIDE):
2243case YY_STATE_EOF(QT_DEF):
2244case YY_STATE_EOF(IN_CLASS):
2245case YY_STATE_EOF(IN_NAMESPACE):
2246case YY_STATE_EOF(IN_ENUM):
2247case YY_STATE_EOF(IN_EXPR):
2248case YY_STATE_EOF(IN_DEF_ARG):
2249case YY_STATE_EOF(IN_FCT):
2250case YY_STATE_EOF(IN_TEMPL_ARGS):
2251case YY_STATE_EOF(GIMME_SEMICOLON):
2252case YY_STATE_EOF(SKIP):
2253case YY_STATE_EOF(IN_PROPERTY):
2254case YY_STATE_EOF(IN_CLASSINFO):
2255 yyterminate();
2256
2257 case YY_END_OF_BUFFER:
2258 {
2259 /* Amount of text matched not including the EOB char. */
2260 int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
2261
2262 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2263 *yy_cp = (yy_hold_char);
2264 YY_RESTORE_YY_MORE_OFFSET
2265
2266 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
2267 {
2268 /* We're scanning a new file or input source. It's
2269 * possible that this happened because the user
2270 * just pointed yyin at a new source and called
2271 * yylex(). If so, then we have to assure
2272 * consistency between YY_CURRENT_BUFFER and our
2273 * globals. Here is the right place to do so, because
2274 * this is the first action (other than possibly a
2275 * back-up) that will match for the new input source.
2276 */
2277 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2278 YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
2279 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
2280 }
2281
2282 /* Note that here we test for yy_c_buf_p "<=" to the position
2283 * of the first EOB in the buffer, since yy_c_buf_p will
2284 * already have been incremented past the NUL character
2285 * (since all states make transitions on EOB to the
2286 * end-of-buffer state). Contrast this with the test
2287 * in input().
2288 */
2289 if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2290 { /* This was really a NUL. */
2291 yy_state_type yy_next_state;
2292
2293 (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
2294
2295 yy_current_state = yy_get_previous_state( );
2296
2297 /* Okay, we're now positioned to make the NUL
2298 * transition. We couldn't have
2299 * yy_get_previous_state() go ahead and do it
2300 * for us because it doesn't know how to deal
2301 * with the possibility of jamming (and we don't
2302 * want to build jamming into it because then it
2303 * will run more slowly).
2304 */
2305
2306 yy_next_state = yy_try_NUL_trans( yy_current_state );
2307
2308 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2309
2310 if ( yy_next_state )
2311 {
2312 /* Consume the NUL. */
2313 yy_cp = ++(yy_c_buf_p);
2314 yy_current_state = yy_next_state;
2315 goto yy_match;
2316 }
2317
2318 else
2319 {
2320 yy_cp = (yy_c_buf_p);
2321 goto yy_find_action;
2322 }
2323 }
2324
2325 else switch ( yy_get_next_buffer( ) )
2326 {
2327 case EOB_ACT_END_OF_FILE:
2328 {
2329 (yy_did_buffer_switch_on_eof) = 0;
2330
2331 if ( yywrap( ) )
2332 {
2333 /* Note: because we've taken care in
2334 * yy_get_next_buffer() to have set up
2335 * yytext, we can now set up
2336 * yy_c_buf_p so that if some total
2337 * hoser (like flex itself) wants to
2338 * call the scanner after we return the
2339 * YY_NULL, it'll still work - another
2340 * YY_NULL will get returned.
2341 */
2342 (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
2343
2344 yy_act = YY_STATE_EOF(YY_START);
2345 goto do_action;
2346 }
2347
2348 else
2349 {
2350 if ( ! (yy_did_buffer_switch_on_eof) )
2351 YY_NEW_FILE;
2352 }
2353 break;
2354 }
2355
2356 case EOB_ACT_CONTINUE_SCAN:
2357 (yy_c_buf_p) =
2358 (yytext_ptr) + yy_amount_of_matched_text;
2359
2360 yy_current_state = yy_get_previous_state( );
2361
2362 yy_cp = (yy_c_buf_p);
2363 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2364 goto yy_match;
2365
2366 case EOB_ACT_LAST_MATCH:
2367 (yy_c_buf_p) =
2368 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
2369
2370 yy_current_state = yy_get_previous_state( );
2371
2372 yy_cp = (yy_c_buf_p);
2373 yy_bp = (yytext_ptr) + YY_MORE_ADJ;
2374 goto yy_find_action;
2375 }
2376 break;
2377 }
2378
2379 default:
2380 YY_FATAL_ERROR(
2381 "fatal flex scanner internal error--no action found" );
2382 } /* end of action switch */
2383 } /* end of scanning one token */
2384} /* end of yylex */
2385
2386/* yy_get_next_buffer - try to read in a new buffer
2387 *
2388 * Returns a code representing an action:
2389 * EOB_ACT_LAST_MATCH -
2390 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2391 * EOB_ACT_END_OF_FILE - end of file
2392 */
2393static int yy_get_next_buffer (void)
2394{
2395 register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
2396 register char *source = (yytext_ptr);
2397 register int number_to_move, i;
2398 int ret_val;
2399
2400 if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
2401 YY_FATAL_ERROR(
2402 "fatal flex scanner internal error--end of buffer missed" );
2403
2404 if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
2405 { /* Don't try to fill the buffer, so this is an EOF. */
2406 if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
2407 {
2408 /* We matched a single character, the EOB, so
2409 * treat this as a final EOF.
2410 */
2411 return EOB_ACT_END_OF_FILE;
2412 }
2413
2414 else
2415 {
2416 /* We matched some text prior to the EOB, first
2417 * process it.
2418 */
2419 return EOB_ACT_LAST_MATCH;
2420 }
2421 }
2422
2423 /* Try to read more data. */
2424
2425 /* First move last chars to start of buffer. */
2426 number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
2427
2428 for ( i = 0; i < number_to_move; ++i )
2429 *(dest++) = *(source++);
2430
2431 if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
2432 /* don't do the read, it's not guaranteed to return an EOF,
2433 * just force an EOF
2434 */
2435 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
2436
2437 else
2438 {
2439 size_t num_to_read =
2440 YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
2441
2442 while ( num_to_read <= 0 )
2443 { /* Not enough room in the buffer - grow it. */
2444
2445 /* just a shorter name for the current buffer */
2446 YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
2447
2448 int yy_c_buf_p_offset =
2449 (int) ((yy_c_buf_p) - b->yy_ch_buf);
2450
2451 if ( b->yy_is_our_buffer )
2452 {
2453 int new_size = b->yy_buf_size * 2;
2454
2455 if ( new_size <= 0 )
2456 b->yy_buf_size += b->yy_buf_size / 8;
2457 else
2458 b->yy_buf_size *= 2;
2459
2460 b->yy_ch_buf = (char *)
2461 /* Include room in for 2 EOB chars. */
2462 yyrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
2463 }
2464 else
2465 /* Can't grow it, we don't own it. */
2466 b->yy_ch_buf = 0;
2467
2468 if ( ! b->yy_ch_buf )
2469 YY_FATAL_ERROR(
2470 "fatal error - scanner input buffer overflow" );
2471
2472 (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
2473
2474 num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
2475 number_to_move - 1;
2476
2477 }
2478
2479 if ( num_to_read > YY_READ_BUF_SIZE )
2480 num_to_read = YY_READ_BUF_SIZE;
2481
2482 /* Read in more data. */
2483 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
2484 (yy_n_chars), num_to_read );
2485
2486 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2487 }
2488
2489 if ( (yy_n_chars) == 0 )
2490 {
2491 if ( number_to_move == YY_MORE_ADJ )
2492 {
2493 ret_val = EOB_ACT_END_OF_FILE;
2494 yyrestart(yyin );
2495 }
2496
2497 else
2498 {
2499 ret_val = EOB_ACT_LAST_MATCH;
2500 YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
2501 YY_BUFFER_EOF_PENDING;
2502 }
2503 }
2504
2505 else
2506 ret_val = EOB_ACT_CONTINUE_SCAN;
2507
2508 (yy_n_chars) += number_to_move;
2509 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
2510 YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
2511
2512 (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
2513
2514 return ret_val;
2515}
2516
2517/* yy_get_previous_state - get the state just before the EOB char was reached */
2518
2519 static yy_state_type yy_get_previous_state (void)
2520{
2521 register yy_state_type yy_current_state;
2522 register char *yy_cp;
2523
2524 yy_current_state = (yy_start);
2525 yy_current_state += YY_AT_BOL();
2526
2527 for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
2528 {
2529 register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
2530 if ( yy_accept[yy_current_state] )
2531 {
2532 (yy_last_accepting_state) = yy_current_state;
2533 (yy_last_accepting_cpos) = yy_cp;
2534 }
2535 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2536 {
2537 yy_current_state = (int) yy_def[yy_current_state];
2538 if ( yy_current_state >= 615 )
2539 yy_c = yy_meta[(unsigned int) yy_c];
2540 }
2541 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2542 }
2543
2544 return yy_current_state;
2545}
2546
2547/* yy_try_NUL_trans - try to make a transition on the NUL character
2548 *
2549 * synopsis
2550 * next_state = yy_try_NUL_trans( current_state );
2551 */
2552 static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
2553{
2554 register int yy_is_jam;
2555 register char *yy_cp = (yy_c_buf_p);
2556
2557 register YY_CHAR yy_c = 1;
2558 if ( yy_accept[yy_current_state] )
2559 {
2560 (yy_last_accepting_state) = yy_current_state;
2561 (yy_last_accepting_cpos) = yy_cp;
2562 }
2563 while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
2564 {
2565 yy_current_state = (int) yy_def[yy_current_state];
2566 if ( yy_current_state >= 615 )
2567 yy_c = yy_meta[(unsigned int) yy_c];
2568 }
2569 yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
2570 yy_is_jam = (yy_current_state == 614);
2571
2572 return yy_is_jam ? 0 : yy_current_state;
2573}
2574
2575 static void yyunput (int c, register char * yy_bp )
2576{
2577 register char *yy_cp;
2578
2579 yy_cp = (yy_c_buf_p);
2580
2581 /* undo effects of setting up yytext */
2582 *yy_cp = (yy_hold_char);
2583
2584 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2585 { /* need to shift things up to make room */
2586 /* +2 for EOB chars. */
2587 register int number_to_move = (yy_n_chars) + 2;
2588 register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
2589 YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
2590 register char *source =
2591 &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
2592
2593 while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
2594 *--dest = *--source;
2595
2596 yy_cp += (int) (dest - source);
2597 yy_bp += (int) (dest - source);
2598 YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
2599 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
2600
2601 if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
2602 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2603 }
2604
2605 *--yy_cp = (char) c;
2606
2607 (yytext_ptr) = yy_bp;
2608 (yy_hold_char) = *yy_cp;
2609 (yy_c_buf_p) = yy_cp;
2610}
2611
2612#ifndef YY_NO_INPUT
2613#ifdef __cplusplus
2614 static int yyinput (void)
2615#else
2616 static int input (void)
2617#endif
2618
2619{
2620 int c;
2621
2622 *(yy_c_buf_p) = (yy_hold_char);
2623
2624 if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
2625 {
2626 /* yy_c_buf_p now points to the character we want to return.
2627 * If this occurs *before* the EOB characters, then it's a
2628 * valid NUL; if not, then we've hit the end of the buffer.
2629 */
2630 if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
2631 /* This was really a NUL. */
2632 *(yy_c_buf_p) = '\0';
2633
2634 else
2635 { /* need more input */
2636 int offset = (yy_c_buf_p) - (yytext_ptr);
2637 ++(yy_c_buf_p);
2638
2639 switch ( yy_get_next_buffer( ) )
2640 {
2641 case EOB_ACT_LAST_MATCH:
2642 /* This happens because yy_g_n_b()
2643 * sees that we've accumulated a
2644 * token and flags that we need to
2645 * try matching the token before
2646 * proceeding. But for input(),
2647 * there's no matching to consider.
2648 * So convert the EOB_ACT_LAST_MATCH
2649 * to EOB_ACT_END_OF_FILE.
2650 */
2651
2652 /* Reset buffer status. */
2653 yyrestart(yyin );
2654
2655 /*FALLTHROUGH*/
2656
2657 case EOB_ACT_END_OF_FILE:
2658 {
2659 if ( yywrap( ) )
2660 return EOF;
2661
2662 if ( ! (yy_did_buffer_switch_on_eof) )
2663 YY_NEW_FILE;
2664#ifdef __cplusplus
2665 return yyinput();
2666#else
2667 return input();
2668#endif
2669 }
2670
2671 case EOB_ACT_CONTINUE_SCAN:
2672 (yy_c_buf_p) = (yytext_ptr) + offset;
2673 break;
2674 }
2675 }
2676 }
2677
2678 c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
2679 *(yy_c_buf_p) = '\0'; /* preserve yytext */
2680 (yy_hold_char) = *++(yy_c_buf_p);
2681
2682 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = (c == '\n');
2683
2684 return c;
2685}
2686#endif /* ifndef YY_NO_INPUT */
2687
2688/** Immediately switch to a different input stream.
2689 * @param input_file A readable stream.
2690 *
2691 * @note This function does not reset the start condition to @c INITIAL .
2692 */
2693 void yyrestart (FILE * input_file )
2694{
2695
2696 if ( ! YY_CURRENT_BUFFER ){
2697 yyensure_buffer_stack ();
2698 YY_CURRENT_BUFFER_LVALUE =
2699 yy_create_buffer(yyin,YY_BUF_SIZE );
2700 }
2701
2702 yy_init_buffer(YY_CURRENT_BUFFER,input_file );
2703 yy_load_buffer_state( );
2704}
2705
2706/** Switch to a different input buffer.
2707 * @param new_buffer The new input buffer.
2708 *
2709 */
2710 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer )
2711{
2712
2713 /* TODO. We should be able to replace this entire function body
2714 * with
2715 * yypop_buffer_state();
2716 * yypush_buffer_state(new_buffer);
2717 */
2718 yyensure_buffer_stack ();
2719 if ( YY_CURRENT_BUFFER == new_buffer )
2720 return;
2721
2722 if ( YY_CURRENT_BUFFER )
2723 {
2724 /* Flush out information for old buffer. */
2725 *(yy_c_buf_p) = (yy_hold_char);
2726 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2727 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2728 }
2729
2730 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2731 yy_load_buffer_state( );
2732
2733 /* We don't actually know whether we did this switch during
2734 * EOF (yywrap()) processing, but the only time this flag
2735 * is looked at is after yywrap() is called, so it's safe
2736 * to go ahead and always set it.
2737 */
2738 (yy_did_buffer_switch_on_eof) = 1;
2739}
2740
2741static void yy_load_buffer_state (void)
2742{
2743 (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
2744 (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
2745 yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
2746 (yy_hold_char) = *(yy_c_buf_p);
2747}
2748
2749/** Allocate and initialize an input buffer state.
2750 * @param file A readable stream.
2751 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
2752 *
2753 * @return the allocated buffer state.
2754 */
2755 YY_BUFFER_STATE yy_create_buffer (FILE * file, int size )
2756{
2757 YY_BUFFER_STATE b;
2758
2759 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
2760 if ( ! b )
2761 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2762
2763 b->yy_buf_size = size;
2764
2765 /* yy_ch_buf has to be 2 characters longer than the size given because
2766 * we need to put in 2 end-of-buffer characters.
2767 */
2768 b->yy_ch_buf = (char *) yyalloc(b->yy_buf_size + 2 );
2769 if ( ! b->yy_ch_buf )
2770 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
2771
2772 b->yy_is_our_buffer = 1;
2773
2774 yy_init_buffer(b,file );
2775
2776 return b;
2777}
2778
2779/** Destroy the buffer.
2780 * @param b a buffer created with yy_create_buffer()
2781 *
2782 */
2783 void yy_delete_buffer (YY_BUFFER_STATE b )
2784{
2785
2786 if ( ! b )
2787 return;
2788
2789 if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
2790 YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
2791
2792 if ( b->yy_is_our_buffer )
2793 yyfree((void *) b->yy_ch_buf );
2794
2795 yyfree((void *) b );
2796}
2797
2798#ifndef __cplusplus
2799extern int isatty (int );
2800#endif /* __cplusplus */
2801
2802/* Initializes or reinitializes a buffer.
2803 * This function is sometimes called more than once on the same buffer,
2804 * such as during a yyrestart() or at EOF.
2805 */
2806 static void yy_init_buffer (YY_BUFFER_STATE b, FILE * file )
2807
2808{
2809 int oerrno = errno;
2810
2811 yy_flush_buffer(b );
2812
2813 b->yy_input_file = file;
2814 b->yy_fill_buffer = 1;
2815
2816 /* If b is the current buffer, then yy_init_buffer was _probably_
2817 * called from yyrestart() or through yy_get_next_buffer.
2818 * In that case, we don't want to reset the lineno or column.
2819 */
2820 if (b != YY_CURRENT_BUFFER){
2821 b->yy_bs_lineno = 1;
2822 b->yy_bs_column = 0;
2823 }
2824
2825 b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
2826
2827 errno = oerrno;
2828}
2829
2830/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
2831 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
2832 *
2833 */
2834 void yy_flush_buffer (YY_BUFFER_STATE b )
2835{
2836 if ( ! b )
2837 return;
2838
2839 b->yy_n_chars = 0;
2840
2841 /* We always need two end-of-buffer characters. The first causes
2842 * a transition to the end-of-buffer state. The second causes
2843 * a jam in that state.
2844 */
2845 b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
2846 b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
2847
2848 b->yy_buf_pos = &b->yy_ch_buf[0];
2849
2850 b->yy_at_bol = 1;
2851 b->yy_buffer_status = YY_BUFFER_NEW;
2852
2853 if ( b == YY_CURRENT_BUFFER )
2854 yy_load_buffer_state( );
2855}
2856
2857/** Pushes the new state onto the stack. The new state becomes
2858 * the current state. This function will allocate the stack
2859 * if necessary.
2860 * @param new_buffer The new state.
2861 *
2862 */
2863void yypush_buffer_state (YY_BUFFER_STATE new_buffer )
2864{
2865 if (new_buffer == NULL)
2866 return;
2867
2868 yyensure_buffer_stack();
2869
2870 /* This block is copied from yy_switch_to_buffer. */
2871 if ( YY_CURRENT_BUFFER )
2872 {
2873 /* Flush out information for old buffer. */
2874 *(yy_c_buf_p) = (yy_hold_char);
2875 YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
2876 YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
2877 }
2878
2879 /* Only push if top exists. Otherwise, replace top. */
2880 if (YY_CURRENT_BUFFER)
2881 (yy_buffer_stack_top)++;
2882 YY_CURRENT_BUFFER_LVALUE = new_buffer;
2883
2884 /* copied from yy_switch_to_buffer. */
2885 yy_load_buffer_state( );
2886 (yy_did_buffer_switch_on_eof) = 1;
2887}
2888
2889/** Removes and deletes the top of the stack, if present.
2890 * The next element becomes the new top.
2891 *
2892 */
2893void yypop_buffer_state (void)
2894{
2895 if (!YY_CURRENT_BUFFER)
2896 return;
2897
2898 yy_delete_buffer(YY_CURRENT_BUFFER );
2899 YY_CURRENT_BUFFER_LVALUE = NULL;
2900 if ((yy_buffer_stack_top) > 0)
2901 --(yy_buffer_stack_top);
2902
2903 if (YY_CURRENT_BUFFER) {
2904 yy_load_buffer_state( );
2905 (yy_did_buffer_switch_on_eof) = 1;
2906 }
2907}
2908
2909/* Allocates the stack if it does not exist.
2910 * Guarantees space for at least one push.
2911 */
2912static void yyensure_buffer_stack (void)
2913{
2914 int num_to_alloc;
2915
2916 if (!(yy_buffer_stack)) {
2917
2918 /* First allocation is just for 2 elements, since we don't know if this
2919 * scanner will even need a stack. We use 2 instead of 1 to avoid an
2920 * immediate realloc on the next call.
2921 */
2922 num_to_alloc = 1;
2923 (yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
2924 (num_to_alloc * sizeof(struct yy_buffer_state*)
2925 );
2926
2927 memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
2928
2929 (yy_buffer_stack_max) = num_to_alloc;
2930 (yy_buffer_stack_top) = 0;
2931 return;
2932 }
2933
2934 if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
2935
2936 /* Increase the buffer to prepare for a possible push. */
2937 int grow_size = 8 /* arbitrary grow size */;
2938
2939 num_to_alloc = (yy_buffer_stack_max) + grow_size;
2940 (yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
2941 ((yy_buffer_stack),
2942 num_to_alloc * sizeof(struct yy_buffer_state*)
2943 );
2944
2945 /* zero only the new slots.*/
2946 memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
2947 (yy_buffer_stack_max) = num_to_alloc;
2948 }
2949}
2950
2951/** Setup the input buffer state to scan directly from a user-specified character buffer.
2952 * @param base the character buffer
2953 * @param size the size in bytes of the character buffer
2954 *
2955 * @return the newly allocated buffer state object.
2956 */
2957YY_BUFFER_STATE yy_scan_buffer (char * base, yy_size_t size )
2958{
2959 YY_BUFFER_STATE b;
2960
2961 if ( size < 2 ||
2962 base[size-2] != YY_END_OF_BUFFER_CHAR ||
2963 base[size-1] != YY_END_OF_BUFFER_CHAR )
2964 /* They forgot to leave room for the EOB's. */
2965 return 0;
2966
2967 b = (YY_BUFFER_STATE) yyalloc(sizeof( struct yy_buffer_state ) );
2968 if ( ! b )
2969 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
2970
2971 b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
2972 b->yy_buf_pos = b->yy_ch_buf = base;
2973 b->yy_is_our_buffer = 0;
2974 b->yy_input_file = 0;
2975 b->yy_n_chars = b->yy_buf_size;
2976 b->yy_is_interactive = 0;
2977 b->yy_at_bol = 1;
2978 b->yy_fill_buffer = 0;
2979 b->yy_buffer_status = YY_BUFFER_NEW;
2980
2981 yy_switch_to_buffer(b );
2982
2983 return b;
2984}
2985
2986/** Setup the input buffer state to scan a string. The next call to yylex() will
2987 * scan from a @e copy of @a str.
2988 * @param str a NUL-terminated string to scan
2989 *
2990 * @return the newly allocated buffer state object.
2991 * @note If you want to scan bytes that may contain NUL values, then use
2992 * yy_scan_bytes() instead.
2993 */
2994YY_BUFFER_STATE yy_scan_string (yyconst char * yy_str )
2995{
2996
2997 return yy_scan_bytes(yy_str,strlen(yy_str) );
2998}
2999
3000/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
3001 * scan from a @e copy of @a bytes.
3002 * @param bytes the byte buffer to scan
3003 * @param len the number of bytes in the buffer pointed to by @a bytes.
3004 *
3005 * @return the newly allocated buffer state object.
3006 */
3007YY_BUFFER_STATE yy_scan_bytes (yyconst char * bytes, int len )
3008{
3009 YY_BUFFER_STATE b;
3010 char *buf;
3011 yy_size_t n;
3012 int i;
3013
3014 /* Get memory for full buffer, including space for trailing EOB's. */
3015 n = len + 2;
3016 buf = (char *) yyalloc(n );
3017 if ( ! buf )
3018 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3019
3020 for ( i = 0; i < len; ++i )
3021 buf[i] = bytes[i];
3022
3023 buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
3024
3025 b = yy_scan_buffer(buf,n );
3026 if ( ! b )
3027 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3028
3029 /* It's okay to grow etc. this buffer, and we should throw it
3030 * away when we're done.
3031 */
3032 b->yy_is_our_buffer = 1;
3033
3034 return b;
3035}
3036
3037#ifndef YY_EXIT_FAILURE
3038#define YY_EXIT_FAILURE 2
3039#endif
3040
3041static void yy_fatal_error (yyconst char* msg )
3042{
3043 (void) fprintf( stderr, "%s\n", msg );
3044 exit( YY_EXIT_FAILURE );
3045}
3046
3047/* Redefine yyless() so it works in section 3 code. */
3048
3049#undef yyless
3050#define yyless(n) \
3051 do \
3052 { \
3053 /* Undo effects of setting up yytext. */ \
3054 int yyless_macro_arg = (n); \
3055 YY_LESS_LINENO(yyless_macro_arg);\
3056 yytext[yyleng] = (yy_hold_char); \
3057 (yy_c_buf_p) = yytext + yyless_macro_arg; \
3058 (yy_hold_char) = *(yy_c_buf_p); \
3059 *(yy_c_buf_p) = '\0'; \
3060 yyleng = yyless_macro_arg; \
3061 } \
3062 while ( 0 )
3063
3064/* Accessor methods (get/set functions) to struct members. */
3065
3066/** Get the current line number.
3067 *
3068 */
3069int yyget_lineno (void)
3070{
3071
3072 return yylineno;
3073}
3074
3075/** Get the input stream.
3076 *
3077 */
3078FILE *yyget_in (void)
3079{
3080 return yyin;
3081}
3082
3083/** Get the output stream.
3084 *
3085 */
3086FILE *yyget_out (void)
3087{
3088 return yyout;
3089}
3090
3091/** Get the length of the current token.
3092 *
3093 */
3094int yyget_leng (void)
3095{
3096 return yyleng;
3097}
3098
3099/** Get the current token.
3100 *
3101 */
3102
3103char *yyget_text (void)
3104{
3105 return yytext;
3106}
3107
3108/** Set the current line number.
3109 * @param line_number
3110 *
3111 */
3112void yyset_lineno (int line_number )
3113{
3114
3115 yylineno = line_number;
3116}
3117
3118/** Set the input stream. This does not discard the current
3119 * input buffer.
3120 * @param in_str A readable stream.
3121 *
3122 * @see yy_switch_to_buffer
3123 */
3124void yyset_in (FILE * in_str )
3125{
3126 yyin = in_str ;
3127}
3128
3129void yyset_out (FILE * out_str )
3130{
3131 yyout = out_str ;
3132}
3133
3134int yyget_debug (void)
3135{
3136 return yy_flex_debug;
3137}
3138
3139void yyset_debug (int bdebug )
3140{
3141 yy_flex_debug = bdebug ;
3142}
3143
3144/* yylex_destroy is for both reentrant and non-reentrant scanners. */
3145int yylex_destroy (void)
3146{
3147
3148 /* Pop the buffer stack, destroying each element. */
3149 while(YY_CURRENT_BUFFER){
3150 yy_delete_buffer(YY_CURRENT_BUFFER );
3151 YY_CURRENT_BUFFER_LVALUE = NULL;
3152 yypop_buffer_state();
3153 }
3154
3155 /* Destroy the stack itself. */
3156 yyfree((yy_buffer_stack) );
3157 (yy_buffer_stack) = NULL;
3158
3159 return 0;
3160}
3161
3162/*
3163 * Internal utility routines.
3164 */
3165
3166#ifndef yytext_ptr
3167static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
3168{
3169 register int i;
3170 for ( i = 0; i < n; ++i )
3171 s1[i] = s2[i];
3172}
3173#endif
3174
3175#ifdef YY_NEED_STRLEN
3176static int yy_flex_strlen (yyconst char * s )
3177{
3178 register int n;
3179 for ( n = 0; s[n]; ++n )
3180 ;
3181
3182 return n;
3183}
3184#endif
3185
3186void *yyalloc (yy_size_t size )
3187{
3188 return (void *) malloc( size );
3189}
3190
3191void *yyrealloc (void * ptr, yy_size_t size )
3192{
3193 /* The cast to (char *) in the following accommodates both
3194 * implementations that use char* generic pointers, and those
3195 * that use void* generic pointers. It works with the latter
3196 * because both ANSI C and C++ allow castless assignment from
3197 * any pointer type to void*, and deal with argument conversions
3198 * as though doing an assignment.
3199 */
3200 return (void *) realloc( (char *) ptr, size );
3201}
3202
3203void yyfree (void * ptr )
3204{
3205 free( (char *) ptr ); /* see yyrealloc() for (char *) cast */
3206}
3207
3208#define YYTABLES_NAME "yytables"
3209
3210#undef YY_NEW_FILE
3211#undef YY_FLUSH_BUFFER
3212#undef yy_set_bol
3213#undef yy_new_buffer
3214#undef yy_set_interactive
3215#undef yytext_ptr
3216#undef YY_DO_BEFORE_ACTION
3217
3218#ifdef YY_DECL_IS_OURS
3219#undef YY_DECL_IS_OURS
3220#undef YY_DECL
3221#endif
3222#line 493 "moc.l"
3223
3224
3225
3226#endif // MOC_YACC_CODE
3227
Note: See TracBrowser for help on using the repository browser.