1 #line 2 "fe/idl.yy.cpp"
3 #line 4 "fe/idl.yy.cpp"
5 #define YY_INT_ALIGNED short int
7 /* A lexical scanner generated by flex */
9 #define yy_create_buffer tao_yy_create_buffer
10 #define yy_delete_buffer tao_yy_delete_buffer
11 #define yy_scan_buffer tao_yy_scan_buffer
12 #define yy_scan_string tao_yy_scan_string
13 #define yy_scan_bytes tao_yy_scan_bytes
14 #define yy_init_buffer tao_yy_init_buffer
15 #define yy_flush_buffer tao_yy_flush_buffer
16 #define yy_load_buffer_state tao_yy_load_buffer_state
17 #define yy_switch_to_buffer tao_yy_switch_to_buffer
18 #define yypush_buffer_state tao_yypush_buffer_state
19 #define yypop_buffer_state tao_yypop_buffer_state
20 #define yyensure_buffer_stack tao_yyensure_buffer_stack
21 #define yy_flex_debug tao_yy_flex_debug
23 #define yyleng tao_yyleng
24 #define yylex tao_yylex
25 #define yylineno tao_yylineno
26 #define yyout tao_yyout
27 #define yyrestart tao_yyrestart
28 #define yytext tao_yytext
29 #define yywrap tao_yywrap
30 #define yyalloc tao_yyalloc
31 #define yyrealloc tao_yyrealloc
32 #define yyfree tao_yyfree
35 #define YY_FLEX_MAJOR_VERSION 2
36 #define YY_FLEX_MINOR_VERSION 6
37 #define YY_FLEX_SUBMINOR_VERSION 4
38 #if YY_FLEX_SUBMINOR_VERSION > 0
42 #ifdef yy_create_buffer
43 #define tao_yy_create_buffer_ALREADY_DEFINED
45 #define yy_create_buffer tao_yy_create_buffer
48 #ifdef yy_delete_buffer
49 #define tao_yy_delete_buffer_ALREADY_DEFINED
51 #define yy_delete_buffer tao_yy_delete_buffer
55 #define tao_yy_scan_buffer_ALREADY_DEFINED
57 #define yy_scan_buffer tao_yy_scan_buffer
61 #define tao_yy_scan_string_ALREADY_DEFINED
63 #define yy_scan_string tao_yy_scan_string
67 #define tao_yy_scan_bytes_ALREADY_DEFINED
69 #define yy_scan_bytes tao_yy_scan_bytes
73 #define tao_yy_init_buffer_ALREADY_DEFINED
75 #define yy_init_buffer tao_yy_init_buffer
78 #ifdef yy_flush_buffer
79 #define tao_yy_flush_buffer_ALREADY_DEFINED
81 #define yy_flush_buffer tao_yy_flush_buffer
84 #ifdef yy_load_buffer_state
85 #define tao_yy_load_buffer_state_ALREADY_DEFINED
87 #define yy_load_buffer_state tao_yy_load_buffer_state
90 #ifdef yy_switch_to_buffer
91 #define tao_yy_switch_to_buffer_ALREADY_DEFINED
93 #define yy_switch_to_buffer tao_yy_switch_to_buffer
96 #ifdef yypush_buffer_state
97 #define tao_yypush_buffer_state_ALREADY_DEFINED
99 #define yypush_buffer_state tao_yypush_buffer_state
102 #ifdef yypop_buffer_state
103 #define tao_yypop_buffer_state_ALREADY_DEFINED
105 #define yypop_buffer_state tao_yypop_buffer_state
108 #ifdef yyensure_buffer_stack
109 #define tao_yyensure_buffer_stack_ALREADY_DEFINED
111 #define yyensure_buffer_stack tao_yyensure_buffer_stack
115 #define tao_yylex_ALREADY_DEFINED
117 #define yylex tao_yylex
121 #define tao_yyrestart_ALREADY_DEFINED
123 #define yyrestart tao_yyrestart
127 #define tao_yylex_init_ALREADY_DEFINED
129 #define yylex_init tao_yylex_init
132 #ifdef yylex_init_extra
133 #define tao_yylex_init_extra_ALREADY_DEFINED
135 #define yylex_init_extra tao_yylex_init_extra
139 #define tao_yylex_destroy_ALREADY_DEFINED
141 #define yylex_destroy tao_yylex_destroy
145 #define tao_yyget_debug_ALREADY_DEFINED
147 #define yyget_debug tao_yyget_debug
151 #define tao_yyset_debug_ALREADY_DEFINED
153 #define yyset_debug tao_yyset_debug
157 #define tao_yyget_extra_ALREADY_DEFINED
159 #define yyget_extra tao_yyget_extra
163 #define tao_yyset_extra_ALREADY_DEFINED
165 #define yyset_extra tao_yyset_extra
169 #define tao_yyget_in_ALREADY_DEFINED
171 #define yyget_in tao_yyget_in
175 #define tao_yyset_in_ALREADY_DEFINED
177 #define yyset_in tao_yyset_in
181 #define tao_yyget_out_ALREADY_DEFINED
183 #define yyget_out tao_yyget_out
187 #define tao_yyset_out_ALREADY_DEFINED
189 #define yyset_out tao_yyset_out
193 #define tao_yyget_leng_ALREADY_DEFINED
195 #define yyget_leng tao_yyget_leng
199 #define tao_yyget_text_ALREADY_DEFINED
201 #define yyget_text tao_yyget_text
205 #define tao_yyget_lineno_ALREADY_DEFINED
207 #define yyget_lineno tao_yyget_lineno
211 #define tao_yyset_lineno_ALREADY_DEFINED
213 #define yyset_lineno tao_yyset_lineno
217 #define tao_yywrap_ALREADY_DEFINED
219 #define yywrap tao_yywrap
223 #define tao_yyalloc_ALREADY_DEFINED
225 #define yyalloc tao_yyalloc
229 #define tao_yyrealloc_ALREADY_DEFINED
231 #define yyrealloc tao_yyrealloc
235 #define tao_yyfree_ALREADY_DEFINED
237 #define yyfree tao_yyfree
241 #define tao_yytext_ALREADY_DEFINED
243 #define yytext tao_yytext
247 #define tao_yyleng_ALREADY_DEFINED
249 #define yyleng tao_yyleng
253 #define tao_yyin_ALREADY_DEFINED
255 #define yyin tao_yyin
259 #define tao_yyout_ALREADY_DEFINED
261 #define yyout tao_yyout
265 #define tao_yy_flex_debug_ALREADY_DEFINED
267 #define yy_flex_debug tao_yy_flex_debug
271 #define tao_yylineno_ALREADY_DEFINED
273 #define yylineno tao_yylineno
276 /* First, we deal with platform-specific or compiler-specific issues. */
278 /* begin standard C headers. */
279 #include "ace/OS_NS_stdio.h"
280 #include "ace/OS_NS_errno.h"
282 /* end standard C headers. */
284 /* flex integer type definitions */
289 /* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
291 #if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L || defined (__HP_aCC)
293 /* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
294 * if you want the limit (max/min) macros for int types.
296 #ifndef __STDC_LIMIT_MACROS
297 #define __STDC_LIMIT_MACROS 1
300 #include <inttypes.h>
301 typedef int8_t flex_int8_t
;
302 typedef uint8_t flex_uint8_t
;
303 typedef int16_t flex_int16_t
;
304 typedef uint16_t flex_uint16_t
;
305 typedef int32_t flex_int32_t
;
306 typedef uint32_t flex_uint32_t
;
308 typedef signed char flex_int8_t
;
309 typedef short int flex_int16_t
;
310 typedef int flex_int32_t
;
311 typedef unsigned char flex_uint8_t
;
312 typedef unsigned short int flex_uint16_t
;
313 typedef unsigned int flex_uint32_t
;
315 /* Limits of integral types. */
317 #define INT8_MIN (-128)
320 #define INT16_MIN (-32767-1)
323 #define INT32_MIN (-2147483647-1)
326 #define INT8_MAX (127)
329 #define INT16_MAX (32767)
332 #define INT32_MAX (2147483647)
335 #define UINT8_MAX (255U)
338 #define UINT16_MAX (65535U)
341 #define UINT32_MAX (4294967295U)
345 #define SIZE_MAX (~(size_t)0)
350 #endif /* ! FLEXINT_H */
352 /* begin standard C++ headers. */
354 /* TODO: this is always defined, so inline it */
355 #define yyconst const
357 #if defined(__GNUC__) && __GNUC__ >= 3
358 #define yynoreturn __attribute__((__noreturn__))
363 /* Returned upon end-of-file. */
366 /* Promotes a possibly negative, possibly signed char to an
367 * integer in range [0..255] for use as an array index.
369 #define YY_SC_TO_UI(c) ((YY_CHAR) (c))
371 /* Enter a start condition. This macro really ought to take a parameter,
372 * but we do it the disgusting crufty way forced on us by the ()-less
373 * definition of BEGIN.
375 #define BEGIN (yy_start) = 1 + 2 *
376 /* Translate the current start state into a value that can be later handed
377 * to BEGIN to return to the state. The YYSTATE alias is for lex
380 #define YY_START (((yy_start) - 1) / 2)
381 #define YYSTATE YY_START
382 /* Action number for EOF rule of a given start state. */
383 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
384 /* Special action meaning "start processing a new file". */
385 #define YY_NEW_FILE yyrestart( yyin )
386 #define YY_END_OF_BUFFER_CHAR 0
388 /* Size of default input buffer. */
391 /* On IA-64, the buffer size is 16k, not 8k.
392 * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
393 * Ditto for the __ia64__ case accordingly.
395 #define YY_BUF_SIZE 32768
397 #define YY_BUF_SIZE 16384
398 #endif /* __ia64__ */
401 /* The state buf must be large enough to hold one state per character in the main buffer.
403 #define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
405 #ifndef YY_TYPEDEF_YY_BUFFER_STATE
406 #define YY_TYPEDEF_YY_BUFFER_STATE
407 typedef struct yy_buffer_state
*YY_BUFFER_STATE
;
410 #ifndef YY_TYPEDEF_YY_SIZE_T
411 #define YY_TYPEDEF_YY_SIZE_T
412 typedef size_t yy_size_t
;
417 extern FILE *yyin
, *yyout
;
419 #define EOB_ACT_CONTINUE_SCAN 0
420 #define EOB_ACT_END_OF_FILE 1
421 #define EOB_ACT_LAST_MATCH 2
423 #define YY_LESS_LINENO(n)
424 #define YY_LINENO_REWIND_TO(ptr)
426 /* Return all but the first "n" matched characters back to the input stream. */
430 /* Undo effects of setting up yytext. */ \
431 int yyless_macro_arg = (n); \
432 YY_LESS_LINENO(yyless_macro_arg);\
433 *yy_cp = (yy_hold_char); \
434 YY_RESTORE_YY_MORE_OFFSET \
435 (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
436 YY_DO_BEFORE_ACTION; /* set up yytext again */ \
439 #define unput(c) yyunput( c, (yytext_ptr) )
441 #ifndef YY_STRUCT_YY_BUFFER_STATE
442 #define YY_STRUCT_YY_BUFFER_STATE
443 struct yy_buffer_state
447 char *yy_ch_buf
; /* input buffer */
448 char *yy_buf_pos
; /* current position in input buffer */
450 /* Size of input buffer in bytes, not including room for EOB
455 /* Number of characters read into yy_ch_buf, not including EOB
460 /* Whether we "own" the buffer - i.e., we know we created it,
461 * and can realloc() it to grow it, and should free() it to
464 int yy_is_our_buffer
;
466 /* Whether this is an "interactive" input source; if so, and
467 * if we're using stdio for input, then we want to use getc()
468 * instead of fread(), to make sure we stop fetching input after
471 int yy_is_interactive
;
473 /* Whether we're considered to be at the beginning of a line.
474 * If so, '^' rules will be active on the next match, otherwise
479 int yy_bs_lineno
; /**< The line count. */
480 int yy_bs_column
; /**< The column count. */
482 /* Whether to try to fill the input buffer when we reach the
487 int yy_buffer_status
;
489 #define YY_BUFFER_NEW 0
490 #define YY_BUFFER_NORMAL 1
491 /* When an EOF's been seen but there's still some text to process
492 * then we mark the buffer as YY_EOF_PENDING, to indicate that we
493 * shouldn't try reading from the input source any more. We might
494 * still have a bunch of tokens to match, though, because of
495 * possible backing-up.
497 * When we actually see the EOF, we change the status to "new"
498 * (via yyrestart()), so that the user can continue scanning by
499 * just pointing yyin at a new input file.
501 #define YY_BUFFER_EOF_PENDING 2
504 #endif /* !YY_STRUCT_YY_BUFFER_STATE */
506 /* Stack of input buffers. */
507 static size_t yy_buffer_stack_top
= 0; /**< index of top of stack. */
508 static size_t yy_buffer_stack_max
= 0; /**< capacity of stack. */
509 static YY_BUFFER_STATE
* yy_buffer_stack
= 0; /**< Stack as an array. */
511 /* We provide macros for accessing buffer states in case in the
512 * future we want to put the buffer states in a more general
515 * Returns the top of the stack, or 0.
517 #define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
518 ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
520 /* Same as previous macro, but useful when we know that the buffer stack is not
521 * 0 or when we need an lvalue. For internal use only.
523 #define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
525 /* yy_hold_char holds the character lost when yytext is formed. */
526 static char yy_hold_char
;
527 static int yy_n_chars
; /* number of characters read into yy_ch_buf */
530 /* Points to current character in buffer. */
531 static char *yy_c_buf_p
= 0;
532 static int yy_init
= 0; /* whether we need to initialize */
533 static int yy_start
= 0; /* start state number */
535 /* Flag which is used to allow yywrap()'s to do buffer switches
536 * instead of setting up a fresh yyin. A bit of a hack ...
538 static int yy_did_buffer_switch_on_eof
;
540 void yyrestart ( FILE *input_file
);
541 void yy_switch_to_buffer ( YY_BUFFER_STATE new_buffer
);
542 YY_BUFFER_STATE
yy_create_buffer ( FILE *file
, int size
);
543 void yy_delete_buffer ( YY_BUFFER_STATE b
);
544 void yy_flush_buffer ( YY_BUFFER_STATE b
);
545 void yypush_buffer_state ( YY_BUFFER_STATE new_buffer
);
546 void yypop_buffer_state ( void );
548 static void yyensure_buffer_stack ( void );
549 static void yy_load_buffer_state ( void );
550 static void yy_init_buffer ( YY_BUFFER_STATE b
, FILE *file
);
551 #define YY_FLUSH_BUFFER yy_flush_buffer( YY_CURRENT_BUFFER )
553 YY_BUFFER_STATE
yy_scan_buffer ( char *base
, yy_size_t size
);
554 YY_BUFFER_STATE
yy_scan_string ( const char *yy_str
);
555 YY_BUFFER_STATE
yy_scan_bytes ( const char *bytes
, int len
);
557 void *yyalloc ( yy_size_t
);
558 void *yyrealloc ( void *, yy_size_t
);
559 void yyfree ( void * );
561 #define yy_new_buffer yy_create_buffer
562 #define yy_set_interactive(is_interactive) \
564 if ( ! YY_CURRENT_BUFFER ){ \
565 yyensure_buffer_stack (); \
566 YY_CURRENT_BUFFER_LVALUE = \
567 yy_create_buffer( yyin, YY_BUF_SIZE ); \
569 YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
571 #define yy_set_bol(at_bol) \
573 if ( ! YY_CURRENT_BUFFER ){\
574 yyensure_buffer_stack (); \
575 YY_CURRENT_BUFFER_LVALUE = \
576 yy_create_buffer( yyin, YY_BUF_SIZE ); \
578 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
580 #define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
582 /* Begin user sect3 */
583 typedef flex_uint8_t YY_CHAR
;
585 FILE *yyin
= 0, *yyout
= 0;
587 typedef int yy_state_type
;
592 extern char yytext
[];
594 static yy_state_type
yy_get_previous_state ( void );
595 static yy_state_type
yy_try_NUL_trans ( yy_state_type current_state
);
596 static int yy_get_next_buffer ( void );
597 static void yynoreturn
yy_fatal_error ( const char* msg
);
599 /* Done after the current pattern has been matched and before the
600 * corresponding action - sets up yytext.
602 #define YY_DO_BEFORE_ACTION \
603 (yytext_ptr) = yy_bp; \
604 yyleng = (int) (yy_cp - yy_bp); \
605 (yy_hold_char) = *yy_cp; \
607 if ( yyleng >= YYLMAX ) \
608 YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \
609 yy_flex_strncpy( yytext, (yytext_ptr), yyleng + 1 ); \
610 (yy_c_buf_p) = yy_cp;
611 #define YY_NUM_RULES 121
612 #define YY_END_OF_BUFFER 122
613 /* This struct is not used in this scanner,
614 but its presence is necessary. */
617 flex_int32_t yy_verify
;
620 static const flex_int16_t yy_acclist
[626] =
622 118, 118, 122, 120, 121, 118, 120, 121, 119, 121,
623 119, 120, 121, 120, 121, 120, 121, 120, 121, 120,
624 121, 120, 121, 93, 120, 121, 89, 120, 121, 120,
625 121, 120, 121, 120, 121, 83, 120, 121, 84, 120,
626 121, 84, 120, 121, 84, 120, 121, 84, 120, 121,
627 84, 120, 121, 84, 120, 121, 84, 120, 121, 84,
628 120, 121, 84, 120, 121, 84, 120, 121, 84, 120,
629 121, 84, 120, 121, 84, 120, 121, 84, 120, 121,
630 84, 120, 121, 84, 120, 121, 84, 120, 121, 84,
631 120, 121, 84, 120, 121, 84, 120, 121, 84, 120,
633 121, 84, 120, 121, 84, 120, 121, 84, 120, 121,
634 84, 120, 121, 118, 120, 121, 120, 121, 119, 120,
635 121, 118, 94, 92, 88, 85, 117, 85, 93, 87,
636 89, 81, 79, 80, 84, 84, 84, 84, 84, 84,
637 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
638 84, 84, 84, 84, 84, 84, 84, 84, 84, 76,
639 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
640 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
641 84, 84, 84, 84, 84, 84, 84, 84, 84, 118,
642 112, 94, 96, 96, 92, 88, 85, 116, 116, 85,
644 86, 91, 84, 95, 84, 84, 84, 84, 1, 84,
645 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
646 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
647 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
648 84, 77, 84, 84, 84, 84, 84, 84, 84, 84,
649 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
650 84, 84, 84, 84, 84, 99, 97, 99, 90, 85,
651 86, 84, 95, 100, 84, 73, 84, 84, 84, 84,
652 84, 20, 84, 27, 84, 84, 84, 84, 84, 84,
653 84, 84, 84, 13, 84, 84, 84, 84, 84, 84,
655 84, 84, 56, 84, 84, 84, 84, 84, 84, 35,
656 84, 84, 84, 24, 84, 84, 84, 84, 84, 84,
657 84, 84, 68, 84, 84, 84, 84, 84, 84, 84,
658 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
659 84, 84, 65, 84, 84, 31, 84, 84, 84, 113,
660 97, 98, 74, 84, 84, 84, 72, 84, 84, 84,
661 84, 84, 10, 84, 84, 84, 84, 84, 84, 52,
662 84, 84, 84, 84, 84, 18, 84, 22, 84, 84,
663 84, 75, 84, 37, 84, 39, 84, 41, 84, 84,
664 33, 84, 84, 84, 84, 84, 84, 30, 84, 84,
666 84, 84, 84, 84, 84, 84, 84, 84, 84, 25,
667 84, 84, 84, 84, 84, 84, 84, 84, 84, 84,
668 84, 84, 84, 36, 84, 17, 84, 84, 84, 28,
669 84, 84, 108, 101, 2, 84, 84, 84, 84, 84,
670 84, 84, 84, 43, 84, 84, 23, 84, 84, 84,
671 84, 54, 84, 84, 57, 84, 84, 84, 84, 3,
672 84, 84, 32, 84, 78, 84, 84, 84, 84, 84,
673 46, 84, 84, 4, 84, 84, 84, 84, 14, 84,
674 12, 84, 84, 19, 84, 84, 84, 63, 84, 84,
675 84, 38, 84, 40, 84, 42, 84, 84, 84, 84,
677 106, 84, 84, 29, 84, 84, 84, 84, 8, 84,
678 21, 84, 84, 84, 44, 84, 84, 84, 66, 84,
679 84, 84, 84, 84, 45, 84, 84, 84, 84, 84,
680 84, 84, 84, 11, 84, 84, 84, 84, 84, 15,
681 84, 104, 104, 110, 109, 34, 84, 84, 84, 84,
682 51, 84, 84, 84, 84, 84, 84, 58, 84, 70,
683 84, 84, 60, 84, 84, 5, 84, 16, 84, 84,
684 47, 84, 84, 67, 84, 84, 26, 84, 84, 114,
685 114, 107, 6, 84, 50, 84, 71, 84, 53, 84,
686 7, 84, 55, 84, 9, 84, 84, 84, 61, 84,
688 62, 84, 84, 84, 49, 84, 102, 102, 105, 105,
689 69, 84, 59, 84, 84, 64, 84, 115, 115, 48,
690 84, 111, 103, 103, 82
693 static const flex_int16_t yy_accept
[623] =
695 1, 2, 3, 4, 6, 9, 11, 14, 16, 18,
696 20, 22, 24, 27, 30, 32, 34, 36, 39, 42,
697 45, 48, 51, 54, 57, 60, 63, 66, 69, 72,
698 75, 78, 81, 84, 87, 90, 93, 96, 99, 102,
699 105, 108, 111, 114, 117, 119, 122, 123, 123, 124,
700 124, 124, 124, 124, 125, 126, 127, 128, 128, 129,
701 130, 130, 131, 131, 131, 132, 133, 134, 135, 135,
702 136, 137, 137, 137, 138, 139, 140, 141, 142, 143,
703 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
704 154, 155, 156, 157, 158, 159, 160, 162, 163, 164,
706 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
707 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
708 185, 186, 187, 188, 189, 190, 191, 191, 191, 192,
709 192, 192, 192, 192, 192, 192, 192, 193, 193, 193,
710 193, 194, 194, 195, 195, 195, 196, 196, 197, 197,
711 198, 198, 199, 200, 201, 201, 202, 203, 203, 204,
712 204, 205, 205, 205, 205, 206, 207, 208, 209, 211,
713 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
714 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
715 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
717 242, 244, 245, 246, 247, 248, 249, 250, 251, 252,
718 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
719 263, 264, 265, 266, 266, 266, 266, 266, 266, 266,
720 266, 266, 267, 269, 269, 269, 270, 270, 271, 272,
721 272, 273, 274, 274, 274, 274, 274, 275, 275, 276,
722 278, 279, 280, 281, 282, 284, 286, 287, 288, 289,
723 290, 291, 292, 293, 294, 296, 297, 298, 299, 300,
724 301, 302, 303, 305, 306, 307, 308, 309, 310, 312,
725 313, 314, 316, 317, 318, 319, 320, 321, 322, 323,
726 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
728 335, 336, 337, 338, 339, 340, 341, 342, 343, 345,
729 346, 348, 349, 350, 350, 350, 350, 350, 350, 350,
730 350, 351, 351, 351, 351, 351, 351, 351, 351, 352,
731 352, 353, 353, 353, 355, 355, 355, 355, 356, 357,
732 359, 360, 361, 362, 363, 365, 366, 367, 368, 369,
733 370, 372, 373, 374, 375, 376, 378, 380, 381, 382,
734 384, 386, 388, 390, 391, 393, 394, 395, 396, 397,
735 398, 400, 401, 402, 403, 404, 405, 406, 407, 408,
736 409, 410, 412, 413, 414, 415, 416, 417, 418, 419,
737 420, 421, 422, 423, 424, 426, 428, 429, 430, 432,
739 433, 434, 434, 434, 434, 434, 434, 434, 434, 434,
740 434, 434, 434, 434, 434, 434, 435, 435, 437, 438,
741 439, 440, 441, 442, 443, 444, 446, 447, 449, 450,
742 451, 452, 454, 455, 457, 458, 459, 460, 462, 463,
743 465, 467, 468, 469, 470, 471, 473, 474, 476, 477,
744 478, 479, 481, 483, 484, 486, 487, 488, 490, 491,
745 492, 494, 496, 498, 499, 500, 501, 501, 502, 502,
746 502, 502, 502, 502, 502, 502, 502, 502, 502, 502,
747 502, 502, 502, 502, 503, 504, 506, 507, 508, 509,
748 511, 513, 514, 515, 517, 518, 519, 521, 522, 523,
750 524, 525, 527, 528, 529, 530, 531, 532, 533, 534,
751 536, 537, 538, 539, 540, 542, 542, 542, 543, 544,
752 544, 544, 545, 545, 545, 546, 546, 546, 546, 546,
753 546, 546, 546, 546, 548, 549, 550, 551, 553, 554,
754 555, 556, 557, 558, 560, 562, 563, 565, 566, 568,
755 570, 571, 573, 574, 576, 577, 579, 580, 580, 581,
756 582, 582, 582, 582, 582, 583, 583, 583, 583, 583,
757 583, 583, 583, 583, 585, 587, 589, 591, 593, 595,
758 597, 598, 599, 601, 603, 604, 605, 607, 607, 607,
759 607, 608, 609, 609, 609, 610, 611, 611, 611, 611,
761 611, 611, 613, 615, 616, 618, 618, 618, 619, 620,
762 620, 620, 620, 620, 622, 622, 623, 623, 624, 625,
766 static const YY_CHAR yy_ec
[256] =
768 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
769 1, 1, 4, 1, 1, 1, 1, 1, 1, 1,
770 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
771 1, 5, 1, 6, 7, 1, 1, 1, 8, 1,
772 1, 9, 10, 1, 11, 12, 13, 14, 15, 16,
773 17, 18, 19, 20, 19, 21, 22, 23, 1, 24,
774 25, 26, 27, 28, 29, 30, 30, 31, 32, 33,
775 34, 34, 34, 34, 34, 35, 34, 34, 36, 34,
776 34, 37, 38, 39, 40, 34, 34, 41, 34, 34,
777 1, 42, 1, 1, 34, 1, 43, 44, 45, 46,
779 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
780 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
781 67, 34, 1, 1, 1, 1, 1, 1, 1, 1,
782 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
783 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
784 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
785 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
786 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
787 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
788 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
790 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
791 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
792 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
793 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
794 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
798 static const YY_CHAR yy_meta
[68] =
800 1, 2, 3, 4, 2, 5, 1, 6, 1, 7,
801 7, 8, 1, 9, 9, 9, 9, 9, 9, 9,
802 10, 10, 1, 1, 1, 1, 11, 1, 12, 12,
803 13, 13, 12, 14, 14, 14, 14, 14, 14, 14,
804 14, 5, 15, 15, 12, 13, 13, 15, 14, 14,
805 14, 14, 14, 14, 14, 16, 14, 14, 14, 16,
806 14, 16, 17, 16, 14, 16, 14
809 static const flex_int16_t yy_base
[664] =
811 0, 66, 1500, 1501, 67, 1501, 1501, 64, 1457, 62,
812 80, 76, 95, 91, 1475, 1473, 1470, 1452, 0, 1465,
813 80, 1449, 1455, 77, 1434, 97, 61, 64, 81, 1443,
814 1432, 35, 1431, 100, 1444, 89, 93, 82, 108, 99,
815 111, 121, 104, 172, 178, 1459, 182, 162, 183, 192,
816 1477, 205, 223, 260, 202, 313, 1501, 224, 354, 103,
817 223, 1501, 94, 0, 252, 1501, 1501, 1501, 1428, 0,
818 1448, 210, 1440, 1429, 1440, 1418, 1427, 1410, 1414, 1418,
819 1413, 1430, 120, 1411, 1423, 1407, 1418, 1405, 1420, 1421,
820 1420, 135, 1407, 1401, 1407, 1403, 30, 202, 1404, 1399,
822 1412, 1403, 1394, 1393, 1407, 1391, 1392, 199, 1407, 1399,
823 1406, 156, 1391, 1387, 1388, 1394, 1381, 1385, 1386, 202,
824 1394, 1386, 1388, 1388, 1375, 255, 0, 211, 1501, 255,
825 345, 1385, 1389, 1383, 1373, 1407, 283, 224, 225, 296,
826 1501, 1423, 1422, 396, 1421, 227, 0, 293, 192, 1501,
827 291, 1501, 293, 0, 403, 344, 0, 1372, 1389, 280,
828 347, 412, 1418, 279, 1378, 1392, 1361, 1379, 0, 1361,
829 1366, 1372, 1358, 1359, 295, 1354, 1372, 1370, 1351, 1357,
830 1355, 1363, 1347, 1362, 1360, 1363, 1345, 1357, 1346, 1339,
831 418, 1358, 1351, 1356, 1338, 1334, 1334, 1344, 1347, 1328,
833 0, 1330, 253, 1327, 1336, 1328, 1342, 1324, 1326, 1325,
834 290, 1326, 1321, 1326, 1334, 1318, 1322, 1327, 1316, 1313,
835 1329, 1331, 1313, 1366, 1365, 1316, 1322, 1312, 1324, 474,
836 428, 1501, 1501, 441, 1358, 0, 488, 488, 1501, 1308,
837 1332, 360, 1357, 294, 529, 0, 1501, 0, 1317, 0,
838 1301, 1299, 1308, 1311, 0, 0, 1300, 1309, 301, 1308,
839 1297, 1290, 1298, 1290, 0, 1288, 1291, 1291, 1300, 1300,
840 1283, 1301, 0, 1283, 1280, 1321, 1324, 1321, 0, 1278,
841 1283, 0, 1287, 1278, 1280, 1282, 1268, 1269, 1287, 1267,
842 1285, 1284, 1275, 1274, 1277, 1266, 1275, 1278, 1258, 1263,
844 1273, 1260, 1271, 1270, 332, 447, 1258, 1264, 0, 1264,
845 0, 1250, 1230, 1274, 447, 1232, 1222, 1173, 1170, 1164,
846 1501, 267, 479, 1166, 1147, 1141, 1131, 352, 1501, 1182,
847 1501, 1176, 1121, 0, 544, 581, 1174, 1119, 1137, 0,
848 1135, 1131, 1117, 1127, 0, 1116, 1066, 1074, 1072, 1078,
849 0, 1041, 1040, 1041, 1040, 0, 0, 1044, 1030, 0,
850 0, 0, 0, 1041, 0, 1041, 1007, 1019, 1007, 1017,
851 0, 996, 995, 997, 994, 1009, 336, 993, 993, 990,
852 992, 0, 993, 977, 976, 982, 986, 978, 976, 976,
853 958, 976, 979, 976, 0, 0, 936, 928, 0, 933,
855 1501, 511, 404, 922, 435, 926, 972, 968, 917, 921,
856 911, 908, 887, 399, 616, 1501, 919, 0, 877, 856,
857 862, 849, 833, 830, 810, 0, 809, 0, 803, 817,
858 799, 0, 804, 0, 813, 791, 793, 0, 779, 0,
859 0, 754, 744, 763, 762, 0, 758, 0, 753, 760,
860 743, 0, 0, 740, 0, 738, 750, 0, 741, 747,
861 0, 0, 0, 746, 719, 736, 549, 1501, 563, 514,
862 461, 467, 577, 722, 738, 588, 693, 680, 687, 680,
863 665, 651, 718, 663, 652, 0, 653, 651, 646, 0,
864 0, 635, 619, 0, 628, 613, 0, 600, 596, 595,
866 587, 0, 578, 575, 542, 560, 559, 544, 551, 0,
867 542, 540, 524, 499, 0, 614, 581, 1501, 617, 647,
868 650, 1501, 550, 478, 1501, 683, 480, 478, 495, 484,
869 473, 513, 512, 0, 465, 449, 427, 0, 439, 417,
870 410, 407, 393, 0, 0, 389, 0, 346, 0, 0,
871 330, 0, 340, 0, 329, 0, 319, 675, 1501, 686,
872 337, 701, 688, 714, 1501, 718, 697, 524, 529, 567,
873 732, 294, 266, 0, 0, 0, 0, 0, 0, 0,
874 257, 237, 0, 0, 236, 151, 0, 728, 572, 708,
875 1501, 735, 754, 739, 1501, 757, 760, 184, 180, 573,
877 92, 0, 0, 99, 0, 765, 768, 1501, 770, 69,
878 772, 774, 0, 0, 786, 1501, 776, 1501, 779, 1501,
879 1501, 813, 830, 840, 845, 858, 874, 884, 897, 907,
880 914, 916, 931, 948, 960, 967, 976, 982, 999, 1011,
881 1018, 1025, 1035, 1049, 1059, 1069, 1081, 1095, 1106, 1118,
882 1133, 1150, 1166, 1176, 1185, 1196, 1212, 1223, 1240, 1257,
886 static const flex_int16_t yy_def
[664] =
888 621, 1, 621, 621, 621, 621, 621, 622, 623, 621,
889 621, 621, 621, 624, 621, 621, 621, 621, 625, 625,
890 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
891 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
892 625, 625, 625, 621, 621, 621, 621, 622, 621, 626,
893 621, 627, 621, 621, 628, 621, 621, 629, 621, 13,
894 630, 621, 631, 632, 624, 621, 621, 621, 621, 625,
895 625, 633, 634, 625, 625, 625, 625, 625, 625, 625,
896 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
897 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
899 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
900 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
901 625, 625, 625, 625, 625, 621, 45, 45, 621, 45,
902 45, 621, 621, 621, 621, 621, 621, 622, 622, 622,
903 621, 621, 621, 621, 635, 54, 636, 628, 637, 621,
904 629, 621, 629, 59, 621, 631, 632, 621, 625, 633,
905 621, 638, 621, 621, 625, 625, 625, 625, 625, 625,
906 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
907 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
908 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
910 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
911 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
912 625, 625, 625, 639, 621, 621, 621, 621, 621, 621,
913 622, 621, 621, 621, 640, 636, 621, 637, 621, 621,
914 625, 621, 621, 633, 633, 641, 621, 642, 625, 625,
915 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
916 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
917 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
918 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
919 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
921 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
922 625, 625, 625, 639, 621, 621, 621, 621, 621, 230,
923 621, 230, 230, 621, 621, 621, 621, 622, 621, 621,
924 621, 621, 621, 625, 633, 633, 643, 625, 625, 625,
925 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
926 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
927 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
928 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
929 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
930 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
932 621, 644, 621, 621, 645, 621, 646, 621, 621, 621,
933 621, 621, 621, 633, 336, 621, 647, 625, 625, 625,
934 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
935 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
936 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
937 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
938 625, 625, 625, 625, 625, 625, 648, 621, 644, 649,
939 621, 645, 645, 621, 646, 621, 621, 621, 621, 621,
940 621, 336, 650, 625, 625, 625, 625, 625, 625, 625,
941 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
943 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
944 625, 625, 625, 625, 625, 648, 649, 621, 649, 651,
945 621, 621, 652, 621, 621, 653, 621, 621, 654, 621,
946 621, 633, 621, 625, 625, 625, 625, 625, 625, 625,
947 625, 625, 625, 625, 625, 625, 625, 625, 625, 625,
948 625, 625, 625, 625, 625, 625, 625, 651, 621, 651,
949 652, 655, 656, 657, 621, 653, 658, 621, 654, 654,
950 621, 621, 621, 625, 625, 625, 625, 625, 625, 625,
951 625, 625, 625, 625, 625, 625, 625, 655, 588, 656,
952 621, 656, 657, 658, 621, 658, 659, 660, 621, 621,
954 621, 625, 625, 625, 625, 661, 659, 621, 659, 660,
955 621, 662, 663, 625, 661, 621, 662, 621, 662, 621,
956 0, 621, 621, 621, 621, 621, 621, 621, 621, 621,
957 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
958 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
959 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
963 static const flex_int16_t yy_nxt
[1569] =
965 4, 5, 6, 7, 5, 8, 4, 9, 4, 4,
966 10, 11, 12, 13, 14, 14, 14, 14, 14, 14,
967 14, 14, 15, 16, 4, 17, 7, 18, 19, 19,
968 19, 19, 20, 19, 21, 22, 19, 19, 23, 19,
969 19, 4, 24, 25, 26, 27, 28, 29, 30, 31,
970 32, 19, 19, 33, 34, 35, 36, 37, 19, 38,
971 39, 40, 41, 42, 43, 19, 19, 44, 47, 49,
972 44, 47, 45, 53, 611, 54, 55, 55, 55, 55,
973 55, 55, 55, 55, 57, 72, 190, 73, 58, 96,
974 97, 191, 46, 56, 56, 56, 56, 56, 56, 56,
976 56, 56, 59, 155, 155, 50, 59, 85, 60, 60,
977 60, 60, 60, 60, 60, 61, 61, 86, 87, 88,
978 76, 62, 63, 91, 110, 62, 63, 89, 111, 90,
979 77, 92, 78, 104, 93, 64, 62, 63, 79, 81,
980 62, 63, 99, 621, 105, 614, 82, 613, 124, 107,
981 100, 106, 108, 83, 112, 109, 101, 113, 117, 84,
982 64, 119, 102, 122, 125, 118, 120, 49, 621, 114,
983 115, 121, 116, 126, 174, 175, 126, 123, 127, 128,
984 129, 129, 130, 47, 137, 598, 47, 137, 138, 611,
985 184, 131, 131, 131, 131, 131, 131, 131, 131, 131,
987 185, 237, 237, 50, 129, 140, 140, 140, 140, 140,
988 140, 140, 143, 59, 208, 161, 605, 209, 144, 144,
989 144, 144, 144, 144, 144, 132, 152, 153, 133, 49,
990 49, 134, 62, 63, 59, 135, 56, 56, 56, 56,
991 56, 56, 56, 56, 56, 145, 192, 62, 63, 203,
992 153, 162, 217, 62, 63, 204, 126, 193, 621, 126,
993 224, 127, 218, 59, 621, 50, 50, 621, 62, 63,
994 145, 59, 407, 146, 146, 146, 146, 146, 146, 146,
995 61, 61, 62, 63, 137, 161, 247, 137, 138, 604,
996 62, 63, 621, 152, 153, 152, 153, 62, 63, 161,
998 147, 49, 621, 603, 59, 62, 63, 291, 621, 231,
999 231, 231, 231, 231, 231, 231, 292, 153, 602, 153,
1000 621, 162, 601, 62, 63, 147, 56, 56, 56, 56,
1001 56, 56, 56, 56, 56, 162, 600, 50, 62, 63,
1002 300, 248, 562, 62, 149, 150, 621, 150, 242, 225,
1003 258, 242, 301, 621, 621, 259, 260, 49, 62, 149,
1004 150, 242, 345, 346, 242, 587, 150, 154, 154, 154,
1005 154, 154, 154, 154, 154, 154, 239, 388, 239, 586,
1006 446, 243, 389, 585, 62, 149, 150, 390, 150, 391,
1007 584, 239, 621, 50, 243, 621, 447, 239, 621, 62,
1009 149, 150, 621, 233, 161, 470, 583, 150, 470, 234,
1010 234, 234, 234, 234, 234, 234, 156, 156, 156, 156,
1011 156, 156, 156, 156, 156, 245, 245, 245, 245, 245,
1012 245, 245, 276, 49, 277, 582, 472, 278, 279, 472,
1013 162, 328, 328, 328, 328, 328, 328, 328, 329, 401,
1014 401, 402, 581, 580, 330, 330, 330, 330, 330, 330,
1015 330, 392, 520, 393, 280, 520, 394, 395, 472, 50,
1016 579, 472, 578, 401, 246, 320, 321, 321, 322, 563,
1017 621, 567, 563, 408, 567, 577, 576, 323, 323, 323,
1018 323, 323, 323, 323, 323, 323, 569, 621, 621, 570,
1020 321, 238, 238, 238, 238, 238, 238, 238, 238, 238,
1021 575, 574, 467, 468, 468, 467, 518, 519, 161, 416,
1022 150, 324, 150, 573, 325, 597, 621, 326, 597, 621,
1023 569, 327, 621, 570, 161, 150, 621, 468, 572, 568,
1024 519, 150, 335, 335, 335, 335, 335, 335, 335, 161,
1025 467, 468, 468, 467, 162, 562, 557, 414, 414, 414,
1026 414, 414, 414, 414, 467, 468, 468, 467, 569, 556,
1027 162, 570, 598, 606, 612, 468, 606, 612, 521, 522,
1028 522, 521, 523, 518, 519, 162, 161, 555, 554, 468,
1029 525, 525, 526, 553, 415, 415, 415, 415, 415, 415,
1031 415, 415, 415, 522, 552, 551, 550, 519, 549, 415,
1032 415, 415, 415, 415, 525, 467, 468, 468, 467, 518,
1033 519, 548, 162, 415, 415, 415, 415, 415, 415, 482,
1034 482, 482, 482, 482, 482, 482, 482, 482, 547, 546,
1035 468, 545, 544, 519, 482, 482, 482, 482, 482, 559,
1036 560, 521, 522, 522, 521, 523, 543, 542, 482, 482,
1037 482, 482, 482, 482, 532, 532, 532, 532, 532, 532,
1038 532, 532, 532, 560, 541, 540, 522, 559, 560, 532,
1039 532, 532, 532, 532, 564, 565, 565, 564, 559, 560,
1040 591, 592, 539, 532, 532, 532, 532, 532, 532, 595,
1042 596, 560, 588, 522, 522, 588, 538, 537, 536, 565,
1043 591, 592, 560, 535, 592, 564, 565, 565, 564, 564,
1044 565, 565, 564, 596, 534, 416, 531, 522, 530, 588,
1045 522, 522, 588, 529, 592, 528, 599, 591, 592, 527,
1046 565, 595, 596, 476, 565, 571, 571, 571, 571, 571,
1047 571, 571, 571, 571, 522, 621, 565, 565, 621, 595,
1048 596, 592, 608, 609, 524, 596, 606, 522, 522, 606,
1049 608, 609, 608, 609, 616, 616, 618, 619, 618, 619,
1050 565, 618, 619, 596, 515, 514, 609, 621, 522, 522,
1051 621, 522, 513, 512, 609, 511, 609, 510, 616, 509,
1053 619, 508, 619, 507, 506, 619, 505, 504, 503, 502,
1054 501, 500, 522, 48, 48, 48, 48, 48, 48, 48,
1055 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
1056 51, 51, 499, 51, 51, 51, 51, 51, 51, 51,
1057 51, 51, 51, 51, 51, 51, 51, 65, 65, 65,
1058 498, 497, 65, 70, 70, 496, 70, 70, 70, 70,
1059 70, 70, 139, 139, 495, 494, 139, 493, 139, 492,
1060 491, 490, 139, 139, 142, 142, 489, 142, 142, 142,
1061 142, 142, 142, 142, 142, 142, 142, 142, 142, 142,
1062 142, 148, 148, 148, 488, 487, 148, 151, 151, 151,
1064 151, 151, 151, 151, 151, 151, 151, 151, 151, 151,
1065 151, 151, 151, 151, 61, 61, 61, 486, 485, 61,
1066 156, 484, 156, 156, 157, 157, 416, 157, 157, 481,
1067 157, 160, 160, 160, 160, 160, 160, 160, 160, 160,
1068 160, 160, 160, 160, 160, 160, 160, 160, 163, 163,
1069 480, 163, 163, 163, 163, 163, 163, 163, 163, 163,
1070 163, 163, 163, 163, 163, 235, 479, 478, 235, 235,
1071 477, 235, 235, 407, 235, 236, 236, 476, 236, 236,
1072 474, 236, 238, 471, 238, 238, 244, 244, 466, 465,
1073 244, 464, 244, 463, 462, 461, 244, 244, 244, 314,
1075 314, 314, 314, 314, 314, 314, 314, 314, 314, 314,
1076 314, 314, 314, 314, 314, 314, 332, 460, 459, 332,
1077 332, 458, 332, 332, 457, 332, 336, 336, 456, 336,
1078 336, 455, 336, 337, 337, 454, 337, 337, 453, 337,
1079 417, 452, 451, 417, 417, 450, 417, 417, 449, 417,
1080 469, 469, 469, 448, 445, 444, 443, 469, 469, 469,
1081 473, 442, 441, 440, 439, 438, 437, 473, 473, 475,
1082 475, 475, 475, 475, 475, 475, 475, 475, 475, 475,
1083 475, 475, 475, 475, 475, 475, 483, 436, 435, 483,
1084 483, 434, 483, 483, 433, 483, 516, 516, 516, 432,
1086 431, 430, 429, 516, 516, 516, 517, 517, 517, 517,
1087 517, 517, 517, 517, 517, 517, 517, 517, 517, 517,
1088 517, 517, 517, 533, 428, 427, 533, 533, 426, 533,
1089 533, 425, 533, 558, 558, 558, 558, 558, 558, 558,
1090 558, 558, 558, 558, 558, 558, 558, 558, 558, 558,
1091 561, 561, 561, 561, 561, 561, 561, 561, 561, 561,
1092 561, 561, 561, 561, 561, 561, 561, 566, 566, 566,
1093 424, 423, 422, 421, 566, 566, 566, 571, 420, 419,
1094 418, 416, 413, 331, 571, 571, 589, 589, 589, 329,
1095 412, 411, 410, 589, 589, 589, 590, 590, 590, 590,
1097 590, 590, 590, 590, 590, 590, 590, 590, 590, 590,
1098 590, 590, 590, 593, 593, 593, 409, 621, 406, 405,
1099 593, 593, 593, 594, 594, 594, 594, 594, 594, 594,
1100 594, 594, 594, 594, 594, 594, 594, 594, 594, 594,
1101 607, 607, 607, 607, 607, 607, 607, 607, 607, 607,
1102 607, 607, 607, 607, 607, 607, 607, 610, 610, 610,
1103 610, 610, 610, 610, 610, 610, 610, 610, 610, 610,
1104 610, 610, 610, 610, 615, 615, 615, 404, 403, 315,
1105 400, 615, 615, 615, 617, 617, 617, 617, 617, 617,
1106 617, 617, 617, 617, 617, 617, 617, 617, 617, 617,
1108 617, 620, 620, 620, 620, 620, 620, 620, 620, 399,
1109 398, 620, 397, 396, 387, 386, 385, 384, 383, 382,
1110 381, 380, 379, 378, 377, 376, 375, 374, 373, 372,
1111 371, 370, 369, 368, 367, 366, 365, 364, 363, 362,
1112 361, 360, 359, 358, 357, 356, 355, 354, 353, 352,
1113 351, 350, 349, 348, 347, 344, 343, 342, 341, 340,
1114 339, 338, 72, 334, 333, 331, 319, 318, 317, 316,
1115 224, 315, 313, 312, 311, 310, 309, 308, 307, 306,
1116 305, 304, 303, 302, 299, 298, 297, 296, 295, 294,
1117 293, 290, 289, 288, 287, 286, 285, 284, 283, 282,
1119 281, 275, 274, 273, 272, 271, 270, 269, 268, 267,
1120 266, 265, 264, 263, 262, 261, 257, 256, 255, 254,
1121 253, 252, 251, 250, 249, 247, 241, 240, 232, 232,
1122 232, 230, 229, 228, 227, 226, 223, 222, 221, 220,
1123 219, 216, 215, 214, 213, 212, 211, 210, 207, 206,
1124 205, 202, 201, 200, 199, 198, 197, 196, 195, 194,
1125 189, 188, 187, 186, 183, 182, 181, 180, 179, 178,
1126 177, 176, 173, 172, 171, 170, 169, 168, 167, 166,
1127 165, 164, 159, 158, 141, 136, 103, 98, 95, 94,
1128 80, 75, 74, 71, 69, 68, 67, 66, 52, 621,
1130 3, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1131 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1132 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1133 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1134 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1135 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1136 621, 621, 621, 621, 621, 621, 621, 621
1139 static const flex_int16_t yy_chk
[1569] =
1141 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1142 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1143 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1144 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1145 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1146 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1147 1, 1, 1, 1, 1, 1, 1, 2, 5, 8,
1148 2, 5, 2, 10, 610, 10, 10, 10, 10, 10,
1149 10, 10, 10, 10, 12, 21, 97, 21, 12, 32,
1150 32, 97, 2, 11, 11, 11, 11, 11, 11, 11,
1152 11, 11, 14, 63, 63, 8, 13, 27, 13, 13,
1153 13, 13, 13, 13, 13, 13, 13, 27, 28, 28,
1154 24, 14, 14, 29, 38, 13, 13, 28, 38, 28,
1155 24, 29, 24, 36, 29, 13, 14, 14, 24, 26,
1156 13, 13, 34, 60, 36, 604, 26, 601, 43, 37,
1157 34, 36, 37, 26, 39, 37, 34, 39, 40, 26,
1158 13, 41, 34, 42, 43, 40, 41, 48, 60, 39,
1159 39, 41, 39, 44, 83, 83, 44, 42, 44, 45,
1160 45, 45, 45, 47, 49, 599, 47, 49, 49, 598,
1161 92, 45, 45, 45, 45, 45, 45, 45, 45, 45,
1163 92, 149, 149, 48, 45, 50, 50, 50, 50, 50,
1164 50, 50, 52, 55, 112, 72, 586, 112, 52, 52,
1165 52, 52, 52, 52, 52, 45, 58, 58, 45, 138,
1166 139, 45, 55, 55, 61, 45, 53, 53, 53, 53,
1167 53, 53, 53, 53, 53, 52, 98, 55, 55, 108,
1168 58, 72, 120, 61, 61, 108, 126, 98, 128, 126,
1169 130, 126, 120, 65, 128, 138, 139, 146, 61, 61,
1170 52, 54, 322, 54, 54, 54, 54, 54, 54, 54,
1171 54, 54, 65, 65, 137, 160, 164, 137, 137, 585,
1172 54, 54, 146, 151, 151, 153, 153, 65, 65, 244,
1174 54, 140, 130, 582, 148, 54, 54, 203, 130, 140,
1175 140, 140, 140, 140, 140, 140, 203, 151, 581, 153,
1176 322, 160, 573, 148, 148, 54, 56, 56, 56, 56,
1177 56, 56, 56, 56, 56, 244, 572, 140, 148, 148,
1178 211, 164, 561, 56, 56, 56, 131, 56, 161, 131,
1179 175, 161, 211, 156, 156, 175, 175, 328, 56, 56,
1180 56, 242, 259, 259, 242, 557, 56, 59, 59, 59,
1181 59, 59, 59, 59, 59, 59, 156, 305, 156, 555,
1182 377, 161, 305, 553, 59, 59, 59, 305, 59, 305,
1183 551, 156, 131, 328, 242, 131, 377, 156, 131, 59,
1185 59, 59, 131, 144, 414, 403, 548, 59, 403, 144,
1186 144, 144, 144, 144, 144, 144, 155, 155, 155, 155,
1187 155, 155, 155, 155, 155, 162, 162, 162, 162, 162,
1188 162, 162, 191, 231, 191, 546, 405, 191, 191, 405,
1189 414, 231, 231, 231, 231, 231, 231, 231, 234, 315,
1190 315, 315, 543, 542, 234, 234, 234, 234, 234, 234,
1191 234, 306, 471, 306, 191, 471, 306, 306, 472, 231,
1192 541, 472, 540, 315, 162, 230, 230, 230, 230, 524,
1193 323, 527, 524, 323, 527, 539, 537, 230, 230, 230,
1194 230, 230, 230, 230, 230, 230, 529, 238, 238, 529,
1196 230, 237, 237, 237, 237, 237, 237, 237, 237, 237,
1197 536, 535, 402, 402, 402, 402, 470, 470, 532, 533,
1198 238, 230, 238, 531, 230, 568, 323, 230, 568, 323,
1199 569, 230, 323, 569, 245, 238, 323, 402, 530, 528,
1200 470, 238, 245, 245, 245, 245, 245, 245, 245, 335,
1201 467, 467, 467, 467, 532, 523, 514, 335, 335, 335,
1202 335, 335, 335, 335, 469, 469, 469, 469, 570, 513,
1203 245, 570, 570, 589, 600, 467, 589, 600, 473, 473,
1204 473, 473, 473, 517, 517, 335, 336, 512, 511, 469,
1205 476, 476, 476, 509, 336, 336, 336, 336, 336, 336,
1207 336, 336, 336, 473, 508, 507, 506, 517, 505, 336,
1208 336, 336, 336, 336, 476, 516, 516, 516, 516, 519,
1209 519, 504, 336, 336, 336, 336, 336, 336, 336, 415,
1210 415, 415, 415, 415, 415, 415, 415, 415, 503, 501,
1211 516, 500, 499, 519, 415, 415, 415, 415, 415, 520,
1212 520, 521, 521, 521, 521, 521, 498, 496, 415, 415,
1213 415, 415, 415, 415, 482, 482, 482, 482, 482, 482,
1214 482, 482, 482, 520, 495, 493, 521, 558, 558, 482,
1215 482, 482, 482, 482, 526, 526, 526, 526, 560, 560,
1216 563, 563, 492, 482, 482, 482, 482, 482, 482, 567,
1218 567, 558, 562, 562, 562, 562, 489, 488, 487, 526,
1219 590, 590, 560, 485, 563, 564, 564, 564, 564, 566,
1220 566, 566, 566, 567, 484, 483, 481, 562, 480, 588,
1221 588, 588, 588, 479, 590, 478, 571, 592, 592, 477,
1222 564, 594, 594, 475, 566, 571, 571, 571, 571, 571,
1223 571, 571, 571, 571, 588, 593, 593, 593, 593, 596,
1224 596, 592, 597, 597, 474, 594, 606, 606, 606, 606,
1225 607, 607, 609, 609, 611, 611, 612, 612, 617, 617,
1226 593, 619, 619, 596, 466, 465, 597, 615, 615, 615,
1227 615, 606, 464, 460, 607, 459, 609, 457, 611, 456,
1229 612, 454, 617, 451, 450, 619, 449, 447, 445, 444,
1230 443, 442, 615, 622, 622, 622, 622, 622, 622, 622,
1231 622, 622, 622, 622, 622, 622, 622, 622, 622, 622,
1232 623, 623, 439, 623, 623, 623, 623, 623, 623, 623,
1233 623, 623, 623, 623, 623, 623, 623, 624, 624, 624,
1234 437, 436, 624, 625, 625, 435, 625, 625, 625, 625,
1235 625, 625, 626, 626, 433, 431, 626, 430, 626, 429,
1236 427, 425, 626, 626, 627, 627, 424, 627, 627, 627,
1237 627, 627, 627, 627, 627, 627, 627, 627, 627, 627,
1238 627, 628, 628, 628, 423, 422, 628, 629, 629, 629,
1240 629, 629, 629, 629, 629, 629, 629, 629, 629, 629,
1241 629, 629, 629, 629, 630, 630, 630, 421, 420, 630,
1242 631, 419, 631, 631, 632, 632, 417, 632, 632, 413,
1243 632, 633, 633, 633, 633, 633, 633, 633, 633, 633,
1244 633, 633, 633, 633, 633, 633, 633, 633, 634, 634,
1245 412, 634, 634, 634, 634, 634, 634, 634, 634, 634,
1246 634, 634, 634, 634, 634, 635, 411, 410, 635, 635,
1247 409, 635, 635, 408, 635, 636, 636, 407, 636, 636,
1248 406, 636, 637, 404, 637, 637, 638, 638, 400, 398,
1249 638, 397, 638, 394, 393, 392, 638, 638, 638, 639,
1251 639, 639, 639, 639, 639, 639, 639, 639, 639, 639,
1252 639, 639, 639, 639, 639, 639, 640, 391, 390, 640,
1253 640, 389, 640, 640, 388, 640, 641, 641, 387, 641,
1254 641, 386, 641, 642, 642, 385, 642, 642, 384, 642,
1255 643, 383, 381, 643, 643, 380, 643, 643, 379, 643,
1256 644, 644, 644, 378, 376, 375, 374, 644, 644, 644,
1257 645, 373, 372, 370, 369, 368, 367, 645, 645, 646,
1258 646, 646, 646, 646, 646, 646, 646, 646, 646, 646,
1259 646, 646, 646, 646, 646, 646, 647, 366, 364, 647,
1260 647, 359, 647, 647, 358, 647, 648, 648, 648, 355,
1262 354, 353, 352, 648, 648, 648, 649, 649, 649, 649,
1263 649, 649, 649, 649, 649, 649, 649, 649, 649, 649,
1264 649, 649, 649, 650, 350, 349, 650, 650, 348, 650,
1265 650, 347, 650, 651, 651, 651, 651, 651, 651, 651,
1266 651, 651, 651, 651, 651, 651, 651, 651, 651, 651,
1267 652, 652, 652, 652, 652, 652, 652, 652, 652, 652,
1268 652, 652, 652, 652, 652, 652, 652, 653, 653, 653,
1269 346, 344, 343, 342, 653, 653, 653, 654, 341, 339,
1270 338, 337, 333, 332, 654, 654, 655, 655, 655, 330,
1271 327, 326, 325, 655, 655, 655, 656, 656, 656, 656,
1273 656, 656, 656, 656, 656, 656, 656, 656, 656, 656,
1274 656, 656, 656, 657, 657, 657, 324, 320, 319, 318,
1275 657, 657, 657, 658, 658, 658, 658, 658, 658, 658,
1276 658, 658, 658, 658, 658, 658, 658, 658, 658, 658,
1277 659, 659, 659, 659, 659, 659, 659, 659, 659, 659,
1278 659, 659, 659, 659, 659, 659, 659, 660, 660, 660,
1279 660, 660, 660, 660, 660, 660, 660, 660, 660, 660,
1280 660, 660, 660, 660, 661, 661, 661, 317, 316, 314,
1281 313, 661, 661, 661, 662, 662, 662, 662, 662, 662,
1282 662, 662, 662, 662, 662, 662, 662, 662, 662, 662,
1284 662, 663, 663, 663, 663, 663, 663, 663, 663, 312,
1285 310, 663, 308, 307, 304, 303, 302, 301, 300, 299,
1286 298, 297, 296, 295, 294, 293, 292, 291, 290, 289,
1287 288, 287, 286, 285, 284, 283, 281, 280, 278, 277,
1288 276, 275, 274, 272, 271, 270, 269, 268, 267, 266,
1289 264, 263, 262, 261, 260, 258, 257, 254, 253, 252,
1290 251, 249, 243, 241, 240, 235, 229, 228, 227, 226,
1291 225, 224, 223, 222, 221, 220, 219, 218, 217, 216,
1292 215, 214, 213, 212, 210, 209, 208, 207, 206, 205,
1293 204, 202, 200, 199, 198, 197, 196, 195, 194, 193,
1295 192, 190, 189, 188, 187, 186, 185, 184, 183, 182,
1296 181, 180, 179, 178, 177, 176, 174, 173, 172, 171,
1297 170, 168, 167, 166, 165, 163, 159, 158, 145, 143,
1298 142, 136, 135, 134, 133, 132, 125, 124, 123, 122,
1299 121, 119, 118, 117, 116, 115, 114, 113, 111, 110,
1300 109, 107, 106, 105, 104, 103, 102, 101, 100, 99,
1301 96, 95, 94, 93, 91, 90, 89, 88, 87, 86,
1302 85, 84, 82, 81, 80, 79, 78, 77, 76, 75,
1303 74, 73, 71, 69, 51, 46, 35, 33, 31, 30,
1304 25, 23, 22, 20, 18, 17, 16, 15, 9, 3,
1306 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1307 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1308 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1309 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1310 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1311 621, 621, 621, 621, 621, 621, 621, 621, 621, 621,
1312 621, 621, 621, 621, 621, 621, 621, 621
1315 extern int yy_flex_debug
;
1316 int yy_flex_debug
= 0;
1318 static yy_state_type
*yy_state_buf
=0, *yy_state_ptr
=0;
1319 static char *yy_full_match
;
1323 *yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ \
1324 yy_cp = (yy_full_match); /* restore poss. backed-over text */ \
1329 #define yymore() yymore_used_but_not_detected
1330 #define YY_MORE_ADJ 0
1331 #define YY_RESTORE_YY_MORE_OFFSET
1336 char yytext
[YYLMAX
];
1344 Copyright 1992, 1993, 1994 Sun Microsystems, Inc. Printed in the United
1345 States of America. All Rights Reserved.
1347 This product is protected by copyright and distributed under the following
1348 license restricting its use.
1350 The Interface Definition Language Compiler Front End (CFE) is made
1351 available for your use provided that you include this license and copyright
1352 notice on all media and documentation and the software program in which
1353 this product is incorporated in whole or part. You may copy and extend
1354 functionality (but may not remove functionality) of the Interface
1355 Definition Language CFE without charge, but you are not authorized to
1356 license or distribute it to anyone else except as part of a product or
1357 program developed by you or with the express written consent of Sun
1358 Microsystems, Inc. ("Sun").
1360 The names of Sun Microsystems, Inc. and any of its subsidiaries or
1361 affiliates may not be used in advertising or publicity pertaining to
1362 distribution of Interface Definition Language CFE as permitted herein.
1364 This license is effective until terminated by Sun for failure to comply
1365 with this license. Upon termination, you shall destroy or return all code
1366 and documentation for the Interface Definition Language CFE.
1368 IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
1369 IDL_ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
1370 FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
1371 DEALING, USAGE OR TRADE PRACTICE.
1373 IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
1374 IDL_ANY OBLIGATION ON THE PART OF Sun OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES
1375 TO ASSIST IDL_IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
1377 SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
1378 RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR IDL_ANY PATENTS BY
1379 IDL_INTERFACE DEFINITION LANGUAGE CFE OR IDL_ANY PART THEREOF.
1381 IDL_IN NO EVENT WILL SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
1382 IDL_ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
1383 DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
1385 Use, duplication, or disclosure by the government is subject to
1386 restrictions as set forth in subparagraph (c)(1)(ii) of the Rights in
1387 Technical Data and Computer Software clause at DFARS 252.227-7013 and FAR
1390 Sun, Sun Microsystems and the Sun logo are trademarks or registered
1391 trademarks of Sun Microsystems, Inc.
1395 Mountain View, California 94043
1399 SunOS, SunSoft, Sun, Solaris, Sun Microsystems or the Sun logo are
1400 trademarks or registered trademarks of Sun Microsystems, Inc.
1405 * idl.ll - Lexical scanner for IDL
1408 #include "global_extern.h"
1409 #include "nr_extern.h"
1410 #include "utl_strlist.h"
1411 #include "utl_exprlist.h"
1412 #include "utl_labellist.h"
1413 #include "utl_decllist.h"
1414 #include "utl_string.h"
1415 #include "utl_err.h"
1416 #include "ast_union_label.h"
1417 #include "ast_field.h"
1418 #include "ast_expression.h"
1419 #include "ast_argument.h"
1420 #include "ast_operation.h"
1421 #include "ast_root.h"
1422 #include "fe_interface_header.h"
1423 #include "fe_obv_header.h"
1424 #include "fe_component_header.h"
1425 #include "fe_home_header.h"
1426 #include "fe_private.h"
1427 #include "fe_extern.h"
1428 #include "ast_annotation_appl.h"
1429 #include "idl.tab.hpp"
1431 static char * idl_wstring_escape_reader (char *);
1432 static ACE_CDR::WChar
idl_wchar_escape_reader (char *);
1433 static ACE_CDR::Char
idl_escape_reader (char *);
1434 static ACE_CDR::Double
idl_atof (char *);
1435 static ACE_CDR::LongLong
idl_atoi (char *, long);
1436 static ACE_CDR::ULongLong
idl_atoui (char *, long);
1437 static void idl_parse_line_and_file (char *);
1438 static void idl_store_pragma (char *);
1439 static char * idl_get_pragma_string (char *);
1440 static bool idl_valid_version (char *);
1441 static AST_Decl
* idl_find_node (const char *);
1443 #define ace_yytext yytext
1445 #ifdef USE_MCPP_BUFFER_LEXING
1446 #include "mcpp_yyinput.h"
1447 #endif /*USE_MCPP_BUFFER_LEXING*/
1449 #if defined __ANDROID__ && defined ECHO
1453 #line 1456 "fe/idl.yy.cpp"
1454 /* SO we don't choke on files that use \r\n */
1455 #line 1458 "fe/idl.yy.cpp"
1459 #ifndef YY_NO_UNISTD_H
1460 /* Special case for "unistd.h", since it is non-ANSI. We include it way
1461 * down here because we want the user's section 1 to have been scanned first.
1462 * The user has a chance to override it with an option.
1464 #include "ace/os_include/os_ctype.h"
1467 #ifndef YY_EXTRA_TYPE
1468 #define YY_EXTRA_TYPE void *
1471 static int yy_init_globals ( void );
1473 /* Accessor methods to globals.
1474 These are made visible to non-reentrant scanners for convenience. */
1476 int yylex_destroy ( void );
1478 int yyget_debug ( void );
1480 void yyset_debug ( int debug_flag
);
1482 YY_EXTRA_TYPE
yyget_extra ( void );
1484 void yyset_extra ( YY_EXTRA_TYPE user_defined
);
1486 FILE *yyget_in ( void );
1488 void yyset_in ( FILE * _in_str
);
1490 FILE *yyget_out ( void );
1492 void yyset_out ( FILE * _out_str
);
1494 int yyget_leng ( void );
1496 char *yyget_text ( void );
1498 int yyget_lineno ( void );
1500 void yyset_lineno ( int _line_number
);
1502 /* Macros after this point can all be overridden by user definitions in
1506 #ifndef YY_SKIP_YYWRAP
1508 extern "C" int yywrap ( void );
1510 extern int yywrap ( void );
1516 static void yyunput ( int c
, char *buf_ptr
);
1521 static void yy_flex_strncpy ( char *, const char *, int );
1524 #ifdef YY_NEED_STRLEN
1525 static int yy_flex_strlen ( const char * );
1530 static int yyinput ( void );
1532 static int input ( void );
1537 /* Amount of stuff to slurp up with each read. */
1538 #ifndef YY_READ_BUF_SIZE
1540 /* On IA-64, the buffer size is 16k, not 8k */
1541 #define YY_READ_BUF_SIZE 16384
1543 #define YY_READ_BUF_SIZE 8192
1544 #endif /* __ia64__ */
1547 /* Copy whatever the last rule matched to the standard output. */
1549 /* This used to be an fputs(), but since the string might contain NUL's,
1550 * we now use fwrite().
1552 #define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
1555 /* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
1556 * is returned in "result".
1559 #define YY_INPUT(buf,result,max_size) \
1560 if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
1564 for ( n = 0; n < max_size && \
1565 (c = ACE_OS::getc( yyin )) != EOF && c != '\n'; ++n ) \
1566 buf[n] = (char) c; \
1568 buf[n++] = (char) c; \
1569 if ( c == EOF && ferror( yyin ) ) \
1570 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1576 while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
1578 if( errno != EINTR) \
1580 YY_FATAL_ERROR( "input in flex scanner failed" ); \
1591 /* No semi-colon after return; correct usage is to write "yyterminate();" -
1592 * we don't want an extra ';' after the "return" because that will cause
1593 * some compilers to complain about unreachable statements.
1596 #define yyterminate() return YY_NULL
1599 /* Number of entries by which start-condition stack grows. */
1600 #ifndef YY_START_STACK_INCR
1601 #define YY_START_STACK_INCR 25
1604 /* Report a fatal error. */
1605 #ifndef YY_FATAL_ERROR
1606 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
1609 /* end tables serialization structures and prototypes */
1611 /* Default declaration of generated scanner - a define so the user can
1612 * easily add parameters.
1615 #define YY_DECL_IS_OURS 1
1617 extern int yylex (void);
1619 #define YY_DECL int yylex (void)
1620 #endif /* !YY_DECL */
1622 /* Code executed at the beginning of each rule, after yytext and yyleng
1625 #ifndef YY_USER_ACTION
1626 #define YY_USER_ACTION
1629 /* Code executed at the end of each rule. */
1631 #define YY_BREAK /*LINTED*/break;
1634 #define YY_RULE_SETUP \
1636 YY_CURRENT_BUFFER_LVALUE->yy_at_bol = \
1637 (yytext[yyleng - 1] == '\n'); \
1640 /** The main scanner function which does all the work.
1644 yy_state_type yy_current_state
;
1645 char *yy_cp
, *yy_bp
;
1656 /* Create the reject buffer large enough to save one state per allowed character. */
1657 if ( ! (yy_state_buf
) )
1658 (yy_state_buf
) = (yy_state_type
*)yyalloc(YY_STATE_BUF_SIZE
);
1659 if ( ! (yy_state_buf
) )
1660 YY_FATAL_ERROR( "out of dynamic memory in yylex()" );
1663 (yy_start
) = 1; /* first start state */
1671 if ( ! YY_CURRENT_BUFFER
) {
1672 yyensure_buffer_stack ();
1673 YY_CURRENT_BUFFER_LVALUE
=
1674 yy_create_buffer( yyin
, YY_BUF_SIZE
);
1677 yy_load_buffer_state( );
1681 #line 123 "fe/idl.ll"
1684 #line 1687 "fe/idl.yy.cpp"
1686 while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */
1688 yy_cp
= (yy_c_buf_p
);
1690 /* Support of yytext. */
1691 *yy_cp
= (yy_hold_char
);
1693 /* yy_bp points to the position in yy_ch_buf of the start of
1698 yy_current_state
= (yy_start
);
1699 yy_current_state
+= YY_AT_BOL();
1701 (yy_state_ptr
) = (yy_state_buf
);
1702 *(yy_state_ptr
)++ = yy_current_state
;
1707 YY_CHAR yy_c
= yy_ec
[YY_SC_TO_UI(*yy_cp
)] ;
1708 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
1710 yy_current_state
= (int) yy_def
[yy_current_state
];
1711 if ( yy_current_state
>= 622 )
1712 yy_c
= yy_meta
[yy_c
];
1714 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + yy_c
];
1715 *(yy_state_ptr
)++ = yy_current_state
;
1718 while ( yy_current_state
!= 621 );
1721 yy_current_state
= *--(yy_state_ptr
);
1722 (yy_lp
) = yy_accept
[yy_current_state
];
1724 find_rule
: /* we branch to this label when backing up */
1726 for ( ; ; ) /* until we find what rule we matched */
1728 if ( (yy_lp
) && (yy_lp
) < yy_accept
[yy_current_state
+ 1] )
1730 yy_act
= yy_acclist
[(yy_lp
)];
1732 (yy_full_match
) = yy_cp
;
1737 yy_current_state
= *--(yy_state_ptr
);
1738 (yy_lp
) = yy_accept
[yy_current_state
];
1741 YY_DO_BEFORE_ACTION
;
1743 do_action
: /* This label is used only to access EOF actions. */
1746 { /* beginning of action switch */
1749 #line 125 "fe/idl.ll"
1754 #line 126 "fe/idl.ll"
1759 #line 127 "fe/idl.ll"
1764 #line 128 "fe/idl.ll"
1769 #line 129 "fe/idl.ll"
1770 return IDL_READONLY
;
1774 #line 130 "fe/idl.ll"
1775 return IDL_ATTRIBUTE
;
1779 #line 131 "fe/idl.ll"
1780 return IDL_EXCEPTION
;
1784 #line 132 "fe/idl.ll"
1789 #line 133 "fe/idl.ll"
1790 return IDL_INTERFACE
;
1794 #line 134 "fe/idl.ll"
1799 #line 135 "fe/idl.ll"
1804 #line 136 "fe/idl.ll"
1809 #line 137 "fe/idl.ll"
1814 #line 138 "fe/idl.ll"
1819 #line 139 "fe/idl.ll"
1824 #line 140 "fe/idl.ll"
1825 return IDL_SEQUENCE
;
1829 #line 141 "fe/idl.ll"
1834 #line 142 "fe/idl.ll"
1839 #line 143 "fe/idl.ll"
1844 #line 144 "fe/idl.ll"
1849 #line 145 "fe/idl.ll"
1854 #line 146 "fe/idl.ll"
1859 #line 147 "fe/idl.ll"
1864 #line 148 "fe/idl.ll"
1869 #line 149 "fe/idl.ll"
1874 #line 150 "fe/idl.ll"
1875 return IDL_UNSIGNED
;
1879 #line 151 "fe/idl.ll"
1884 #line 152 "fe/idl.ll"
1889 #line 153 "fe/idl.ll"
1894 #line 154 "fe/idl.ll"
1899 #line 155 "fe/idl.ll"
1904 #line 156 "fe/idl.ll"
1909 #line 157 "fe/idl.ll"
1914 #line 158 "fe/idl.ll"
1915 return IDL_ABSTRACT
;
1919 #line 160 "fe/idl.ll"
1921 if (idl_global
->idl_version_
>= IDL_VERSION_4
)
1931 #line 168 "fe/idl.ll"
1933 if (idl_global
->idl_version_
>= IDL_VERSION_4
)
1943 #line 176 "fe/idl.ll"
1945 if (idl_global
->idl_version_
>= IDL_VERSION_4
)
1955 #line 184 "fe/idl.ll"
1957 if (idl_global
->idl_version_
>= IDL_VERSION_4
)
1967 #line 192 "fe/idl.ll"
1969 if (idl_global
->idl_version_
>= IDL_VERSION_4
)
1979 #line 200 "fe/idl.ll"
1981 if (idl_global
->idl_version_
>= IDL_VERSION_4
)
1991 #line 208 "fe/idl.ll"
1993 if (idl_global
->idl_version_
>= IDL_VERSION_4
)
2003 #line 216 "fe/idl.ll"
2005 if (idl_global
->idl_version_
>= IDL_VERSION_4
)
2015 #line 225 "fe/idl.ll"
2020 #line 226 "fe/idl.ll"
2025 #line 227 "fe/idl.ll"
2030 #line 228 "fe/idl.ll"
2035 #line 229 "fe/idl.ll"
2036 return IDL_SUPPORTS
;
2040 #line 230 "fe/idl.ll"
2041 return IDL_TRUNCATABLE
;
2045 #line 231 "fe/idl.ll"
2046 return IDL_VALUETYPE
;
2050 #line 233 "fe/idl.ll"
2051 return IDL_COMPONENT
;
2055 #line 234 "fe/idl.ll"
2056 return IDL_CONSUMES
;
2060 #line 235 "fe/idl.ll"
2065 #line 236 "fe/idl.ll"
2066 return IDL_EVENTTYPE
;
2070 #line 237 "fe/idl.ll"
2075 #line 238 "fe/idl.ll"
2076 return IDL_GETRAISES
;
2080 #line 239 "fe/idl.ll"
2085 #line 240 "fe/idl.ll"
2090 #line 241 "fe/idl.ll"
2091 return IDL_MULTIPLE
;
2095 #line 242 "fe/idl.ll"
2096 return IDL_PRIMARYKEY
;
2100 #line 243 "fe/idl.ll"
2101 return IDL_PROVIDES
;
2105 #line 244 "fe/idl.ll"
2106 return IDL_PUBLISHES
;
2110 #line 245 "fe/idl.ll"
2111 return IDL_SETRAISES
;
2115 #line 246 "fe/idl.ll"
2120 #line 247 "fe/idl.ll"
2121 return IDL_TYPEPREFIX
;
2125 #line 248 "fe/idl.ll"
2130 #line 249 "fe/idl.ll"
2135 #line 251 "fe/idl.ll"
2136 return IDL_TYPENAME
;
2140 #line 252 "fe/idl.ll"
2145 #line 253 "fe/idl.ll"
2146 return IDL_MIRRORPORT
;
2150 #line 254 "fe/idl.ll"
2151 return IDL_PORTTYPE
;
2155 #line 255 "fe/idl.ll"
2156 return IDL_CONNECTOR
;
2160 #line 256 "fe/idl.ll"
2165 #line 258 "fe/idl.ll"
2170 #line 259 "fe/idl.ll"
2171 return IDL_FALSETOK
;
2175 #line 261 "fe/idl.ll"
2180 #line 262 "fe/idl.ll"
2185 #line 263 "fe/idl.ll"
2190 #line 264 "fe/idl.ll"
2195 #line 266 "fe/idl.ll"
2196 return IDL_LEFT_SHIFT
;
2200 #line 267 "fe/idl.ll"
2201 return IDL_RIGHT_SHIFT
;
2205 #line 268 "fe/idl.ll"
2207 tao_yylval
.strval
= ACE::strnew ("::");
2208 return IDL_SCOPE_DELIMITOR
;
2212 /* rule 82 can match eol */
2214 #line 273 "fe/idl.ll"
2215 return IDL_ANNOTATION_DECL
; // Allow annotation names that start with "annotation"
2219 #line 274 "fe/idl.ll"
2220 return IDL_ANNOTATION_SYMBOL
;
2224 #line 276 "fe/idl.ll"
2226 // Make sure that this identifier is not a C++ keyword. If it is,
2227 // prepend it with a _cxx_. Lookup in the perfect hash table for C++
2228 // keyword and grab the mapping. BTW, the reason for the odd
2229 // regular expression is to handle EBCDIC, as well as ASCII.
2231 TAO_IDL_CPP_Keyword_Table cpp_key_tbl
;
2232 const TAO_IDL_CPP_Keyword_Entry
*entry
= 0;
2233 if (!idl_global
->preserve_cpp_keywords())
2235 // This check will ensure that escaped C++ keywords will be
2236 // caught and prepended with '_cxx' as non-escaped keywords
2237 // are now prepended with '_cxx_'.
2239 ace_yytext
[0] == '_' ? ace_yytext
+ 1 : ace_yytext
;
2242 cpp_key_tbl
.lookup (tmp
,
2243 static_cast<unsigned int> (ACE_OS::strlen (tmp
)));
2248 tao_yylval
.strval
= ACE::strnew (entry
->mapping_
);
2252 tao_yylval
.strval
= ACE::strnew (ace_yytext
);
2260 #line 309 "fe/idl.ll"
2262 tao_yylval
.dval
= idl_atof (ace_yytext
);
2263 return IDL_FLOATING_PT_LITERAL
;
2268 #line 313 "fe/idl.ll"
2270 tao_yylval
.dval
= idl_atof (ace_yytext
);
2271 return IDL_FLOATING_PT_LITERAL
;
2276 #line 318 "fe/idl.ll"
2278 tao_yylval
.fixval
= ACE_CDR::Fixed::from_string (ace_yytext
);
2279 return IDL_FIXED_PT_LITERAL
;
2284 #line 323 "fe/idl.ll"
2286 tao_yylval
.ival
= idl_atoi (ace_yytext
, 10);
2287 return IDL_INTEGER_LITERAL
;
2292 #line 327 "fe/idl.ll"
2294 tao_yylval
.uival
= idl_atoui (ace_yytext
, 10);
2295 return IDL_UINTEGER_LITERAL
;
2300 #line 331 "fe/idl.ll"
2302 tao_yylval
.ival
= idl_atoi (ace_yytext
, 16);
2303 return IDL_INTEGER_LITERAL
;
2308 #line 335 "fe/idl.ll"
2310 tao_yylval
.uival
= idl_atoui (ace_yytext
, 16);
2311 return IDL_UINTEGER_LITERAL
;
2316 #line 339 "fe/idl.ll"
2318 tao_yylval
.ival
= idl_atoi (ace_yytext
, 8);
2319 return IDL_INTEGER_LITERAL
;
2324 #line 343 "fe/idl.ll"
2326 tao_yylval
.uival
= idl_atoui (ace_yytext
, 8);
2327 return IDL_UINTEGER_LITERAL
;
2331 /* rule 94 can match eol */
2333 #line 348 "fe/idl.ll"
2335 /* Skip the quotes */
2336 char * const tmp
= ace_yytext
;
2337 for (size_t i
= ACE_OS::strlen (tmp
); i
-- != 0; )
2339 if (isspace (tmp
[i
]))
2348 tmp
[ACE_OS::strlen (tmp
) - 1] = '\0';
2349 ACE_NEW_RETURN (tao_yylval
.sval
,
2350 UTL_String (tmp
+ 1, true),
2351 IDL_STRING_LITERAL
);
2352 return IDL_STRING_LITERAL
;
2356 /* rule 95 can match eol */
2358 #line 368 "fe/idl.ll"
2360 /* Skip the bookends */
2361 char * const tmp
= ACE_OS::strdup (ace_yytext
);
2362 for (size_t i
= ACE_OS::strlen (tmp
); i
-- != 0; )
2364 if (isspace (tmp
[i
]))
2373 tmp
[ACE_OS::strlen (tmp
) - 1] = '\0';
2374 tao_yylval
.wsval
= ACE_OS::strdup (idl_wstring_escape_reader (tmp
+ 2));
2376 return IDL_WSTRING_LITERAL
;
2381 #line 387 "fe/idl.ll"
2383 tao_yylval
.cval
= ace_yytext
[1];
2384 return IDL_CHARACTER_LITERAL
;
2389 #line 391 "fe/idl.ll"
2391 // octal character constant
2392 tao_yylval
.cval
= idl_escape_reader (ace_yytext
+ 1);
2393 return IDL_CHARACTER_LITERAL
;
2398 #line 396 "fe/idl.ll"
2400 // hexadecimal character constant
2401 tao_yylval
.cval
= idl_escape_reader (ace_yytext
+ 1);
2402 return IDL_CHARACTER_LITERAL
;
2407 #line 401 "fe/idl.ll"
2409 tao_yylval
.cval
= idl_escape_reader (ace_yytext
+ 1);
2410 return IDL_CHARACTER_LITERAL
;
2415 #line 405 "fe/idl.ll"
2417 // wide character constant
2418 tao_yylval
.wcval
= ace_yytext
[2];
2419 return IDL_WCHAR_LITERAL
;
2424 #line 410 "fe/idl.ll"
2426 // hexadecimal wide character constant
2427 tao_yylval
.wcval
= idl_wchar_escape_reader (ace_yytext
+ 2);
2428 return IDL_WCHAR_LITERAL
;
2432 /* rule 102 can match eol */
2433 #line 416 "fe/idl.ll"
2435 /* rule 103 can match eol */
2437 #line 416 "fe/idl.ll"
2438 {/* remember pragma */
2439 idl_global
->set_lineno (idl_global
->lineno () + 1);
2440 idl_store_pragma (ace_yytext
);
2445 /* rule 104 can match eol */
2446 #line 422 "fe/idl.ll"
2448 /* rule 105 can match eol */
2450 #line 422 "fe/idl.ll"
2452 idl_global
->set_lineno(idl_global
->lineno () + 1);
2457 /* rule 106 can match eol */
2458 #line 427 "fe/idl.ll"
2460 /* rule 107 can match eol */
2462 #line 427 "fe/idl.ll"
2464 idl_parse_line_and_file (ace_yytext
);
2469 /* rule 108 can match eol */
2470 #line 432 "fe/idl.ll"
2472 /* rule 109 can match eol */
2474 #line 432 "fe/idl.ll"
2476 idl_parse_line_and_file (ace_yytext
);
2481 /* rule 110 can match eol */
2482 #line 437 "fe/idl.ll"
2484 /* rule 111 can match eol */
2486 #line 437 "fe/idl.ll"
2488 idl_parse_line_and_file (ace_yytext
);
2493 /* rule 112 can match eol */
2494 #line 442 "fe/idl.ll"
2496 /* rule 113 can match eol */
2498 #line 442 "fe/idl.ll"
2500 idl_parse_line_and_file (ace_yytext
);
2505 /* rule 114 can match eol */
2506 #line 447 "fe/idl.ll"
2508 /* rule 115 can match eol */
2510 #line 447 "fe/idl.ll"
2512 /* ignore cpp ident */
2513 idl_global
->set_lineno (idl_global
->lineno () + 1);
2518 /* rule 116 can match eol */
2520 #line 452 "fe/idl.ll"
2522 /* ignore comments */
2523 idl_global
->set_lineno(idl_global
->lineno () + 1);
2529 #line 457 "fe/idl.ll"
2533 char const c
= yyinput ();
2536 char const next
= yyinput ();
2544 idl_global
->set_lineno (idl_global
->lineno () + 1);
2552 #line 476 "fe/idl.ll"
2556 /* rule 119 can match eol */
2558 #line 477 "fe/idl.ll"
2560 idl_global
->set_lineno (idl_global
->lineno () + 1);
2566 #line 481 "fe/idl.ll"
2567 return ace_yytext
[0];
2571 #line 483 "fe/idl.ll"
2574 #line 2577 "fe/idl.yy.cpp"
2575 case YY_STATE_EOF(INITIAL
):
2578 case YY_END_OF_BUFFER
:
2580 /* Amount of text matched not including the EOB char. */
2581 int yy_amount_of_matched_text
= (int) (yy_cp
- (yytext_ptr
)) - 1;
2583 /* Undo the effects of YY_DO_BEFORE_ACTION. */
2584 *yy_cp
= (yy_hold_char
);
2585 YY_RESTORE_YY_MORE_OFFSET
2587 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_NEW
)
2589 /* We're scanning a new file or input source. It's
2590 * possible that this happened because the user
2591 * just pointed yyin at a new source and called
2592 * yylex(). If so, then we have to assure
2593 * consistency between YY_CURRENT_BUFFER and our
2594 * globals. Here is the right place to do so, because
2595 * this is the first action (other than possibly a
2596 * back-up) that will match for the new input source.
2598 (yy_n_chars
) = YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
2599 YY_CURRENT_BUFFER_LVALUE
->yy_input_file
= yyin
;
2600 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
= YY_BUFFER_NORMAL
;
2603 /* Note that here we test for yy_c_buf_p "<=" to the position
2604 * of the first EOB in the buffer, since yy_c_buf_p will
2605 * already have been incremented past the NUL character
2606 * (since all states make transitions on EOB to the
2607 * end-of-buffer state). Contrast this with the test
2610 if ( (yy_c_buf_p
) <= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[(yy_n_chars
)] )
2611 { /* This was really a NUL. */
2612 yy_state_type yy_next_state
;
2614 (yy_c_buf_p
) = (yytext_ptr
) + yy_amount_of_matched_text
;
2616 yy_current_state
= yy_get_previous_state( );
2618 /* Okay, we're now positioned to make the NUL
2619 * transition. We couldn't have
2620 * yy_get_previous_state() go ahead and do it
2621 * for us because it doesn't know how to deal
2622 * with the possibility of jamming (and we don't
2623 * want to build jamming into it because then it
2624 * will run more slowly).
2627 yy_next_state
= yy_try_NUL_trans( yy_current_state
);
2629 yy_bp
= (yytext_ptr
) + YY_MORE_ADJ
;
2631 if ( yy_next_state
)
2633 /* Consume the NUL. */
2634 yy_cp
= ++(yy_c_buf_p
);
2635 yy_current_state
= yy_next_state
;
2641 yy_cp
= (yy_c_buf_p
);
2642 goto yy_find_action
;
2646 else switch ( yy_get_next_buffer( ) )
2648 case EOB_ACT_END_OF_FILE
:
2650 (yy_did_buffer_switch_on_eof
) = 0;
2654 /* Note: because we've taken care in
2655 * yy_get_next_buffer() to have set up
2656 * yytext, we can now set up
2657 * yy_c_buf_p so that if some total
2658 * hoser (like flex itself) wants to
2659 * call the scanner after we return the
2660 * YY_NULL, it'll still work - another
2661 * YY_NULL will get returned.
2663 (yy_c_buf_p
) = (yytext_ptr
) + YY_MORE_ADJ
;
2665 yy_act
= YY_STATE_EOF(YY_START
);
2671 if ( ! (yy_did_buffer_switch_on_eof
) )
2677 case EOB_ACT_CONTINUE_SCAN
:
2679 (yytext_ptr
) + yy_amount_of_matched_text
;
2681 yy_current_state
= yy_get_previous_state( );
2683 yy_cp
= (yy_c_buf_p
);
2684 yy_bp
= (yytext_ptr
) + YY_MORE_ADJ
;
2687 case EOB_ACT_LAST_MATCH
:
2689 &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[(yy_n_chars
)];
2691 yy_current_state
= yy_get_previous_state( );
2693 yy_cp
= (yy_c_buf_p
);
2694 yy_bp
= (yytext_ptr
) + YY_MORE_ADJ
;
2695 goto yy_find_action
;
2702 "fatal flex scanner internal error--no action found" );
2703 } /* end of action switch */
2704 } /* end of scanning one token */
2705 } /* end of user's declarations */
2706 } /* end of yylex */
2708 /* yy_get_next_buffer - try to read in a new buffer
2710 * Returns a code representing an action:
2711 * EOB_ACT_LAST_MATCH -
2712 * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
2713 * EOB_ACT_END_OF_FILE - end of file
2715 static int yy_get_next_buffer (void)
2717 char *dest
= YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
;
2718 char *source
= (yytext_ptr
);
2719 int number_to_move
, i
;
2722 if ( (yy_c_buf_p
) > &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[(yy_n_chars
) + 1] )
2724 "fatal flex scanner internal error--end of buffer missed" );
2726 if ( YY_CURRENT_BUFFER_LVALUE
->yy_fill_buffer
== 0 )
2727 { /* Don't try to fill the buffer, so this is an EOF. */
2728 if ( (yy_c_buf_p
) - (yytext_ptr
) - YY_MORE_ADJ
== 1 )
2730 /* We matched a single character, the EOB, so
2731 * treat this as a final EOF.
2733 return EOB_ACT_END_OF_FILE
;
2738 /* We matched some text prior to the EOB, first
2741 return EOB_ACT_LAST_MATCH
;
2745 /* Try to read more data. */
2747 /* First move last chars to start of buffer. */
2748 number_to_move
= (int) ((yy_c_buf_p
) - (yytext_ptr
) - 1);
2750 for ( i
= 0; i
< number_to_move
; ++i
)
2751 *(dest
++) = *(source
++);
2753 if ( YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
== YY_BUFFER_EOF_PENDING
)
2754 /* don't do the read, it's not guaranteed to return an EOF,
2757 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= (yy_n_chars
) = 0;
2762 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
- number_to_move
- 1;
2764 while ( num_to_read
<= 0 )
2765 { /* Not enough room in the buffer - grow it. */
2768 "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
2772 if ( num_to_read
> YY_READ_BUF_SIZE
)
2773 num_to_read
= YY_READ_BUF_SIZE
;
2775 /* Read in more data. */
2776 YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[number_to_move
]),
2777 (yy_n_chars
), num_to_read
);
2779 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= (yy_n_chars
);
2782 if ( (yy_n_chars
) == 0 )
2784 if ( number_to_move
== YY_MORE_ADJ
)
2786 ret_val
= EOB_ACT_END_OF_FILE
;
2792 ret_val
= EOB_ACT_LAST_MATCH
;
2793 YY_CURRENT_BUFFER_LVALUE
->yy_buffer_status
=
2794 YY_BUFFER_EOF_PENDING
;
2799 ret_val
= EOB_ACT_CONTINUE_SCAN
;
2801 if (((yy_n_chars
) + number_to_move
) > YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
) {
2802 /* Extend the array by 50%, plus the number we really need. */
2803 int new_size
= (yy_n_chars
) + number_to_move
+ ((yy_n_chars
) >> 1);
2804 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
= (char *) yyrealloc(
2805 (void *) YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
, (yy_size_t
) new_size
);
2806 if ( ! YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
)
2807 YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
2808 /* "- 2" to take care of EOB's */
2809 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
= (int) (new_size
- 2);
2812 (yy_n_chars
) += number_to_move
;
2813 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[(yy_n_chars
)] = YY_END_OF_BUFFER_CHAR
;
2814 YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[(yy_n_chars
) + 1] = YY_END_OF_BUFFER_CHAR
;
2816 (yytext_ptr
) = &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[0];
2821 /* yy_get_previous_state - get the state just before the EOB char was reached */
2823 static yy_state_type
yy_get_previous_state (void)
2825 yy_state_type yy_current_state
;
2828 yy_current_state
= (yy_start
);
2829 yy_current_state
+= YY_AT_BOL();
2831 (yy_state_ptr
) = (yy_state_buf
);
2832 *(yy_state_ptr
)++ = yy_current_state
;
2834 for ( yy_cp
= (yytext_ptr
) + YY_MORE_ADJ
; yy_cp
< (yy_c_buf_p
); ++yy_cp
)
2836 YY_CHAR yy_c
= (*yy_cp
? yy_ec
[YY_SC_TO_UI(*yy_cp
)] : 1);
2837 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2839 yy_current_state
= (int) yy_def
[yy_current_state
];
2840 if ( yy_current_state
>= 622 )
2841 yy_c
= yy_meta
[yy_c
];
2843 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + yy_c
];
2844 *(yy_state_ptr
)++ = yy_current_state
;
2847 return yy_current_state
;
2850 /* yy_try_NUL_trans - try to make a transition on the NUL character
2853 * next_state = yy_try_NUL_trans( current_state );
2855 static yy_state_type
yy_try_NUL_trans (yy_state_type yy_current_state
)
2860 while ( yy_chk
[yy_base
[yy_current_state
] + yy_c
] != yy_current_state
)
2862 yy_current_state
= (int) yy_def
[yy_current_state
];
2863 if ( yy_current_state
>= 622 )
2864 yy_c
= yy_meta
[yy_c
];
2866 yy_current_state
= yy_nxt
[yy_base
[yy_current_state
] + yy_c
];
2867 yy_is_jam
= (yy_current_state
== 621);
2869 *(yy_state_ptr
)++ = yy_current_state
;
2871 return yy_is_jam
? 0 : yy_current_state
;
2876 static void yyunput (int c
, char * yy_bp
)
2880 yy_cp
= (yy_c_buf_p
);
2882 /* undo effects of setting up yytext */
2883 *yy_cp
= (yy_hold_char
);
2885 if ( yy_cp
< YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
+ 2 )
2886 { /* need to shift things up to make room */
2887 /* +2 for EOB chars. */
2888 int number_to_move
= (yy_n_chars
) + 2;
2889 char *dest
= &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[
2890 YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
+ 2];
2892 &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[number_to_move
];
2894 while ( source
> YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
)
2895 *--dest
= *--source
;
2897 yy_cp
+= (int) (dest
- source
);
2898 yy_bp
+= (int) (dest
- source
);
2899 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
=
2900 (yy_n_chars
) = (int) YY_CURRENT_BUFFER_LVALUE
->yy_buf_size
;
2902 if ( yy_cp
< YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
+ 2 )
2903 YY_FATAL_ERROR( "flex scanner push-back overflow" );
2906 *--yy_cp
= (char) c
;
2908 (yytext_ptr
) = yy_bp
;
2909 (yy_hold_char
) = *yy_cp
;
2910 (yy_c_buf_p
) = yy_cp
;
2917 static int yyinput (void)
2919 static int input (void)
2925 *(yy_c_buf_p
) = (yy_hold_char
);
2927 if ( *(yy_c_buf_p
) == YY_END_OF_BUFFER_CHAR
)
2929 /* yy_c_buf_p now points to the character we want to return.
2930 * If this occurs *before* the EOB characters, then it's a
2931 * valid NUL; if not, then we've hit the end of the buffer.
2933 if ( (yy_c_buf_p
) < &YY_CURRENT_BUFFER_LVALUE
->yy_ch_buf
[(yy_n_chars
)] )
2934 /* This was really a NUL. */
2935 *(yy_c_buf_p
) = '\0';
2938 { /* need more input */
2939 int offset
= (int) ((yy_c_buf_p
) - (yytext_ptr
));
2942 switch ( yy_get_next_buffer( ) )
2944 case EOB_ACT_LAST_MATCH
:
2945 /* This happens because yy_g_n_b()
2946 * sees that we've accumulated a
2947 * token and flags that we need to
2948 * try matching the token before
2949 * proceeding. But for input(),
2950 * there's no matching to consider.
2951 * So convert the EOB_ACT_LAST_MATCH
2952 * to EOB_ACT_END_OF_FILE.
2955 /* Reset buffer status. */
2960 case EOB_ACT_END_OF_FILE
:
2965 if ( ! (yy_did_buffer_switch_on_eof
) )
2974 case EOB_ACT_CONTINUE_SCAN
:
2975 (yy_c_buf_p
) = (yytext_ptr
) + offset
;
2981 c
= *(unsigned char *) (yy_c_buf_p
); /* cast for 8-bit char's */
2982 *(yy_c_buf_p
) = '\0'; /* preserve yytext */
2983 (yy_hold_char
) = *++(yy_c_buf_p
);
2985 YY_CURRENT_BUFFER_LVALUE
->yy_at_bol
= (c
== '\n');
2989 #endif /* ifndef YY_NO_INPUT */
2991 /** Immediately switch to a different input stream.
2992 * @param input_file A readable stream.
2994 * @note This function does not reset the start condition to @c INITIAL .
2996 void yyrestart (FILE * input_file
)
2999 if ( ! YY_CURRENT_BUFFER
){
3000 yyensure_buffer_stack ();
3001 YY_CURRENT_BUFFER_LVALUE
=
3002 yy_create_buffer( yyin
, YY_BUF_SIZE
);
3005 yy_init_buffer( YY_CURRENT_BUFFER
, input_file
);
3006 yy_load_buffer_state( );
3009 /** Switch to a different input buffer.
3010 * @param new_buffer The new input buffer.
3013 void yy_switch_to_buffer (YY_BUFFER_STATE new_buffer
)
3016 /* TODO. We should be able to replace this entire function body
3018 * yypop_buffer_state();
3019 * yypush_buffer_state(new_buffer);
3021 yyensure_buffer_stack ();
3022 if ( YY_CURRENT_BUFFER
== new_buffer
)
3025 if ( YY_CURRENT_BUFFER
)
3027 /* Flush out information for old buffer. */
3028 *(yy_c_buf_p
) = (yy_hold_char
);
3029 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= (yy_c_buf_p
);
3030 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= (yy_n_chars
);
3033 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
3034 yy_load_buffer_state( );
3036 /* We don't actually know whether we did this switch during
3037 * EOF (yywrap()) processing, but the only time this flag
3038 * is looked at is after yywrap() is called, so it's safe
3039 * to go ahead and always set it.
3041 (yy_did_buffer_switch_on_eof
) = 1;
3044 static void yy_load_buffer_state (void)
3046 (yy_n_chars
) = YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
;
3047 (yytext_ptr
) = (yy_c_buf_p
) = YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
;
3048 yyin
= YY_CURRENT_BUFFER_LVALUE
->yy_input_file
;
3049 (yy_hold_char
) = *(yy_c_buf_p
);
3052 /** Allocate and initialize an input buffer state.
3053 * @param file A readable stream.
3054 * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
3056 * @return the allocated buffer state.
3058 YY_BUFFER_STATE
yy_create_buffer (FILE * file
, int size
)
3062 b
= (YY_BUFFER_STATE
) yyalloc( sizeof( struct yy_buffer_state
) );
3064 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3066 b
->yy_buf_size
= size
;
3068 /* yy_ch_buf has to be 2 characters longer than the size given because
3069 * we need to put in 2 end-of-buffer characters.
3071 b
->yy_ch_buf
= (char *) yyalloc( (yy_size_t
) (b
->yy_buf_size
+ 2) );
3072 if ( ! b
->yy_ch_buf
)
3073 YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
3075 b
->yy_is_our_buffer
= 1;
3077 yy_init_buffer( b
, file
);
3082 /** Destroy the buffer.
3083 * @param b a buffer created with yy_create_buffer()
3086 void yy_delete_buffer (YY_BUFFER_STATE b
)
3092 if ( b
== YY_CURRENT_BUFFER
) /* Not sure if we should pop here. */
3093 YY_CURRENT_BUFFER_LVALUE
= (YY_BUFFER_STATE
) 0;
3095 if ( b
->yy_is_our_buffer
)
3096 yyfree( (void *) b
->yy_ch_buf
);
3098 yyfree( (void *) b
);
3101 /* Initializes or reinitializes a buffer.
3102 * This function is sometimes called more than once on the same buffer,
3103 * such as during a yyrestart() or at EOF.
3105 static void yy_init_buffer (YY_BUFFER_STATE b
, FILE * file
)
3110 yy_flush_buffer( b
);
3112 b
->yy_input_file
= file
;
3113 b
->yy_fill_buffer
= 1;
3115 /* If b is the current buffer, then yy_init_buffer was _probably_
3116 * called from yyrestart() or through yy_get_next_buffer.
3117 * In that case, we don't want to reset the lineno or column.
3119 if (b
!= YY_CURRENT_BUFFER
){
3120 b
->yy_bs_lineno
= 1;
3121 b
->yy_bs_column
= 0;
3124 b
->yy_is_interactive
= 0;
3129 /** Discard all buffered characters. On the next scan, YY_INPUT will be called.
3130 * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
3133 void yy_flush_buffer (YY_BUFFER_STATE b
)
3140 /* We always need two end-of-buffer characters. The first causes
3141 * a transition to the end-of-buffer state. The second causes
3142 * a jam in that state.
3144 b
->yy_ch_buf
[0] = YY_END_OF_BUFFER_CHAR
;
3145 b
->yy_ch_buf
[1] = YY_END_OF_BUFFER_CHAR
;
3147 b
->yy_buf_pos
= &b
->yy_ch_buf
[0];
3150 b
->yy_buffer_status
= YY_BUFFER_NEW
;
3152 if ( b
== YY_CURRENT_BUFFER
)
3153 yy_load_buffer_state( );
3156 /** Pushes the new state onto the stack. The new state becomes
3157 * the current state. This function will allocate the stack
3159 * @param new_buffer The new state.
3162 void yypush_buffer_state (YY_BUFFER_STATE new_buffer
)
3164 if (new_buffer
== 0)
3167 yyensure_buffer_stack();
3169 /* This block is copied from yy_switch_to_buffer. */
3170 if ( YY_CURRENT_BUFFER
)
3172 /* Flush out information for old buffer. */
3173 *(yy_c_buf_p
) = (yy_hold_char
);
3174 YY_CURRENT_BUFFER_LVALUE
->yy_buf_pos
= (yy_c_buf_p
);
3175 YY_CURRENT_BUFFER_LVALUE
->yy_n_chars
= (yy_n_chars
);
3178 /* Only push if top exists. Otherwise, replace top. */
3179 if (YY_CURRENT_BUFFER
)
3180 (yy_buffer_stack_top
)++;
3181 YY_CURRENT_BUFFER_LVALUE
= new_buffer
;
3183 /* copied from yy_switch_to_buffer. */
3184 yy_load_buffer_state( );
3185 (yy_did_buffer_switch_on_eof
) = 1;
3188 /** Removes and deletes the top of the stack, if present.
3189 * The next element becomes the new top.
3192 void yypop_buffer_state (void)
3194 if (!YY_CURRENT_BUFFER
)
3197 yy_delete_buffer(YY_CURRENT_BUFFER
);
3198 YY_CURRENT_BUFFER_LVALUE
= 0;
3199 if ((yy_buffer_stack_top
) > 0)
3200 --(yy_buffer_stack_top
);
3202 if (YY_CURRENT_BUFFER
) {
3203 yy_load_buffer_state( );
3204 (yy_did_buffer_switch_on_eof
) = 1;
3208 /* Allocates the stack if it does not exist.
3209 * Guarantees space for at least one push.
3211 static void yyensure_buffer_stack (void)
3213 yy_size_t num_to_alloc
;
3215 if (!(yy_buffer_stack
)) {
3217 /* First allocation is just for 2 elements, since we don't know if this
3218 * scanner will even need a stack. We use 2 instead of 1 to avoid an
3219 * immediate realloc on the next call.
3221 num_to_alloc
= 1; /* After all that talk, this was set to 1 anyways... */
3222 (yy_buffer_stack
) = (struct yy_buffer_state
**)yyalloc
3223 (num_to_alloc
* sizeof(struct yy_buffer_state
*)
3225 if ( ! (yy_buffer_stack
) )
3226 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3228 memset((yy_buffer_stack
), 0, num_to_alloc
* sizeof(struct yy_buffer_state
*));
3230 (yy_buffer_stack_max
) = num_to_alloc
;
3231 (yy_buffer_stack_top
) = 0;
3235 if ((yy_buffer_stack_top
) >= ((yy_buffer_stack_max
)) - 1){
3237 /* Increase the buffer to prepare for a possible push. */
3238 yy_size_t grow_size
= 8 /* arbitrary grow size */;
3240 num_to_alloc
= (yy_buffer_stack_max
) + grow_size
;
3241 (yy_buffer_stack
) = (struct yy_buffer_state
**)yyrealloc
3243 num_to_alloc
* sizeof(struct yy_buffer_state
*)
3245 if ( ! (yy_buffer_stack
) )
3246 YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
3248 /* zero only the new slots.*/
3249 memset((yy_buffer_stack
) + (yy_buffer_stack_max
), 0, grow_size
* sizeof(struct yy_buffer_state
*));
3250 (yy_buffer_stack_max
) = num_to_alloc
;
3254 /** Setup the input buffer state to scan directly from a user-specified character buffer.
3255 * @param base the character buffer
3256 * @param size the size in bytes of the character buffer
3258 * @return the newly allocated buffer state object.
3260 YY_BUFFER_STATE
yy_scan_buffer (char * base
, yy_size_t size
)
3265 base
[size
-2] != YY_END_OF_BUFFER_CHAR
||
3266 base
[size
-1] != YY_END_OF_BUFFER_CHAR
)
3267 /* They forgot to leave room for the EOB's. */
3270 b
= (YY_BUFFER_STATE
) yyalloc( sizeof( struct yy_buffer_state
) );
3272 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
3274 b
->yy_buf_size
= (int) (size
- 2); /* "- 2" to take care of EOB's */
3275 b
->yy_buf_pos
= b
->yy_ch_buf
= base
;
3276 b
->yy_is_our_buffer
= 0;
3277 b
->yy_input_file
= 0;
3278 b
->yy_n_chars
= b
->yy_buf_size
;
3279 b
->yy_is_interactive
= 0;
3281 b
->yy_fill_buffer
= 0;
3282 b
->yy_buffer_status
= YY_BUFFER_NEW
;
3284 yy_switch_to_buffer( b
);
3289 /** Setup the input buffer state to scan a string. The next call to yylex() will
3290 * scan from a @e copy of @a str.
3291 * @param yystr a NUL-terminated string to scan
3293 * @return the newly allocated buffer state object.
3294 * @note If you want to scan bytes that may contain NUL values, then use
3295 * yy_scan_bytes() instead.
3297 YY_BUFFER_STATE
yy_scan_string (const char * yystr
)
3300 return yy_scan_bytes( yystr
, (int) strlen(yystr
) );
3303 /** Setup the input buffer state to scan the given bytes. The next call to yylex() will
3304 * scan from a @e copy of @a bytes.
3305 * @param yybytes the byte buffer to scan
3306 * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
3308 * @return the newly allocated buffer state object.
3310 YY_BUFFER_STATE
yy_scan_bytes (const char * yybytes
, int _yybytes_len
)
3317 /* Get memory for full buffer, including space for trailing EOB's. */
3318 n
= (yy_size_t
) (_yybytes_len
+ 2);
3319 buf
= (char *) yyalloc( n
);
3321 YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
3323 for ( i
= 0; i
< _yybytes_len
; ++i
)
3324 buf
[i
] = yybytes
[i
];
3326 buf
[_yybytes_len
] = buf
[_yybytes_len
+1] = YY_END_OF_BUFFER_CHAR
;
3328 b
= yy_scan_buffer( buf
, n
);
3330 YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
3332 /* It's okay to grow etc. this buffer, and we should throw it
3333 * away when we're done.
3335 b
->yy_is_our_buffer
= 1;
3340 #ifndef YY_EXIT_FAILURE
3341 #define YY_EXIT_FAILURE 2
3344 static void yynoreturn
yy_fatal_error (const char* msg
)
3346 fprintf( stderr
, "%s\n", msg
);
3347 exit( YY_EXIT_FAILURE
);
3350 /* Redefine yyless() so it works in section 3 code. */
3356 /* Undo effects of setting up yytext. */ \
3357 int yyless_macro_arg = (n); \
3358 YY_LESS_LINENO(yyless_macro_arg);\
3359 yytext[yyleng] = (yy_hold_char); \
3360 (yy_c_buf_p) = yytext + yyless_macro_arg; \
3361 (yy_hold_char) = *(yy_c_buf_p); \
3362 *(yy_c_buf_p) = '\0'; \
3363 yyleng = yyless_macro_arg; \
3367 /* Accessor methods (get/set functions) to struct members. */
3369 /** Get the current line number.
3372 int yyget_lineno (void)
3378 /** Get the input stream.
3381 FILE *yyget_in (void)
3386 /** Get the output stream.
3389 FILE *yyget_out (void)
3394 /** Get the length of the current token.
3397 int yyget_leng (void)
3402 /** Get the current token.
3406 char *yyget_text (void)
3411 /** Set the current line number.
3412 * @param _line_number line number
3415 void yyset_lineno (int _line_number
)
3418 yylineno
= _line_number
;
3421 /** Set the input stream. This does not discard the current
3423 * @param _in_str A readable stream.
3425 * @see yy_switch_to_buffer
3427 void yyset_in (FILE * _in_str
)
3432 void yyset_out (FILE * _out_str
)
3437 int yyget_debug (void)
3439 return yy_flex_debug
;
3442 void yyset_debug (int _bdebug
)
3444 yy_flex_debug
= _bdebug
;
3447 static int yy_init_globals (void)
3449 /* Initialization is the same as for the non-reentrant scanner.
3450 * This function is called from yylex_destroy(), so don't allocate here.
3453 (yy_buffer_stack
) = 0;
3454 (yy_buffer_stack_top
) = 0;
3455 (yy_buffer_stack_max
) = 0;
3462 (yy_full_match
) = 0;
3465 /* Defined in main.c */
3474 /* For future reference: Set errno on error, since we are called by
3480 /* yylex_destroy is for both reentrant and non-reentrant scanners. */
3481 int yylex_destroy (void)
3484 /* Pop the buffer stack, destroying each element. */
3485 while(YY_CURRENT_BUFFER
){
3486 yy_delete_buffer( YY_CURRENT_BUFFER
);
3487 YY_CURRENT_BUFFER_LVALUE
= 0;
3488 yypop_buffer_state();
3491 /* Destroy the stack itself. */
3492 yyfree((yy_buffer_stack
) );
3493 (yy_buffer_stack
) = 0;
3495 yyfree ( (yy_state_buf
) );
3498 /* Reset the globals. This is important in a non-reentrant scanner so the next time
3499 * yylex() is called, initialization will occur. */
3506 * Internal utility routines.
3510 static void yy_flex_strncpy (char* s1
, const char * s2
, int n
)
3514 for ( i
= 0; i
< n
; ++i
)
3519 #ifdef YY_NEED_STRLEN
3520 static int yy_flex_strlen (const char * s
)
3523 for ( n
= 0; s
[n
]; ++n
)
3530 void *yyalloc (yy_size_t size
)
3532 return malloc(size
);
3535 void *yyrealloc (void * ptr
, yy_size_t size
)
3538 /* The cast to (char *) in the following accommodates both
3539 * implementations that use char* generic pointers, and those
3540 * that use void* generic pointers. It works with the latter
3541 * because both ANSI C and C++ allow castless assignment from
3542 * any pointer type to void*, and deal with argument conversions
3543 * as though doing an assignment.
3545 return realloc(ptr
, size
);
3548 void yyfree (void * ptr
)
3550 free( (char *) ptr
); /* see yyrealloc() for (char *) cast */
3553 #define YYTABLES_NAME "yytables"
3555 #line 483 "fe/idl.ll"
3560 same_file (char *path1
, char *path2
)
3562 char fullpath1
[MAXPATHLEN
+ 1] = {0};
3563 char fullpath2
[MAXPATHLEN
+ 1] = {0};
3565 char *fp1
= ACE_OS::realpath (path1
, fullpath1
);
3566 char *fp2
= ACE_OS::realpath (path2
, fullpath2
);
3569 (fp1
== 0 || fp2
== 0)
3571 : FE_Utils::path_cmp (fullpath1
,fullpath2
) == 0;
3574 // Parse a #line statement generated by the C preprocessor
3576 idl_parse_line_and_file (char *buf
)
3582 // Skip initial '#'.
3592 // Check to see if we're running under the screwy Microsoft scheme
3593 // of putting #line num instead of #num.
3595 if (ACE_OS::strncmp (r
, "line", 4) == 0)
3600 // Find line number.
3601 while (isspace (*r
))
3608 for (; isdigit (*r
); ++r
)
3614 idl_global
->set_lineno ((long) idl_atoui (h
, 10));
3616 // Find file name, if present.
3617 for (; *r
!= '"'; ++r
)
3619 if (*r
== '\n' || *r
== '\0')
3627 for (; *r
!= '"'; ++r
)
3633 UTL_String
*tmp
= 0;
3637 ACE_ERROR ((LM_ERROR
,
3638 ACE_TEXT ("IDL: No input files\n")));
3647 // Put Microsoft-style pathnames into a canonical form.
3648 for (i
= 0, j
= 0; h
[j
] != '\0'; i
++, j
++)
3650 if (h
[j
] == '\\' && h
[j
+ 1] == '\\')
3659 #if defined (ACE_OPENVMS)
3660 // translate this into *nix format as the OpenVMS preprocessor
3661 // possibly produced VMS-style paths here.
3662 char trans_path
[MAXPATHLEN
] = "";
3663 char *temp_h
= IDL_GlobalData::translateName (h
, trans_path
);
3668 ACE_ERROR ((LM_ERROR
,
3669 ACE_TEXT ("Unable to construct full file pathname\n")));
3674 UTL_String (h
, true));
3675 idl_global
->update_prefix (tmp
->get_string ());
3676 idl_global
->set_filename (tmp
);
3679 UTL_String
*fname
= idl_global
->filename ();
3680 bool in_main_file
= false;
3682 bool is_real_filename
=
3683 fname
->compare (idl_global
->real_filename ())
3684 || same_file (fname
->get_string(),
3685 idl_global
->real_filename ()->get_string ());
3687 bool is_main_filename
= false;
3689 if (!is_real_filename
)
3691 #if defined (ACE_OPENVMS)
3692 char full_path
[MAXPATHLEN
] = "";
3693 char *full_fname
= ACE_OS::realpath (fname
->get_string (), full_path
);
3694 // I don't see the benefit of using ->compare since this is targeted at IDL identifiers
3695 // not at filenames and in the case of OpenVMS (case-insensitive filesystem) gets really
3696 // problematic as filenames retrieved through different mechanisms may give different
3698 is_main_filename
= FE_Utils::path_cmp (idl_global
->main_filename ()->get_string (),
3702 fname
->compare (idl_global
->main_filename ())
3703 || same_file (fname
->get_string (),
3704 idl_global
->main_filename ()->get_string ());
3708 if (is_real_filename
|| is_main_filename
)
3710 in_main_file
= true;
3713 idl_global
->set_in_main_file (in_main_file
);
3715 // Strip off any command line -I prefix that may have been added
3716 // by the preprocessor.
3717 if (!(idl_global
->in_main_file ()) && idl_global
->import ())
3721 FE_Utils::stripped_preproc_include (
3722 fname
->get_string ()), true));
3724 // This call also manages the #pragma prefix.
3725 idl_global
->store_include_file_name (nm
);
3729 // Store a #pragma line into the list of pragmas
3731 idl_store_pragma (char *buf
)
3736 // Remove all the blanks between the '#' and the 'pragma'.
3745 // This copies the crunched string back to the original, and
3746 // also compensates for the behavior of the Sun preprocessor,
3747 // which put spaces around the double colons of a non-quoted
3748 // scoped name, a case which is possible in #pragma version.
3749 // Also eats whitespace, which some preprocessors (for example
3750 // Intel) don't automatically do.
3753 if (*sp
== ' ' && (*(sp
+ 1) == ':' || *(sp
+ 1) == ' '))
3757 else if (*sp
== ':' && *(sp
+ 1) == ' ')
3773 // The '\n' is still <crunched> spaces too far away, with
3774 // garbage characters in between.
3778 if (ACE_OS::strstr (buf
+ 8, "import") != 0)
3780 idl_global
->set_import (true);
3784 if (ACE_OS::strstr (buf
+ 8, "include") != 0)
3786 idl_global
->set_import (false);
3790 if (ACE_OS::strncmp (buf
+ 8, "prefix", 6) == 0)
3792 char *new_prefix
= idl_get_pragma_string (buf
);
3794 if (new_prefix
!= 0)
3796 unsigned long depth
= idl_global
->scopes ().depth ();
3798 // We replace the prefix only if there is a prefix already
3799 // associated with this file, otherwise we add the prefix.
3800 char *ext_id
= idl_global
->filename ()->get_string ();
3801 ACE_Hash_Map_Entry
<char *, char *> *entry
= 0;
3803 idl_global
->file_prefixes ().find (ext_id
, entry
);
3807 if (ACE_OS::strcmp (entry
->int_id_
, "") != 0)
3810 idl_global
->pragma_prefixes ().pop (trash
);
3813 else if (depth
== 1)
3815 // Remove the default "" and bind the new prefix.
3816 ACE::strdelete (entry
->ext_id_
);
3817 ACE::strdelete (entry
->int_id_
);
3818 (void) idl_global
->file_prefixes ().unbind (entry
);
3819 (void) idl_global
->file_prefixes ().bind (ACE::strnew (ext_id
),
3820 ACE::strnew (new_prefix
));
3824 UTL_Scope
*top_scope
= idl_global
->scopes ().top ();
3828 top_scope
->has_prefix (true);
3829 ScopeAsDecl (top_scope
)->prefix_scope (top_scope
);
3832 idl_global
->pragma_prefixes ().push (new_prefix
);
3836 idl_global
->root ()->prefix (new_prefix
);
3839 if (idl_global
->in_main_file ())
3841 idl_global
->root ()->set_imported (false);
3842 top_scope
->has_prefix (true);
3847 (void) idl_global
->file_prefixes ().bind (ACE::strnew (ext_id
),
3848 ACE::strnew (new_prefix
));
3852 else if (ACE_OS::strncmp (buf
+ 8, "version", 7) == 0)
3854 char *tmp
= buf
+ 16;
3856 while (*tmp
== ' ' || *tmp
== '\t')
3861 char *number
= ACE_OS::strchr (tmp
, ' ');
3865 number
= ACE_OS::strchr (tmp
, '\t');
3868 // Used later to trim the type string.
3869 ptrdiff_t cutoff
= number
- tmp
;
3871 // Most likely this means there is only a version number
3872 // without an identifier to apply it to.
3875 const char *msg
= "no identifier or scoped name";
3876 idl_global
->err ()->version_syntax_error (msg
);
3880 while (*number
== ' ' || *number
== '\t')
3885 size_t len
= ACE_OS::strlen (number
);
3887 // For some reason, the SunCC preprocessor adds a trailing space, which
3888 // messes with idl_valid_version() below, so we check and remove.
3889 while (number
[len
- 1] == ' ')
3891 number
[len
- 1] = '\0';
3892 len
= ACE_OS::strlen (number
);
3895 // Trim the type string after trimming the number string.
3898 // This call adds a proper null terminator to tmp, so no need to
3900 AST_Decl
*d
= idl_find_node (tmp
);
3907 if (!idl_valid_version (number
))
3909 idl_global
->err ()->version_number_error (number
);
3913 d
->version (ACE::strnew (number
));
3915 else if (ACE_OS::strncmp (buf
+ 8, "ident", 5) == 0)
3917 idl_global
->ident_string (buf
+ 8);
3919 else if (ACE_OS::strncmp (buf
+ 8, "ID", 2) == 0)
3921 char *tmp
= buf
+ 11;
3928 ACE_CString
work (tmp
);
3929 work
= work
.substr (0, work
.find (' '));
3931 AST_Decl
*d
= idl_find_node (work
.c_str ());
3938 char *new_id
= idl_get_pragma_string (buf
);
3942 if (d
->typeid_set ())
3944 idl_global
->err ()->id_reset_error (d
->repoID (),
3950 d
->typeid_set (true);
3953 else if (ACE_OS::strncmp (buf
+ 8, "DCPS_DATA_TYPE", 14) == 0)
3955 char *sample_type
= idl_get_pragma_string (buf
);
3956 idl_global
->add_dcps_data_type (sample_type
);
3958 // Delete sample_type since add_dcps_data_type() doesn't take its ownership.
3959 delete [] sample_type
;
3961 else if (ACE_OS::strncmp (buf
+ 8, "DCPS_DATA_KEY", 13) == 0)
3963 char *tmp
= idl_get_pragma_string (buf
);
3965 // Split up data type and key strings
3966 char *sample_type
= tmp
;
3968 while (*tmp
&& !isspace (*tmp
))
3973 while (isspace (*tmp
))
3981 if (!idl_global
->add_dcps_data_key (sample_type
, key
))
3983 ACE_ERROR((LM_ERROR
, "DCPS_DATA_TYPE \"%C\" not found for key \"%C\"\n",
3987 // Delete sample_type since add_dcps_data_key() doesn't take its ownership.
3988 delete [] sample_type
;
3990 else if (ACE_OS::strncmp (buf
+ 8, "DCPS_DATA_SEQUENCE_TYPE", 23) == 0)
3992 char *seq_type
= idl_get_pragma_string (buf
);
3993 idl_global
->set_dcps_sequence_type (seq_type
);
3997 else if (ACE_OS::strncmp (buf
+ 8, "DCPS_SUPPORT_ZERO_COPY_READ", 27) == 0)
3999 idl_global
->dcps_support_zero_copy_read (true);
4001 else if (ACE_OS::strncmp (buf
+ 8, "DCPS_GEN_ZERO_COPY_READ", 23) == 0)
4003 idl_global
->dcps_gen_zero_copy_read (true);
4005 else if (ACE_OS::strncmp (buf
+ 8, "ciao lem", 8) == 0)
4007 char *tmp
= idl_get_pragma_string (buf
);
4008 idl_global
->add_ciao_lem_file_names (tmp
);
4010 // Delete tmp since add_ciao_lem_file_names() doesn't take its ownership.
4013 else if (ACE_OS::strncmp (buf
+ 8, "ndds typesupport", 16) == 0)
4015 char *tmp
= idl_get_pragma_string (buf
);
4016 idl_global
->add_ciao_rti_ts_file_names (tmp
);
4018 // Delete tmp since add_ciao_rti_ts_file_names() doesn't take its ownership.
4021 else if (ACE_OS::strncmp (buf
+ 8, "coredx typesupport", 18) == 0)
4023 char *tmp
= idl_get_pragma_string (buf
);
4024 idl_global
->add_ciao_coredx_ts_file_names (tmp
);
4026 // Delete tmp since add_ciao_coredx_ts_file_names() doesn't take its ownership.
4029 else if (ACE_OS::strncmp (buf
+ 8, "opendds typesupport", 19) == 0)
4031 char *tmp
= idl_get_pragma_string (buf
);
4032 idl_global
->add_ciao_oci_ts_file_names (tmp
);
4034 // Delete tmp since add_ciao_oci_ts_file_names() doesn't take its ownership.
4037 else if (ACE_OS::strncmp (buf
+ 8, "splice typesupport", 18) == 0)
4039 char *tmp
= idl_get_pragma_string (buf
);
4040 idl_global
->add_ciao_spl_ts_file_names (tmp
);
4042 // Delete tmp since add_ciao_spl_ts_file_names() doesn't take its ownership.
4045 else if ((ACE_OS::strncmp (buf
+ 8, "ciao ami4ccm interface", 22) == 0) ||
4046 (ACE_OS::strncmp (buf
+ 8, "ami4ccm interface", 17) == 0))
4048 if (idl_global
->in_main_file ())
4050 char *tmp
= idl_get_pragma_string (buf
);
4051 idl_global
->add_ciao_ami_iface_names (tmp
);
4053 // Delete tmp since add_ciao_ami_iface_names() doesn't take its ownership.
4057 else if ((ACE_OS::strncmp (buf
+ 8, "ciao ami4ccm receptacle", 23) == 0) ||
4058 (ACE_OS::strncmp (buf
+ 8, "ami4ccm receptacle", 18) == 0))
4060 char *tmp
= idl_get_pragma_string (buf
);
4062 if (idl_global
->in_main_file ())
4064 idl_global
->add_ciao_ami_recep_names (tmp
);
4068 /// This is intended for the executor IDL file,
4069 /// when a pragma is seen in the main file, but
4070 /// it will do no harm in other cases.
4071 idl_global
->add_included_ami_recep_names (tmp
);
4074 // Delete tmp since add_ciao_spl_ts_file_names() doesn't take its ownership.
4077 else if ((ACE_OS::strncmp (buf
+ 8, "ciao ami4ccm idl", 16) == 0) ||
4078 (ACE_OS::strncmp (buf
+ 8, "ami4ccm idl", 11) == 0))
4080 char *tmp
= idl_get_pragma_string (buf
);
4082 /// These pragmas are found in the file where the interface
4083 /// that has a AMI4CCM_* counterpart in the *A.idl file
4084 /// is declared. We add the filename to the list in all
4085 /// IDL files *except* the one where it is found, to
4086 /// eliminate a circular include of xxxC.h and xxxAC.h.
4087 if (!idl_global
->in_main_file ())
4089 idl_global
->add_ciao_ami_idl_fnames (tmp
);
4092 // Delete tmp since add_ciao_ami_idl_fnames() doesn't take its ownership.
4095 else if (ACE_OS::strncmp (buf
+ 8, "dds4ccm impl", 12) == 0)
4097 char *tmp
= idl_get_pragma_string (buf
);
4099 idl_global
->add_dds4ccm_impl_fnames (tmp
);
4101 // Delete tmp since add_dds4ccm_impl_fnames() doesn't take its ownership.
4107 * idl_atoi - Convert a string of digits into a negative integer according to base b
4109 static ACE_CDR::LongLong
4110 idl_atoi (char *s
, long b
)
4112 ACE_CDR::LongLong r
= 0;
4114 // Skip over the dash and possibly spaces after the dash
4115 while (*s
== '-' || *s
== ' ' || *s
== '\t')
4120 if (b
== 8 && *s
== '0')
4124 else if (b
== 16 && *s
== '0' && (*(s
+ 1) == 'x' || *(s
+ 1) == 'X'))
4131 if (*s
<= '9' && *s
>= '0')
4133 r
= (r
* b
) + (*s
- '0');
4135 else if (b
> 10 && *s
<= 'f' && *s
>= 'a')
4137 r
= (r
* b
) + (*s
- 'a' + 10);
4139 else if (b
> 10 && *s
<= 'F' && *s
>= 'A')
4141 r
= (r
* b
) + (*s
- 'A' + 10);
4153 * idl_atoui - Convert a string of digits into an unsigned integer according to base b
4155 static ACE_CDR::ULongLong
4156 idl_atoui (char *s
, long b
)
4158 ACE_CDR::ULongLong r
= 0;
4160 if (b
== 8 && *s
== '0')
4164 else if (b
== 16 && *s
== '0' && (*(s
+ 1) == 'x' || *(s
+ 1) == 'X'))
4171 if (*s
<= '9' && *s
>= '0')
4173 r
= (r
* b
) + (*s
- '0');
4175 else if (b
> 10 && *s
<= 'f' && *s
>= 'a')
4177 r
= (r
* b
) + (*s
- 'a' + 10);
4179 else if (b
> 10 && *s
<= 'F' && *s
>= 'A')
4181 r
= (r
* b
) + (*s
- 'A' + 10);
4193 * Convert a string to a float; atof doesn't seem to work, always.
4195 static ACE_CDR::Double
4200 long neg
= 0, negexp
= 0;
4206 // Skip over the dash and possibly spaces after the dash
4207 while (*s
== '-' || *s
== ' ' || *s
== '\t')
4213 while (*s
>= '0' && *s
<= '9')
4215 d
= (d
* 10) + *s
- '0';
4224 while (*s
>= '0' && *s
<= '9')
4226 d
+= (*s
- '0') / (e
* 1.0);
4232 if (*s
== 'e' || *s
== 'E')
4248 while (*s
>= '0' && *s
<= '9')
4250 e
= (e
* 10) + *s
- '0';
4256 for (k
= 1; e
> 0; k
*= 10, e
--) ;
4278 * Convert (some) escaped characters into their ascii values
4281 idl_escape_reader (char *str
)
4317 for (i
= 2; str
[i
] != '\0' && isxdigit (str
[i
]); ++i
)
4324 char out
= (char)idl_atoui(&str
[2], 16);
4328 ACE_NOTREACHED (break;)
4330 // check for octal value
4331 if (str
[1] >= '0' && str
[1] <= '7')
4335 for (i
= 1; str
[i
] >= '0' && str
[i
] <= '7'; ++i
)
4342 char out
= (char)idl_atoui(&str
[1], 8);
4348 return str
[1] - 'a';
4350 ACE_NOTREACHED (break;)
4354 * Convert escaped hex digits into a wchar
4356 static ACE_CDR::WChar
4357 idl_wchar_escape_reader (char *str
)
4359 if (str
[0] != '\\' || str
[1] != 'u')
4365 // get the hex digits
4366 for (i
= 2; str
[i
] != '\0' && isxdigit (str
[i
]); i
++)
4372 ACE_CDR::WChar out
= (ACE_CDR::WChar
) idl_atoui (&str
[2], 16);
4378 * Checks wstring for validity
4381 idl_wstring_escape_reader (char *str
)
4387 idl_get_pragma_string (char *pragma
)
4389 // Get pointers to each end of the substring between the quotes.
4390 const char *firstquote
= ACE_OS::strchr (pragma
, '"');
4392 if (firstquote
== 0)
4394 idl_global
->err ()->syntax_error (
4395 IDL_GlobalData::PS_PragmaPrefixSyntax
4401 const char *start
= firstquote
+ 1;
4402 const char *end
= ACE_OS::strchr (start
, '"');
4406 idl_global
->err ()->syntax_error (
4407 IDL_GlobalData::PS_PragmaPrefixSyntax
4413 int len
= static_cast<int> (end
- start
);
4416 ACE_NEW_RETURN (retval
,
4420 ACE_OS::strncpy (retval
,
4429 idl_valid_version (char *s
)
4431 // Nothing preceding decimal point.
4437 char *minor
= ACE_OS::strchr (s
, '.');
4442 // No decimal point.
4446 if (*(minor
+ 1) == '\0')
4448 // Nothing following decimal point.
4452 char *tmp
= minor
+ 1;
4454 for (i
= 0; tmp
[i
] != '\0'; ++i
)
4456 if (!isdigit (tmp
[i
]))
4462 ptrdiff_t const len
= minor
- s
;
4464 for (i
= 0; i
< len
; ++i
)
4466 if (!isdigit (s
[i
]))
4472 // Major and minor version numbers must be unsigned shorts.
4473 if (ACE_OS::atoi (minor
+ 1) > ACE_UINT16_MAX
4474 || ACE_OS::atoi (s
) > ACE_UINT16_MAX
)
4483 idl_find_node (const char *s
)
4485 UTL_ScopedName
* node
= FE_Utils::string_to_scoped_name (s
);
4490 d
= idl_global
->scopes ().top_non_null ()->lookup_by_name (node
);
4494 idl_global
->err ()->lookup_error (node
);