diff options
author | gokhale <asgokhale@users.noreply.github.com> | 1998-01-08 17:54:57 +0000 |
---|---|---|
committer | gokhale <asgokhale@users.noreply.github.com> | 1998-01-08 17:54:57 +0000 |
commit | 3797d0b6ceb7ae6d413cb92081fd6887b7a566a3 (patch) | |
tree | 065657886b1d905674cb427aaca33c08bcf40241 | |
parent | 68a0371c7a7314cf6575e82e2ddb3c7a01f79bf3 (diff) | |
download | ATCD-3797d0b6ceb7ae6d413cb92081fd6887b7a566a3.tar.gz |
*** empty log message ***
-rw-r--r-- | TAO/TAO_IDL/be/be_interface.cpp | 85 | ||||
-rw-r--r-- | TAO/TAO_IDL/be/be_state_argument.cpp | 2 | ||||
-rw-r--r-- | TAO/TAO_IDL/be_include/be_interface.h | 3 | ||||
-rw-r--r-- | TAO/TAO_IDL/fe/y.tab.cpp | 1411 |
4 files changed, 803 insertions, 698 deletions
diff --git a/TAO/TAO_IDL/be/be_interface.cpp b/TAO/TAO_IDL/be/be_interface.cpp index 779cc97b87c..e063dbffe7e 100644 --- a/TAO/TAO_IDL/be/be_interface.cpp +++ b/TAO/TAO_IDL/be/be_interface.cpp @@ -501,7 +501,7 @@ int be_interface::gen_server_header (void) << "_ptr;" << nl; // now generate the class definition - *sh << "class " << namebuf << " : public virtual " << name (); + *sh << "class " << namebuf << " : public virtual " << this->name (); if (n_inherits () > 0) // this interface inherits from other interfaces { be_interface *intf; @@ -510,7 +510,10 @@ int be_interface::gen_server_header (void) { *sh << ", public virtual "; intf = be_interface::narrow_from_decl (inherits ()[i]); - *sh << intf->full_skel_name (); // dump the scoped name + *sh << intf->relative_skel_name (this->full_skel_name ()); // dump + // the + // scoped + // name } // end of for loop } *sh << nl; @@ -1746,6 +1749,84 @@ be_interface::gen_skel_helper (be_interface *derived, return 0; } +// return the relative skeleton name (needed due to NT compiler insanity) +char * +be_interface::relative_skel_name (const char *skelname) +{ + // some compilers do not like generating a fully scoped name for a type that + // was defined in the same enclosing scope in which it was defined. For such, + // we emit a macro defined in the ACE library. + // + + // The tricky part here is that it is not enough to check if the + // typename we are using was defined in the current scope. But we + // need to ensure that it was not defined in any of our ancestor + // scopes as well. If that is the case, then we can generate a fully + // scoped name for that type, else we use the ACE_NESTED_CLASS macro + + // thus we need some sort of relative name to be generated + + static char macro [NAMEBUFSIZE]; + be_decl *def_scope = 0; // our defining scope + char // hold the fully scoped name + def_name [NAMEBUFSIZE], + use_name [NAMEBUFSIZE]; + char // these point to the curr and next component in the scope + *def_curr = def_name, + *def_next, + *use_curr = use_name, + *use_next; + + ACE_OS::memset (macro, '\0', NAMEBUFSIZE); + ACE_OS::memset (def_name, '\0', NAMEBUFSIZE); + ACE_OS::memset (use_name, '\0', NAMEBUFSIZE); + + // traverse every component of the def_scope and use_scope beginning at the + // root and proceeding towards the leaf trying to see if the components + // match. Continue until there is a match and keep accumulating the path + // traversed. This forms the first argument to the ACE_NESTED_CLASS + // macro. Whenever there is no match, the remaining components of the + // def_scope form the second argument + + ACE_OS::strcpy (def_name, this->full_skel_name ()); + ACE_OS::strcpy (use_name, skelname); + + while (def_curr && use_curr) + { + // find the first occurrence of a :: and advance the next pointers accordingly + def_next = ACE_OS::strstr (def_curr, "::"); + use_next = ACE_OS::strstr (use_curr, "::"); + + if (def_next) + *def_next = 0; + + if (use_next) + *use_next = 0; + + if (!ACE_OS::strcmp (def_curr, use_curr)) + { + // they have same prefix, append to arg1 + def_curr = (def_next ? (def_next+2) : 0); // skip the :: + use_curr = (use_next ? (use_next+2) : 0); // skip the :: + } + else + { + // no match. This is the end of the first argument. Get out + // of the loop as no more comparisons are necessary + break; + } + } + + // start the 2nd argument of the macro + + // copy the remaining def_name (if any left) + if (def_curr) + ACE_OS::strcat (macro, def_curr); + + return macro; +} + + // Narrowing IMPL_NARROW_METHODS3 (be_interface, AST_Interface, be_scope, be_type) IMPL_NARROW_FROM_DECL (be_interface) diff --git a/TAO/TAO_IDL/be/be_state_argument.cpp b/TAO/TAO_IDL/be/be_state_argument.cpp index 514ff81188b..dd0340424fa 100644 --- a/TAO/TAO_IDL/be/be_state_argument.cpp +++ b/TAO/TAO_IDL/be/be_state_argument.cpp @@ -2218,7 +2218,7 @@ be_state_argument::gen_code (be_type *bt, be_decl *d, be_type *type) break; case TAO_CodeGen::TAO_ARGUMENT_CS: case TAO_CodeGen::TAO_ARGUMENT_SH: - *os << bt->name () << arg->local_name () << ", "; + *os << bt->name () << " " << arg->local_name () << ", "; break; case TAO_CodeGen::TAO_ARGUMENT_UPCALL_SS: case TAO_CodeGen::TAO_ARGUMENT_DOCALL_CS: diff --git a/TAO/TAO_IDL/be_include/be_interface.h b/TAO/TAO_IDL/be_include/be_interface.h index 584a1bae6ce..2a07ce23b32 100644 --- a/TAO/TAO_IDL/be_include/be_interface.h +++ b/TAO/TAO_IDL/be_include/be_interface.h @@ -98,6 +98,9 @@ public: TAO_OutStream *os); // template method using breadth first traversal of inheritance graph + char *relative_skel_name (const char *); + // relative skeleton name + // Narrowing DEF_NARROW_METHODS3 (be_interface, AST_Interface, be_scope, be_type); DEF_NARROW_FROM_DECL (be_interface); diff --git a/TAO/TAO_IDL/fe/y.tab.cpp b/TAO/TAO_IDL/fe/y.tab.cpp index 93e3dbf8b63..75d17918707 100644 --- a/TAO/TAO_IDL/fe/y.tab.cpp +++ b/TAO/TAO_IDL/fe/y.tab.cpp @@ -1,5 +1,5 @@ -# line 73 "idl.yy" +# line 74 "idl.yy" #include "idl.h" #include "idl_extern.h" #include "fe_private.h" @@ -18,7 +18,7 @@ extern int yyleng; // Force the pretty debugging code to compile. #define YYDEBUG 1 -# line 96 "idl.yy" +# line 97 "idl.yy" typedef union #ifdef __cplusplus YYSTYPE @@ -84,25 +84,25 @@ typedef union # define IDL_INOUT 289 # define IDL_RAISES 290 # define IDL_CONTEXT 291 -# define IDL_INTEGER_LITERAL 292 -# define IDL_STRING_LITERAL 293 -# define IDL_CHARACTER_LITERAL 294 -# define IDL_FLOATING_PT_LITERAL 295 -# define IDL_TRUETOK 296 -# define IDL_FALSETOK 297 -# define IDL_SCOPE_DELIMITOR 298 -# define IDL_LEFT_SHIFT 299 -# define IDL_RIGHT_SHIFT 300 +# define IDL_NATIVE 292 +# define IDL_INTEGER_LITERAL 293 +# define IDL_STRING_LITERAL 294 +# define IDL_CHARACTER_LITERAL 295 +# define IDL_FLOATING_PT_LITERAL 296 +# define IDL_TRUETOK 297 +# define IDL_FALSETOK 298 +# define IDL_SCOPE_DELIMITOR 299 +# define IDL_LEFT_SHIFT 300 +# define IDL_RIGHT_SHIFT 301 #ifdef __STDC__ #include <stdlib.h> +#include <string.h> #else #include <malloc.h> #include <memory.h> #endif -// #include <values.h> - #ifdef __cplusplus #ifndef yyerror @@ -139,7 +139,7 @@ YYSTYPE *yyv; static int yymaxdepth = YYMAXDEPTH; # define YYERRCODE 256 -# line 2242 "idl.yy" +# line 2267 "idl.yy" /* programs */ @@ -173,166 +173,166 @@ yytabelem yyexca[] ={ 0, 3, 125, 3, -2, 0, --1, 23, +-1, 24, 123, 32, -2, 57, --1, 131, - 91, 228, - -2, 137, --1, 146, - 257, 253, - 262, 253, - 263, 253, - 264, 253, - 265, 253, - 266, 253, - 267, 253, - 268, 253, - 269, 253, - 270, 253, - 271, 253, - 277, 253, - 283, 240, - 286, 253, - 298, 253, +-1, 134, + 91, 229, + -2, 138, +-1, 149, + 257, 254, + 262, 254, + 263, 254, + 264, 254, + 265, 254, + 266, 254, + 267, 254, + 268, 254, + 269, 254, + 270, 254, + 271, 254, + 277, 254, + 283, 241, + 286, 254, + 299, 254, 125, 25, -2, 0, --1, 178, +-1, 181, 125, 3, -2, 0, --1, 219, - 125, 244, +-1, 222, + 125, 245, -2, 0, --1, 266, - 125, 160, +-1, 269, + 125, 161, -2, 0, --1, 317, - 41, 256, - -2, 258, --1, 355, - 125, 183, +-1, 319, + 41, 257, + -2, 259, +-1, 357, + 125, 184, -2, 0, }; -# define YYNPROD 285 -# define YYLAST 524 +# define YYNPROD 286 +# define YYLAST 528 yytabelem yyact[]={ - 68, 128, 152, 329, 342, 125, 53, 164, 66, 238, - 345, 224, 83, 227, 223, 129, 107, 74, 84, 85, - 72, 73, 75, 76, 78, 77, 79, 19, 20, 391, - 21, 86, 87, 88, 83, 98, 386, 100, 101, 102, - 55, 97, 95, 105, 350, 166, 326, 50, 161, 83, - 162, 204, 205, 69, 74, 84, 85, 72, 73, 75, - 76, 78, 77, 79, 19, 20, 236, 21, 86, 87, - 88, 144, 83, 166, 344, 69, 63, 74, 84, 85, - 72, 73, 75, 76, 78, 77, 79, 331, 332, 333, - 69, 86, 87, 88, 347, 346, 109, 109, 347, 346, - 110, 115, 116, 62, 61, 59, 138, 131, 127, 134, - 92, 83, 126, 69, 228, 83, 302, 99, 219, 140, - 74, 84, 85, 72, 73, 75, 76, 78, 77, 79, - 158, 163, 58, 13, 150, 87, 13, 93, 91, 90, - 83, 198, 155, 151, 239, 74, 84, 85, 72, 73, - 75, 76, 78, 77, 79, 156, 69, 51, 6, 154, - 87, 365, 5, 57, 12, 83, 4, 12, 299, 214, - 74, 84, 85, 72, 73, 75, 76, 78, 77, 157, - 288, 69, 159, 55, 83, 87, 88, 55, 287, 298, - 84, 85, 262, 286, 75, 76, 78, 77, 240, 242, - 241, 229, 21, 189, 201, 14, 69, 2, 10, 56, - 11, 25, 323, 11, 145, 143, 142, 141, 103, 19, - 20, 202, 21, 309, 199, 69, 15, 55, 260, 192, - 111, 193, 194, 9, 160, 14, 18, 24, 10, 259, - 247, 218, 139, 114, 113, 131, 281, 382, 112, 19, - 20, 280, 21, 369, 310, 290, 15, 277, 276, 275, - 274, 273, 83, 272, 285, 48, 47, 46, 131, 45, - 44, 43, 384, 371, 55, 41, 206, 297, 207, 13, - 173, 174, 389, 352, 210, 240, 242, 241, 301, 208, - 83, 387, 324, 300, 209, 196, 195, 167, 168, 169, - 170, 171, 172, 69, 381, 186, 338, 327, 315, 185, - 12, 13, 311, 184, 258, 373, 351, 317, 225, 203, - 312, 60, 390, 314, 67, 167, 168, 169, 170, 171, - 172, 69, 380, 217, 361, 362, 315, 253, 254, 337, - 364, 266, 12, 340, 363, 249, 294, 240, 242, 241, - 353, 348, 339, 328, 322, 94, 11, 321, 96, 250, - 366, 248, 336, 372, 55, 131, 376, 375, 374, 370, - 126, 368, 222, 295, 293, 292, 289, 320, 316, 131, - 383, 308, 279, 263, 251, 252, 220, 282, 11, 177, - 283, 255, 256, 257, 119, 34, 211, 212, 213, 307, - 278, 303, 296, 246, 149, 216, 137, 82, 215, 136, - 81, 175, 117, 200, 135, 306, 271, 270, 226, 181, - 123, 38, 378, 379, 360, 359, 357, 377, 356, 355, - 354, 341, 334, 318, 305, 269, 180, 122, 37, 268, - 304, 267, 265, 221, 179, 121, 36, 335, 244, 106, - 49, 32, 261, 176, 118, 33, 133, 108, 243, 235, - 234, 188, 233, 187, 232, 231, 230, 183, 104, 42, - 182, 146, 124, 39, 17, 16, 264, 178, 120, 35, - 31, 30, 8, 29, 7, 28, 27, 26, 3, 1, - 23, 190, 130, 191, 330, 71, 70, 64, 89, 367, - 165, 153, 284, 22, 319, 313, 148, 358, 343, 245, - 197, 325, 40, 147, 388, 385, 349, 80, 237, 132, - 291, 65, 54, 52 }; + 72, 131, 347, 331, 344, 57, 167, 155, 128, 241, + 70, 230, 132, 207, 208, 35, 226, 110, 393, 388, + 333, 334, 335, 352, 328, 239, 147, 34, 349, 348, + 130, 112, 118, 119, 113, 112, 141, 36, 36, 101, + 59, 103, 104, 105, 100, 227, 36, 108, 98, 169, + 54, 78, 87, 88, 76, 77, 79, 80, 82, 81, + 83, 20, 21, 36, 22, 89, 90, 91, 78, 87, + 88, 76, 77, 79, 80, 82, 81, 83, 20, 21, + 73, 22, 89, 90, 91, 231, 305, 36, 73, 102, + 201, 346, 78, 87, 88, 76, 77, 79, 80, 82, + 81, 83, 162, 222, 160, 73, 89, 90, 91, 161, + 134, 154, 137, 36, 129, 349, 348, 159, 301, 87, + 88, 67, 143, 79, 80, 82, 81, 158, 2, 73, + 157, 22, 26, 36, 265, 6, 5, 153, 78, 87, + 88, 76, 77, 79, 80, 82, 81, 83, 55, 169, + 66, 367, 164, 90, 165, 73, 302, 291, 290, 95, + 36, 289, 242, 232, 204, 78, 87, 88, 76, 77, + 79, 80, 82, 81, 83, 73, 65, 217, 62, 13, + 90, 63, 13, 325, 4, 59, 36, 148, 96, 59, + 163, 78, 87, 88, 76, 77, 79, 80, 82, 81, + 243, 245, 73, 146, 145, 244, 90, 91, 192, 144, + 15, 106, 205, 10, 94, 312, 202, 263, 262, 93, + 250, 114, 221, 142, 20, 21, 117, 22, 73, 59, + 116, 16, 384, 371, 195, 166, 196, 197, 9, 115, + 15, 19, 25, 10, 14, 313, 61, 12, 134, 284, + 12, 176, 177, 283, 20, 21, 293, 22, 280, 60, + 11, 16, 279, 11, 278, 277, 36, 276, 275, 52, + 51, 134, 288, 50, 14, 49, 59, 48, 47, 300, + 386, 373, 45, 391, 213, 189, 188, 243, 245, 211, + 354, 304, 244, 209, 212, 210, 326, 303, 199, 198, + 389, 292, 170, 171, 172, 173, 174, 175, 73, 383, + 223, 35, 254, 255, 258, 259, 260, 225, 340, 256, + 257, 315, 329, 317, 253, 314, 261, 220, 13, 269, + 375, 353, 319, 252, 187, 251, 228, 206, 35, 285, + 64, 71, 392, 382, 363, 364, 339, 366, 243, 245, + 350, 342, 355, 244, 365, 214, 215, 216, 341, 330, + 13, 286, 368, 372, 324, 59, 36, 134, 378, 377, + 374, 129, 323, 376, 338, 370, 322, 318, 97, 99, + 311, 134, 385, 282, 266, 180, 122, 38, 310, 281, + 306, 249, 152, 219, 297, 140, 12, 86, 218, 139, + 85, 178, 170, 171, 172, 173, 174, 175, 73, 11, + 120, 203, 138, 309, 274, 273, 229, 184, 126, 42, + 380, 381, 362, 298, 361, 359, 379, 358, 12, 357, + 356, 343, 336, 320, 308, 272, 183, 125, 41, 271, + 307, 11, 270, 268, 224, 182, 124, 40, 337, 296, + 247, 299, 109, 53, 295, 33, 264, 179, 121, 37, + 136, 111, 246, 238, 237, 191, 236, 190, 235, 234, + 233, 186, 107, 46, 185, 149, 127, 43, 18, 17, + 267, 181, 123, 39, 32, 31, 8, 30, 7, 29, + 28, 27, 3, 1, 24, 193, 133, 194, 332, 75, + 74, 68, 92, 369, 168, 156, 287, 23, 321, 316, + 151, 360, 345, 248, 200, 327, 44, 150, 390, 387, + 351, 84, 240, 135, 294, 69, 58, 56 }; yytabelem yypact[]={ - -23,-10000000,-10000000, -23,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, + -18,-10000000,-10000000, -18,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, +-10000000,-10000000,-10000000,-10000000, -220,-10000000,-10000000,-10000000,-10000000,-10000000, +-10000000,-10000000,-10000000,-10000000, 224,-10000000,-10000000, 219, 218, 216, + 214, 211, 210, -194,-10000000,-10000000,-10000000, -71, -220, -168, + -220, -220, -220, 88,-10000000,-10000000, -220,-10000000,-10000000,-10000000, +-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -282, -10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000, 217,-10000000,-10000000, 212, 211, 210, 208, - 207, 206, -208, -92, -146, -140, -146, -146, -146, 95, --10000000,-10000000, -146,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000, -282,-10000000,-10000000,-10000000,-10000000, +-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -231,-10000000, +-10000000,-10000000,-10000000,-10000000, 177, 170, 166,-10000000, -230,-10000000, -10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000, -165,-10000000,-10000000,-10000000,-10000000,-10000000, - 186, 184, 183,-10000000,-10000000, -161,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -282,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000, -223,-10000000, -146,-10000000, -146,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000, -156,-10000000, 182, -146, 94, - 93, 92, -203, 91,-10000000,-10000000, -282,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000, -146,-10000000, 5, 5, 5,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -53, 252, 251, 133, --10000000,-10000000,-10000000, 80, 127, 281, -248, 233, 247,-10000000, --10000000, 33, 33, 33, -282,-10000000, 5,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000, -185, 180,-10000000, -23, -245, - 278, -143, 76,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, - -217, -142,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, - 178, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5,-10000000,-10000000,-10000000, 273, 177, 166,-10000000,-10000000, -245, + -282,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -219,-10000000, -220, +-10000000, -220,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -226,-10000000, + 163, -220, 86, 81, 80, -248, 64,-10000000,-10000000, -282, +-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -220,-10000000, 109, 109, + 109,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -48, + 255, 254, 125,-10000000,-10000000,-10000000, 40, 118, 299, -287, + 250, 247,-10000000,-10000000, 9, 9, 9, -282,-10000000, 109, +-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -170, 161, +-10000000, -18, -211, 296, -172, 38,-10000000,-10000000,-10000000,-10000000, +-10000000,-10000000,-10000000, -258, -124,-10000000,-10000000,-10000000,-10000000,-10000000, +-10000000,-10000000,-10000000, 158, 109, 109, 109, 109, 109, 109, + 109, 109, 109, 109,-10000000,-10000000,-10000000, 285, 156, 155, +-10000000,-10000000, -211,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, +-10000000,-10000000,-10000000, 209, 208, 206, 205, 203, 199,-10000000, +-10000000,-10000000,-10000000,-10000000,-10000000, -282, -219, -220, 125, 109, +-10000000, 118, 299, -287, 250, 250, 247, 247,-10000000,-10000000, +-10000000,-10000000,-10000000,-10000000, 109,-10000000, 36, 33, 32, -211, + -220, 197, -144, 31, 253,-10000000,-10000000,-10000000,-10000000,-10000000, +-10000000, -97, -171, -282,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, - 204, 202, 201, 200, 199, 198,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000, -282, -223, -146, 133, 5,-10000000, 127, 281, - -248, 233, 233, 247, 247,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000, 5,-10000000, 68, 63, 55, -245, -146, 196, -73, - 43, 249,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -117, -141, - -282,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, -282, -166,-10000000, --10000000,-10000000,-10000000, 130, 195, 271, -143, -146, 277,-10000000, --10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, 89, 248, - -244, 266, -200,-10000000,-10000000,-10000000,-10000000,-10000000, 265,-10000000, --10000000,-10000000,-10000000,-10000000, -182, -146, -247, 276,-10000000, 239, - -117,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000, 36, -182, -208, 194, -186, 215, - 5, 275, -223, -200, -146,-10000000,-10000000,-10000000,-10000000,-10000000, --10000000,-10000000,-10000000,-10000000, 263,-10000000,-10000000, 188, -146, 214, - -257,-10000000,-10000000,-10000000,-10000000, 250,-10000000,-10000000, 238,-10000000, - -264,-10000000 }; + -282, -227,-10000000,-10000000,-10000000,-10000000, 122, 186, 284, -172, + -220, 292,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, + 60, 252, -266, 281, -267,-10000000,-10000000,-10000000,-10000000,-10000000, + 277,-10000000,-10000000,-10000000,-10000000,-10000000, -165, -220, -268, 291, +-10000000, 246, -97,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, +-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, 26, -165, -194, 174, + -252, 223, 109, 290, -219, -267, -220,-10000000,-10000000,-10000000, +-10000000,-10000000,-10000000,-10000000,-10000000,-10000000, 268,-10000000,-10000000, 173, + -220, 222, -275,-10000000,-10000000,-10000000,-10000000, 259,-10000000,-10000000, + 239,-10000000, -276,-10000000 }; yytabelem yypgo[]={ - 0, 14, 157, 523, 522, 521, 8, 209, 132, 520, - 163, 519, 518, 517, 324, 9, 7, 516, 515, 514, - 5, 513, 512, 511, 510, 509, 508, 507, 108, 506, - 505, 504, 503, 502, 2, 501, 159, 142, 155, 179, - 130, 182, 234, 500, 143, 141, 10, 499, 498, 105, - 104, 103, 321, 497, 496, 495, 6, 76, 494, 493, - 1, 15, 492, 491, 490, 0, 166, 489, 207, 488, - 487, 162, 486, 158, 485, 484, 483, 482, 481, 480, - 479, 478, 477, 476, 475, 474, 473, 472, 471, 470, - 469, 468, 467, 466, 465, 464, 463, 462, 461, 460, - 459, 458, 457, 456, 455, 454, 453, 452, 451, 450, - 449, 448, 447, 446, 445, 444, 443, 442, 192, 118, - 441, 440, 439, 438, 437, 436, 435, 434, 433, 432, - 431, 430, 4, 429, 428, 427, 426, 425, 424, 423, - 422, 421, 420, 419, 418, 417, 13, 416, 415, 414, - 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, - 403, 401, 400, 399, 395, 394, 389, 383, 382, 381, - 378, 377, 362, 357, 354, 353, 3, 352, 344, 343, - 340, 339, 335, 334, 332, 322 }; + 0, 16, 148, 527, 526, 525, 10, 259, 178, 524, + 246, 523, 522, 521, 341, 9, 6, 520, 519, 518, + 8, 517, 516, 515, 514, 513, 512, 511, 30, 510, + 509, 508, 507, 506, 7, 505, 130, 127, 117, 104, + 109, 102, 190, 504, 111, 90, 2, 503, 502, 181, + 176, 150, 340, 501, 500, 499, 5, 121, 498, 497, + 1, 12, 496, 495, 494, 0, 184, 493, 128, 492, + 491, 136, 490, 135, 489, 488, 487, 486, 485, 484, + 483, 482, 481, 480, 479, 478, 477, 476, 475, 474, + 473, 472, 471, 470, 469, 468, 467, 466, 465, 464, + 463, 462, 461, 460, 459, 458, 457, 456, 455, 453, + 452, 450, 448, 447, 446, 445, 444, 443, 134, 103, + 442, 440, 439, 438, 437, 436, 435, 434, 433, 432, + 431, 430, 4, 429, 427, 426, 425, 424, 422, 421, + 420, 419, 418, 417, 416, 415, 11, 414, 413, 412, + 411, 410, 401, 400, 399, 398, 397, 395, 393, 392, + 391, 390, 389, 388, 387, 386, 385, 384, 383, 380, + 377, 376, 374, 372, 364, 359, 3, 358, 354, 351, + 347, 346, 345, 344, 343, 342 }; yytabelem yyr1[]={ 0, 67, 68, 68, 70, 69, 72, 69, 74, 69, @@ -345,25 +345,25 @@ yytabelem yyr1[]={ 48, 33, 34, 35, 35, 36, 36, 37, 37, 38, 38, 38, 39, 39, 39, 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 43, 43, 43, 43, - 43, 43, 44, 108, 66, 66, 66, 66, 110, 109, - 1, 1, 2, 2, 2, 56, 56, 56, 56, 56, - 56, 4, 4, 4, 3, 3, 3, 28, 111, 29, - 29, 60, 60, 30, 112, 31, 31, 61, 62, 49, - 49, 54, 54, 54, 55, 55, 55, 52, 52, 52, - 50, 50, 57, 51, 53, 113, 114, 115, 117, 7, - 116, 119, 119, 120, 121, 118, 122, 118, 123, 124, - 125, 126, 127, 128, 129, 131, 10, 9, 9, 9, - 9, 9, 9, 130, 133, 133, 134, 135, 132, 136, - 132, 26, 27, 27, 137, 46, 138, 139, 46, 140, - 47, 141, 142, 143, 145, 8, 144, 148, 147, 147, - 146, 149, 150, 5, 5, 151, 152, 13, 154, 155, - 6, 6, 153, 157, 158, 14, 14, 156, 159, 11, - 24, 25, 25, 160, 161, 45, 162, 163, 96, 63, - 63, 164, 165, 166, 167, 73, 168, 169, 171, 172, - 98, 59, 59, 59, 12, 12, 173, 170, 174, 170, - 175, 178, 177, 177, 179, 180, 176, 15, 15, 15, - 58, 58, 58, 181, 182, 23, 23, 183, 184, 17, - 17, 18, 185, 19, 19 }; + 43, 43, 44, 108, 66, 66, 66, 66, 66, 110, + 109, 1, 1, 2, 2, 2, 56, 56, 56, 56, + 56, 56, 4, 4, 4, 3, 3, 3, 28, 111, + 29, 29, 60, 60, 30, 112, 31, 31, 61, 62, + 49, 49, 54, 54, 54, 55, 55, 55, 52, 52, + 52, 50, 50, 57, 51, 53, 113, 114, 115, 117, + 7, 116, 119, 119, 120, 121, 118, 122, 118, 123, + 124, 125, 126, 127, 128, 129, 131, 10, 9, 9, + 9, 9, 9, 9, 130, 133, 133, 134, 135, 132, + 136, 132, 26, 27, 27, 137, 46, 138, 139, 46, + 140, 47, 141, 142, 143, 145, 8, 144, 148, 147, + 147, 146, 149, 150, 5, 5, 151, 152, 13, 154, + 155, 6, 6, 153, 157, 158, 14, 14, 156, 159, + 11, 24, 25, 25, 160, 161, 45, 162, 163, 96, + 63, 63, 164, 165, 166, 167, 73, 168, 169, 171, + 172, 98, 59, 59, 59, 12, 12, 173, 170, 174, + 170, 175, 178, 177, 177, 179, 180, 176, 15, 15, + 15, 58, 58, 58, 181, 182, 23, 23, 183, 184, + 17, 17, 18, 185, 19, 19 }; yytabelem yyr2[]={ 0, 2, 4, 0, 1, 7, 1, 7, 1, 7, @@ -376,109 +376,109 @@ yytabelem yyr2[]={ 3, 2, 2, 2, 7, 2, 7, 2, 7, 2, 7, 7, 2, 7, 7, 2, 7, 7, 7, 2, 5, 5, 5, 3, 2, 7, 3, 3, 3, 3, - 3, 3, 3, 1, 7, 3, 3, 3, 1, 7, - 2, 2, 3, 2, 3, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 5, 1, 9, - 1, 2, 2, 5, 1, 9, 1, 3, 3, 2, - 2, 3, 5, 3, 5, 7, 5, 3, 3, 5, - 3, 3, 3, 3, 3, 1, 1, 1, 1, 19, - 4, 4, 0, 1, 1, 11, 1, 7, 1, 1, - 1, 1, 1, 1, 1, 1, 35, 3, 3, 3, - 3, 2, 3, 4, 4, 0, 1, 1, 11, 1, - 7, 5, 5, 1, 1, 7, 1, 1, 11, 1, - 7, 1, 1, 1, 1, 19, 4, 1, 8, 0, - 3, 1, 1, 13, 5, 1, 1, 11, 1, 1, - 13, 3, 3, 1, 1, 13, 3, 3, 1, 7, - 5, 5, 1, 1, 1, 11, 1, 1, 13, 3, - 1, 1, 1, 1, 1, 19, 1, 1, 1, 1, - 21, 3, 3, 1, 2, 3, 1, 7, 1, 9, - 4, 1, 8, 0, 1, 1, 11, 3, 2, 3, - 3, 3, 3, 1, 1, 13, 1, 1, 1, 13, - 1, 5, 1, 9, 1 }; + 3, 3, 3, 1, 7, 3, 3, 3, 5, 1, + 7, 2, 2, 3, 2, 3, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 5, 1, + 9, 1, 2, 2, 5, 1, 9, 1, 3, 3, + 2, 2, 3, 5, 3, 5, 7, 5, 3, 3, + 5, 3, 3, 3, 3, 3, 1, 1, 1, 1, + 19, 4, 4, 0, 1, 1, 11, 1, 7, 1, + 1, 1, 1, 1, 1, 1, 1, 35, 3, 3, + 3, 3, 2, 3, 4, 4, 0, 1, 1, 11, + 1, 7, 5, 5, 1, 1, 7, 1, 1, 11, + 1, 7, 1, 1, 1, 1, 19, 4, 1, 8, + 0, 3, 1, 1, 13, 5, 1, 1, 11, 1, + 1, 13, 3, 3, 1, 1, 13, 3, 3, 1, + 7, 5, 5, 1, 1, 1, 11, 1, 1, 13, + 3, 1, 1, 1, 1, 1, 19, 1, 1, 1, + 1, 21, 3, 3, 1, 2, 3, 1, 7, 1, + 9, 4, 1, 8, 0, 1, 1, 11, 3, 2, + 3, 3, 3, 3, 1, 1, 13, 1, 1, 1, + 13, 1, 5, 1, 9, 1 }; yytabelem yychk[]={ -10000000, -67, -68, -69, -66, -71, -73, -75, -77, 256, - 261, -7, -10, -8, 258, 279, -84, -85, 259, 272, - 273, 275, -32, -64, 260, -68, -70, -72, -74, -76, - -78, -79, -108, -104, -164, -80, -113, -123, -141, -86, - -22, 58, -90, 59, 59, 59, 59, 59, 59, -109, - -1, -2, -3, -56, -4, -16, -7, -10, -8, -49, - -52, -50, -51, -57, -53, -5, -6, -14, -65, 298, - -54, -55, 265, 266, 262, 267, 268, 270, 269, 271, - -13, -153, -156, 257, 263, 264, 276, 277, 278, -48, - -49, -50, -57, -51, -52, -6, -14, -16, -65, 257, - -65, -65, -65, 123, -91, -65, -110, 298, -102, 262, - 265, 44, 62, 60, 60, 262, 263, -151, -105, -165, - -81, -114, -124, -142, -87, -20, -16, -28, -60, -61, - -62, -65, -11, -103, -65, -149, -154, -157, 262, 60, - -65, 123, 123, 123, 274, 123, -88, -21, -29, -159, - -65, -44, -34, -35, -36, -37, -38, -39, -40, -41, - -42, 43, 45, 126, -16, -43, 40, 292, 293, 294, - 295, 296, 297, -44, -44, -152, -106, -166, -82, -115, - -125, -143, -89, -92, -66, -71, -73, -96, -98, 256, - -63, -59, 282, 284, 285, 44, 44, -24, -45, 91, - -150, 124, 94, 38, 299, 300, 43, 45, 42, 47, - 37, -42, -42, -42, -34, -155, -158, -2, 61, -119, - -68, -116, -118, -1, 256, 40, -144, -146, 257, 125, - -93, -94, -95, -97, -99, -100, 283, -12, -15, 286, - -56, -6, -16, -101, -111, -25, -160, 62, -36, -37, - -38, -39, -39, -40, -40, -41, -41, -41, 41, 62, - 62, -107, -118, -167, -83, -117, -119, -120, -122, -126, - -145, -147, 59, 59, 59, 59, 59, 59, -162, -168, - -16, -60, -45, -44, -33, -34, 125, 125, 125, -28, - 59, -9, -49, -50, -57, -51, -8, -16, 262, 125, - 44, -15, 257, -161, -121, -127, -148, -163, -169, 93, - 59, 41, -146, -30, -61, -65, -170, 40, -128, -31, - -171, -173, -174, 123, 44, -23, 290, 41, -175, -176, - -58, 287, 288, 289, -129, -112, -172, -181, 41, -177, - -179, -130, -132, -26, 256, -46, 281, 280, -61, -17, - 291, 40, 44, -15, -131, -133, -134, -136, -27, -137, - -138, -183, -182, -178, -180, 125, -132, -47, -1, 59, - -46, 58, -34, 40, -20, -176, -60, -135, -140, -139, - -184, 41, 59, -60, 58, -18, 293, 41, -19, 44, - -185, 293 }; + 261, -7, -10, -8, 292, 258, 279, -84, -85, 259, + 272, 273, 275, -32, -64, 260, -68, -70, -72, -74, + -76, -78, -79, -108, -61, -65, 257, -104, -164, -80, + -113, -123, -141, -86, -22, 58, -90, 59, 59, 59, + 59, 59, 59, -109, -1, -2, -3, -56, -4, -16, + -7, -10, -8, -49, -52, -50, -51, -57, -53, -5, + -6, -14, -65, 299, -54, -55, 265, 266, 262, 267, + 268, 270, 269, 271, -13, -153, -156, 263, 264, 276, + 277, 278, -48, -49, -50, -57, -51, -52, -6, -14, + -16, -65, 257, -65, -65, -65, 123, -91, -65, -110, + 299, -102, 262, 265, 44, 62, 60, 60, 262, 263, + -151, -105, -165, -81, -114, -124, -142, -87, -20, -16, + -28, -60, -61, -62, -65, -11, -103, -65, -149, -154, + -157, 262, 60, -65, 123, 123, 123, 274, 123, -88, + -21, -29, -159, -65, -44, -34, -35, -36, -37, -38, + -39, -40, -41, -42, 43, 45, 126, -16, -43, 40, + 293, 294, 295, 296, 297, 298, -44, -44, -152, -106, + -166, -82, -115, -125, -143, -89, -92, -66, -71, -73, + -96, -98, 256, -63, -59, 282, 284, 285, 44, 44, + -24, -45, 91, -150, 124, 94, 38, 300, 301, 43, + 45, 42, 47, 37, -42, -42, -42, -34, -155, -158, + -2, 61, -119, -68, -116, -118, -1, 256, 40, -144, + -146, 257, 125, -93, -94, -95, -97, -99, -100, 283, + -12, -15, 286, -56, -6, -16, -101, -111, -25, -160, + 62, -36, -37, -38, -39, -39, -40, -40, -41, -41, + -41, 41, 62, 62, -107, -118, -167, -83, -117, -119, + -120, -122, -126, -145, -147, 59, 59, 59, 59, 59, + 59, -162, -168, -16, -60, -45, -44, -33, -34, 125, + 125, 125, -28, 59, -9, -49, -50, -57, -51, -8, + -16, 262, 125, 44, -15, 257, -161, -121, -127, -148, + -163, -169, 93, 59, 41, -146, -30, -61, -170, 40, + -128, -31, -171, -173, -174, 123, 44, -23, 290, 41, + -175, -176, -58, 287, 288, 289, -129, -112, -172, -181, + 41, -177, -179, -130, -132, -26, 256, -46, 281, 280, + -61, -17, 291, 40, 44, -15, -131, -133, -134, -136, + -27, -137, -138, -183, -182, -178, -180, 125, -132, -47, + -1, 59, -46, 58, -34, 40, -20, -176, -60, -135, + -140, -139, -184, 41, 59, -60, 58, -18, 294, 41, + -19, 44, -185, 294 }; yytabelem yydef[]={ -2, -2, 1, -2, 4, 6, 8, 10, 12, 14, - 103, 105, 106, 107, 58, 241, 21, 22, 16, 155, - 168, 201, 23, -2, 27, 2, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 29, 30, 0, 5, 7, 9, 11, 13, 15, 104, - 108, 110, 111, 112, 113, 114, 124, 125, 126, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 51, 52, - 139, 140, 147, 148, 141, 150, 151, 153, 152, 154, - 0, 221, 226, 56, 143, 0, 215, 222, 227, 59, - 63, 64, 65, 66, 67, 68, 69, 70, 242, 17, - 156, 169, 202, 24, 0, 28, 0, 54, 0, 142, - 149, 211, 214, 218, 223, 144, 146, 0, 0, 0, - 0, 0, 0, 0, 34, 31, 50, 109, 130, 131, - 132, -2, 138, 0, 53, 0, 0, 0, 145, 216, - 60, 243, 18, 157, 170, 203, -2, 47, 127, 0, - 55, 212, 102, 72, 73, 75, 77, 79, 82, 85, - 89, 0, 0, 0, 93, 94, 0, 96, 97, 98, - 99, 100, 101, 219, 224, 0, 0, 162, -2, 0, - 0, 0, 0, 33, 35, 37, 39, 41, 43, 45, - 0, 0, 239, 251, 252, 48, 128, 229, 232, 233, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 90, 91, 92, 0, 0, 0, 217, 61, -2, - 19, 158, 162, 163, 166, 171, 204, 209, 210, 26, - 0, 0, 0, 0, 0, 0, 236, 246, 254, 255, - 267, 268, 269, 0, 0, 230, 0, 213, 74, 76, - 78, 80, 81, 83, 84, 86, 87, 88, 95, 220, - 225, 0, 161, 0, 0, 0, -2, 0, 0, 0, - 0, 206, 36, 38, 40, 42, 44, 46, 0, 0, - 49, 129, 231, 234, 62, 71, 245, 20, 159, 164, - 167, 172, 177, 178, 179, 180, 181, 182, 141, 205, - 207, 237, 247, 0, 0, 0, 0, 0, 0, 235, - 165, 173, 208, 238, 136, 137, 248, -2, 0, 133, - 276, 0, 0, 174, 134, 249, 273, 257, 0, 263, - 264, 270, 271, 272, 0, 0, 280, 0, 259, 260, - 0, 175, 185, 186, 189, 193, 194, 196, 135, 250, - 277, 274, 261, 265, 0, -2, 0, 0, 191, 0, - 0, 0, 0, 0, 0, 176, 184, 187, 199, 190, - 192, 195, 197, 278, 0, 262, 266, 0, 0, 0, - 0, 275, 188, 200, 198, 0, 284, 279, 281, 282, - 0, 283 }; + 103, 105, 106, 107, 0, 58, 242, 21, 22, 16, + 156, 169, 202, 23, -2, 27, 2, 0, 0, 0, + 0, 0, 0, 0, 108, 138, 56, 0, 0, 0, + 0, 0, 0, 0, 29, 30, 0, 5, 7, 9, + 11, 13, 15, 104, 109, 111, 112, 113, 114, 115, + 125, 126, 127, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 51, 52, 140, 141, 148, 149, 142, 151, + 152, 154, 153, 155, 0, 222, 227, 144, 0, 216, + 223, 228, 59, 63, 64, 65, 66, 67, 68, 69, + 70, 243, 17, 157, 170, 203, 24, 0, 28, 0, + 54, 0, 143, 150, 212, 215, 219, 224, 145, 147, + 0, 0, 0, 0, 0, 0, 0, 34, 31, 50, + 110, 131, 132, 133, -2, 139, 0, 53, 0, 0, + 0, 146, 217, 60, 244, 18, 158, 171, 204, -2, + 47, 128, 0, 55, 213, 102, 72, 73, 75, 77, + 79, 82, 85, 89, 0, 0, 0, 93, 94, 0, + 96, 97, 98, 99, 100, 101, 220, 225, 0, 0, + 163, -2, 0, 0, 0, 0, 33, 35, 37, 39, + 41, 43, 45, 0, 0, 240, 252, 253, 48, 129, + 230, 233, 234, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 90, 91, 92, 0, 0, 0, + 218, 61, -2, 19, 159, 163, 164, 167, 172, 205, + 210, 211, 26, 0, 0, 0, 0, 0, 0, 237, + 247, 255, 256, 268, 269, 270, 0, 0, 231, 0, + 214, 74, 76, 78, 80, 81, 83, 84, 86, 87, + 88, 95, 221, 226, 0, 162, 0, 0, 0, -2, + 0, 0, 0, 0, 207, 36, 38, 40, 42, 44, + 46, 0, 0, 49, 130, 232, 235, 62, 71, 246, + 20, 160, 165, 168, 173, 178, 179, 180, 181, 182, + 183, 142, 206, 208, 238, 248, 0, 0, 0, 0, + 0, 0, 236, 166, 174, 209, 239, 137, 249, -2, + 0, 134, 277, 0, 0, 175, 135, 250, 274, 258, + 0, 264, 265, 271, 272, 273, 0, 0, 281, 0, + 260, 261, 0, 176, 186, 187, 190, 194, 195, 197, + 136, 251, 278, 275, 262, 266, 0, -2, 0, 0, + 192, 0, 0, 0, 0, 0, 0, 177, 185, 188, + 200, 191, 193, 196, 198, 279, 0, 263, 267, 0, + 0, 0, 0, 276, 189, 201, 199, 0, 285, 280, + 282, 283, 0, 284 }; typedef struct #ifdef __cplusplus yytoktype @@ -489,54 +489,55 @@ typedef struct #endif #if YYDEBUG - + yytoktype yytoks[] = { - {"IDENTIFIER", 257}, - {"IDL_CONST", 258}, - {"IDL_MODULE", 259}, - {"IDL_INTERFACE", 260}, - {"IDL_TYPEDEF", 261}, - {"IDL_LONG", 262}, - {"IDL_SHORT", 263}, - {"IDL_UNSIGNED", 264}, - {"IDL_DOUBLE", 265}, - {"IDL_FLOAT", 266}, - {"IDL_CHAR", 267}, - {"IDL_WCHAR", 268}, - {"IDL_OCTET", 269}, - {"IDL_BOOLEAN", 270}, - {"IDL_ANY", 271}, - {"IDL_STRUCT", 272}, - {"IDL_UNION", 273}, - {"IDL_SWITCH", 274}, - {"IDL_ENUM", 275}, - {"IDL_SEQUENCE", 276}, - {"IDL_STRING", 277}, - {"IDL_WSTRING", 278}, - {"IDL_EXCEPTION", 279}, - {"IDL_CASE", 280}, - {"IDL_DEFAULT", 281}, - {"IDL_READONLY", 282}, - {"IDL_ATTRIBUTE", 283}, - {"IDL_ONEWAY", 284}, - {"IDL_IDEMPOTENT", 285}, - {"IDL_VOID", 286}, - {"IDL_IN", 287}, - {"IDL_OUT", 288}, - {"IDL_INOUT", 289}, - {"IDL_RAISES", 290}, - {"IDL_CONTEXT", 291}, - {"IDL_INTEGER_LITERAL", 292}, - {"IDL_STRING_LITERAL", 293}, - {"IDL_CHARACTER_LITERAL", 294}, - {"IDL_FLOATING_PT_LITERAL", 295}, - {"IDL_TRUETOK", 296}, - {"IDL_FALSETOK", 297}, - {"IDL_SCOPE_DELIMITOR", 298}, - {"IDL_LEFT_SHIFT", 299}, - {"IDL_RIGHT_SHIFT", 300}, - {"-unknown-", -1} /* ends search */ + "IDENTIFIER", 257, + "IDL_CONST", 258, + "IDL_MODULE", 259, + "IDL_INTERFACE", 260, + "IDL_TYPEDEF", 261, + "IDL_LONG", 262, + "IDL_SHORT", 263, + "IDL_UNSIGNED", 264, + "IDL_DOUBLE", 265, + "IDL_FLOAT", 266, + "IDL_CHAR", 267, + "IDL_WCHAR", 268, + "IDL_OCTET", 269, + "IDL_BOOLEAN", 270, + "IDL_ANY", 271, + "IDL_STRUCT", 272, + "IDL_UNION", 273, + "IDL_SWITCH", 274, + "IDL_ENUM", 275, + "IDL_SEQUENCE", 276, + "IDL_STRING", 277, + "IDL_WSTRING", 278, + "IDL_EXCEPTION", 279, + "IDL_CASE", 280, + "IDL_DEFAULT", 281, + "IDL_READONLY", 282, + "IDL_ATTRIBUTE", 283, + "IDL_ONEWAY", 284, + "IDL_IDEMPOTENT", 285, + "IDL_VOID", 286, + "IDL_IN", 287, + "IDL_OUT", 288, + "IDL_INOUT", 289, + "IDL_RAISES", 290, + "IDL_CONTEXT", 291, + "IDL_NATIVE", 292, + "IDL_INTEGER_LITERAL", 293, + "IDL_STRING_LITERAL", 294, + "IDL_CHARACTER_LITERAL", 295, + "IDL_FLOATING_PT_LITERAL", 296, + "IDL_TRUETOK", 297, + "IDL_FALSETOK", 298, + "IDL_SCOPE_DELIMITOR", 299, + "IDL_LEFT_SHIFT", 300, + "IDL_RIGHT_SHIFT", 301, + "-unknown-", -1 /* ends search */ }; char * yyreds[] = @@ -649,6 +650,7 @@ char * yyreds[] = "type_dcl : struct_type", "type_dcl : union_type", "type_dcl : enum_type", + "type_dcl : IDL_NATIVE simple_declarator", "type_declarator : type_spec", "type_declarator : type_spec at_least_one_declarator", "type_spec : simple_type_spec", @@ -833,9 +835,6 @@ char * yyreds[] = * Copyright (c) 1993 by Sun Microsystems, Inc. */ -#if !defined (ACE_WIN32) -#pragma ident "@(#)yaccpar 6.12 93/06/07 SMI" -#endif /* ACE_WIN32 */ /* ** Skeleton parser driver for yacc output @@ -898,7 +897,7 @@ int yychar; /* current input token number */ #define YYLEX() yycvtok(yylex()) /* ** yycvtok - return a token if i is a wchar_t value that exceeds 255. -** If i<255, i itself is the token. If i>255 but the neither +** If i<255, i itself is the token. If i>255 but the neither ** of the 30th or 31st bit is on, i is already a token. */ #if defined(__STDC__) || defined(__cplusplus) @@ -919,7 +918,7 @@ int yycvtok(i) int i; while ((last>=first)&&(first>=0)) {/*Binary search loop*/ mid = (first+last)/2; j = yymbchars[mid].character; - if( j==i ){/*Found*/ + if( j==i ){/*Found*/ return yymbchars[mid].tvalue; }else if( j<i ){ first = mid + 1; @@ -1361,75 +1360,75 @@ int yyparse() */ switch( yytmp ) { - + case 4: -# line 238 "idl.yy" +# line 240 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen); } break; case 5: -# line 242 "idl.yy" +# line 244 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 6: -# line 246 "idl.yy" +# line 248 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen); } break; case 7: -# line 250 "idl.yy" +# line 252 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 8: -# line 254 "idl.yy" +# line 256 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen); } break; case 9: -# line 258 "idl.yy" +# line 260 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 10: -# line 262 "idl.yy" +# line 264 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceDeclSeen); } break; case 11: -# line 266 "idl.yy" +# line 268 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 12: -# line 270 "idl.yy" +# line 272 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ModuleDeclSeen); } break; case 13: -# line 274 "idl.yy" +# line 276 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 14: -# line 278 "idl.yy" +# line 280 "idl.yy" { idl_global->err()->syntax_error(idl_global->parse_state()); } break; case 15: -# line 282 "idl.yy" +# line 284 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); yyerrok; } break; case 16: -# line 289 "idl.yy" +# line 291 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSeen); } break; case 17: -# line 293 "idl.yy" +# line 295 "idl.yy" { UTL_ScopedName *n = new UTL_ScopedName(new Identifier(yypvt[-0].strval, 1, 0, I_FALSE), NULL); @@ -1451,17 +1450,17 @@ case 17: idl_global->scopes()->push(m); } break; case 18: -# line 314 "idl.yy" +# line 316 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ModuleSqSeen); } break; case 19: -# line 318 "idl.yy" +# line 320 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ModuleBodySeen); } break; case 20: -# line 322 "idl.yy" +# line 324 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ModuleQsSeen); /* @@ -1470,7 +1469,7 @@ case 20: idl_global->scopes()->pop(); } break; case 23: -# line 338 "idl.yy" +# line 340 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Interface *i = NULL; @@ -1555,17 +1554,17 @@ case 23: idl_global->scopes()->push(i); } break; case 24: -# line 422 "idl.yy" +# line 424 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSqSeen); } break; case 25: -# line 426 "idl.yy" +# line 428 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceBodySeen); } break; case 26: -# line 430 "idl.yy" +# line 432 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceQsSeen); /* @@ -1574,18 +1573,18 @@ case 26: idl_global->scopes()->pop(); } break; case 27: -# line 441 "idl.yy" +# line 443 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceSeen); } break; case 28: -# line 445 "idl.yy" +# line 447 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InterfaceIDSeen); yyval.idval = yypvt[-0].idval; } break; case 29: -# line 453 "idl.yy" +# line 455 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InheritSpecSeen); /* @@ -1597,93 +1596,93 @@ case 29: yyval.ihval = new FE_InterfaceHeader(new UTL_ScopedName(yypvt[-1].idval, NULL), yypvt[-0].nlval); } break; case 30: -# line 467 "idl.yy" +# line 469 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_InheritColonSeen); } break; case 31: -# line 471 "idl.yy" +# line 473 "idl.yy" { yyval.nlval = yypvt[-0].nlval; } break; case 32: -# line 475 "idl.yy" +# line 477 "idl.yy" { yyval.nlval = NULL; } break; case 35: -# line 487 "idl.yy" +# line 489 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_TypeDeclSeen); } break; case 36: -# line 491 "idl.yy" +# line 493 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 37: -# line 495 "idl.yy" +# line 497 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ConstDeclSeen); } break; case 38: -# line 499 "idl.yy" +# line 501 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 39: -# line 503 "idl.yy" +# line 505 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ExceptDeclSeen); } break; case 40: -# line 507 "idl.yy" +# line 509 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 41: -# line 511 "idl.yy" +# line 513 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_AttrDeclSeen); } break; case 42: -# line 515 "idl.yy" +# line 517 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 43: -# line 519 "idl.yy" +# line 521 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpDeclSeen); } break; case 44: -# line 523 "idl.yy" +# line 525 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } break; case 45: -# line 527 "idl.yy" +# line 529 "idl.yy" { idl_global->err()->syntax_error(idl_global->parse_state()); } break; case 46: -# line 531 "idl.yy" +# line 533 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); yyerrok; } break; case 47: -# line 539 "idl.yy" +# line 541 "idl.yy" { yyval.nlval = new UTL_NameList(yypvt[-1].idlist, yypvt[-0].nlval); } break; case 48: -# line 547 "idl.yy" +# line 549 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SNListCommaSeen); } break; case 49: -# line 551 "idl.yy" +# line 553 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ScopedNameSeen); @@ -1695,24 +1694,24 @@ case 49: } } break; case 50: -# line 562 "idl.yy" +# line 564 "idl.yy" { yyval.nlval = NULL; } break; case 51: -# line 569 "idl.yy" +# line 571 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen); yyval.idlist = new UTL_IdList(yypvt[-0].idval, NULL); } break; case 52: -# line 575 "idl.yy" +# line 577 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen); } break; case 53: -# line 579 "idl.yy" +# line 581 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen); @@ -1720,12 +1719,12 @@ case 53: new UTL_IdList(yypvt[-0].idval, NULL)); } break; case 54: -# line 587 "idl.yy" +# line 589 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ScopeDelimSeen); } break; case 55: -# line 591 "idl.yy" +# line 593 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SN_IDSeen); @@ -1733,12 +1732,12 @@ case 55: yyval.idlist = yypvt[-3].idlist; } break; case 56: -# line 600 "idl.yy" +# line 602 "idl.yy" { yyval.idval = new Identifier(yypvt[-0].strval, 1, 0, I_FALSE); } break; case 57: -# line 607 "idl.yy" +# line 609 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = new UTL_ScopedName(yypvt[-0].idval, NULL); @@ -1756,27 +1755,27 @@ case 57: } } break; case 58: -# line 627 "idl.yy" +# line 629 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ConstSeen); } break; case 59: -# line 631 "idl.yy" +# line 633 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ConstTypeSeen); } break; case 60: -# line 635 "idl.yy" +# line 637 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ConstIDSeen); } break; case 61: -# line 639 "idl.yy" +# line 641 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ConstAssignSeen); } break; case 62: -# line 643 "idl.yy" +# line 645 "idl.yy" { UTL_ScopedName *n = new UTL_ScopedName(yypvt[-4].idval, NULL); UTL_Scope *s = idl_global->scopes()->top_non_null(); @@ -1802,17 +1801,17 @@ case 62: } } break; case 68: -# line 676 "idl.yy" +# line 678 "idl.yy" { yyval.etval = AST_Expression::EV_string; } break; case 69: -# line 680 "idl.yy" +# line 682 "idl.yy" { yyval.etval = AST_Expression::EV_wstring; } break; case 70: -# line 684 "idl.yy" +# line 686 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Decl *d = NULL; @@ -1848,78 +1847,78 @@ case 70: yyval.etval = AST_Expression::EV_any; } break; case 74: -# line 726 "idl.yy" +# line 728 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_or, yypvt[-2].exval, yypvt[-0].exval); } break; case 76: -# line 734 "idl.yy" +# line 736 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_xor, yypvt[-2].exval, yypvt[-0].exval); } break; case 78: -# line 742 "idl.yy" +# line 744 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_and, yypvt[-2].exval, yypvt[-0].exval); } break; case 80: -# line 750 "idl.yy" +# line 752 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_right,yypvt[-2].exval,yypvt[-0].exval); } break; case 81: -# line 754 "idl.yy" +# line 756 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_left,yypvt[-2].exval,yypvt[-0].exval); } break; case 83: -# line 762 "idl.yy" +# line 764 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_add, yypvt[-2].exval, yypvt[-0].exval); } break; case 84: -# line 766 "idl.yy" +# line 768 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_minus,yypvt[-2].exval,yypvt[-0].exval); } break; case 86: -# line 774 "idl.yy" +# line 776 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_mul, yypvt[-2].exval, yypvt[-0].exval); } break; case 87: -# line 778 "idl.yy" +# line 780 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_div, yypvt[-2].exval, yypvt[-0].exval); } break; case 88: -# line 782 "idl.yy" +# line 784 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_mod, yypvt[-2].exval, yypvt[-0].exval); } break; case 90: -# line 790 "idl.yy" +# line 792 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_u_plus, yypvt[-0].exval, NULL); } break; case 91: -# line 796 "idl.yy" +# line 798 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_u_minus, yypvt[-0].exval, NULL); } break; case 92: -# line 802 "idl.yy" +# line 804 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(AST_Expression::EC_bit_neg, yypvt[-0].exval, NULL); } break; case 93: -# line 811 "idl.yy" +# line 813 "idl.yy" { /* * An expression which is a scoped name is not resolved now, @@ -1929,72 +1928,95 @@ case 93: yyval.exval = idl_global->gen()->create_expr(yypvt[-0].idlist); } break; case 95: -# line 821 "idl.yy" +# line 823 "idl.yy" { yyval.exval = yypvt[-1].exval; } break; case 96: -# line 828 "idl.yy" +# line 830 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(yypvt[-0].ival); } break; case 97: -# line 832 "idl.yy" +# line 834 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(yypvt[-0].sval); } break; case 98: -# line 836 "idl.yy" +# line 838 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(yypvt[-0].cval); } break; case 99: -# line 840 "idl.yy" +# line 842 "idl.yy" { yyval.exval = idl_global->gen()->create_expr(yypvt[-0].dval); } break; case 100: -# line 844 "idl.yy" +# line 846 "idl.yy" { yyval.exval = idl_global->gen()->create_expr((idl_bool) I_TRUE, AST_Expression::EV_bool); } break; case 101: -# line 849 "idl.yy" +# line 851 "idl.yy" { yyval.exval = idl_global->gen()->create_expr((idl_bool) I_FALSE, AST_Expression::EV_bool); } break; case 102: -# line 857 "idl.yy" +# line 859 "idl.yy" { yypvt[-0].exval->evaluate(AST_Expression::EK_const); yyval.exval = idl_global->gen()->create_expr(yypvt[-0].exval, AST_Expression::EV_ulong); } break; case 103: -# line 865 "idl.yy" +# line 867 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_TypedefSeen); } break; case 104: -# line 868 "idl.yy" +# line 870 "idl.yy" {yyval.ival = 0;} break; case 105: -# line 869 "idl.yy" +# line 871 "idl.yy" { yyval.ival = 0;} break; case 106: -# line 870 "idl.yy" +# line 872 "idl.yy" { yyval.ival = 0;} break; case 107: -# line 871 "idl.yy" +# line 873 "idl.yy" { yyval.ival = 0;} break; case 108: -# line 876 "idl.yy" +# line 875 "idl.yy" +{ + UTL_Scope *s = idl_global->scopes()->top_non_null(); + AST_Native *node = NULL; + AST_Decl *v = NULL; + UTL_StrList *p = idl_global->pragmas(); + + ACE_UNUSED_ARG (v); + + idl_global->set_parse_state(IDL_GlobalData::PS_NativeSeen); + /* + * Create a node representing a Native and add it to its + * enclosing scope + */ + if (s != NULL) { + node = idl_global->gen()->create_native (yypvt[-0].deval->name (), p); + /* + * Add it to its defining scope + */ + (void) s->fe_add_native (node); + } + } break; +case 109: +# line 900 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_TypeSpecSeen); } break; -case 109: -# line 880 "idl.yy" +case 110: +# line 904 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_DecllistActiveIterator *l; @@ -2003,7 +2025,7 @@ case 109: AST_Decl *v = NULL; UTL_StrList *p = idl_global->pragmas(); - ACE_UNUSED_ARG (v); + ACE_UNUSED_ARG (v); idl_global->set_parse_state(IDL_GlobalData::PS_DeclaratorsSeen); /* @@ -2025,13 +2047,13 @@ case 109: delete l; } } break; -case 112: -# line 919 "idl.yy" +case 113: +# line 943 "idl.yy" { yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(yypvt[-0].etval); } break; -case 114: -# line 924 "idl.yy" +case 115: +# line 948 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Decl *d = NULL; @@ -2042,18 +2064,18 @@ case 114: idl_global->err()->lookup_error(yypvt[-0].idlist); yyval.dcval = d; } break; -case 127: -# line 959 "idl.yy" +case 128: +# line 983 "idl.yy" { yyval.dlval = new UTL_DeclList(yypvt[-1].deval, yypvt[-0].dlval); } break; -case 128: -# line 967 "idl.yy" +case 129: +# line 991 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen); } break; -case 129: -# line 971 "idl.yy" +case 130: +# line 995 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen); @@ -2064,23 +2086,23 @@ case 129: yyval.dlval = yypvt[-3].dlval; } } break; -case 130: -# line 982 "idl.yy" +case 131: +# line 1006 "idl.yy" { yyval.dlval = NULL; } break; -case 133: -# line 994 "idl.yy" +case 134: +# line 1018 "idl.yy" { yyval.dlval = new UTL_DeclList(yypvt[-1].deval, yypvt[-0].dlval); } break; -case 134: -# line 1002 "idl.yy" +case 135: +# line 1026 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DeclsCommaSeen); } break; -case 135: -# line 1006 "idl.yy" +case 136: +# line 1030 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DeclsDeclSeen); @@ -2091,101 +2113,101 @@ case 135: yyval.dlval = yypvt[-3].dlval; } } break; -case 136: -# line 1017 "idl.yy" +case 137: +# line 1041 "idl.yy" { yyval.dlval = NULL; } break; -case 137: -# line 1024 "idl.yy" +case 138: +# line 1048 "idl.yy" { yyval.deval = new FE_Declarator(new UTL_ScopedName(yypvt[-0].idval, NULL), FE_Declarator::FD_simple, NULL); } break; -case 138: -# line 1032 "idl.yy" +case 139: +# line 1056 "idl.yy" { yyval.deval = new FE_Declarator(new UTL_ScopedName(yypvt[-0].dcval->local_name(), NULL), FE_Declarator::FD_complex, yypvt[-0].dcval); } break; -case 141: -# line 1046 "idl.yy" +case 142: +# line 1070 "idl.yy" { yyval.etval = AST_Expression::EV_long; } break; -case 142: -# line 1050 "idl.yy" +case 143: +# line 1074 "idl.yy" { yyval.etval = AST_Expression::EV_longlong; } break; -case 143: -# line 1054 "idl.yy" +case 144: +# line 1078 "idl.yy" { yyval.etval = AST_Expression::EV_short; } break; -case 144: -# line 1061 "idl.yy" +case 145: +# line 1085 "idl.yy" { yyval.etval = AST_Expression::EV_ulong; } break; -case 145: -# line 1065 "idl.yy" +case 146: +# line 1089 "idl.yy" { yyval.etval = AST_Expression::EV_ulonglong; } break; -case 146: -# line 1069 "idl.yy" +case 147: +# line 1093 "idl.yy" { yyval.etval = AST_Expression::EV_ushort; } break; -case 147: -# line 1076 "idl.yy" +case 148: +# line 1100 "idl.yy" { yyval.etval = AST_Expression::EV_double; } break; -case 148: -# line 1080 "idl.yy" +case 149: +# line 1104 "idl.yy" { yyval.etval = AST_Expression::EV_float; } break; -case 149: -# line 1084 "idl.yy" +case 150: +# line 1108 "idl.yy" { yyval.etval = AST_Expression::EV_longdouble; } break; -case 150: -# line 1091 "idl.yy" +case 151: +# line 1115 "idl.yy" { yyval.etval = AST_Expression::EV_char; } break; -case 151: -# line 1095 "idl.yy" +case 152: +# line 1119 "idl.yy" { yyval.etval = AST_Expression::EV_wchar; } break; -case 152: -# line 1102 "idl.yy" +case 153: +# line 1126 "idl.yy" { yyval.etval = AST_Expression::EV_octet; } break; -case 153: -# line 1109 "idl.yy" +case 154: +# line 1133 "idl.yy" { yyval.etval = AST_Expression::EV_bool; } break; -case 154: -# line 1116 "idl.yy" +case 155: +# line 1140 "idl.yy" { yyval.etval = AST_Expression::EV_any; } break; -case 155: -# line 1123 "idl.yy" +case 156: +# line 1147 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StructSeen); } break; -case 156: -# line 1127 "idl.yy" +case 157: +# line 1151 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = new UTL_ScopedName(yypvt[-0].idval, NULL); @@ -2209,18 +2231,18 @@ case 156: */ idl_global->scopes()->push(d); } break; -case 157: -# line 1151 "idl.yy" +case 158: +# line 1175 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StructSqSeen); } break; -case 158: -# line 1155 "idl.yy" +case 159: +# line 1179 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StructBodySeen); } break; -case 159: -# line 1159 "idl.yy" +case 160: +# line 1183 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StructQsSeen); /* @@ -2235,18 +2257,18 @@ case 159: idl_global->scopes()->pop(); } } break; -case 163: -# line 1184 "idl.yy" +case 164: +# line 1208 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_MemberTypeSeen); } break; -case 164: -# line 1188 "idl.yy" +case 165: +# line 1212 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_MemberDeclsSeen); } break; -case 165: -# line 1192 "idl.yy" +case 166: +# line 1216 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_DecllistActiveIterator *l = NULL; @@ -2279,44 +2301,44 @@ case 165: delete l; } } break; -case 166: -# line 1225 "idl.yy" +case 167: +# line 1249 "idl.yy" { idl_global->err()->syntax_error(idl_global->parse_state()); } break; -case 167: -# line 1229 "idl.yy" +case 168: +# line 1253 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); yyerrok; } break; -case 168: -# line 1237 "idl.yy" +case 169: +# line 1261 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionSeen); } break; -case 169: -# line 1241 "idl.yy" +case 170: +# line 1265 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionIDSeen); } break; -case 170: -# line 1245 "idl.yy" +case 171: +# line 1269 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SwitchSeen); } break; -case 171: -# line 1249 "idl.yy" +case 172: +# line 1273 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SwitchOpenParSeen); } break; -case 172: -# line 1253 "idl.yy" +case 173: +# line 1277 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SwitchTypeSeen); } break; -case 173: -# line 1257 "idl.yy" +case 174: +# line 1281 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = new UTL_ScopedName(yypvt[-8].idval, NULL); @@ -2345,18 +2367,18 @@ case 173: */ idl_global->scopes()->push(u); } break; -case 174: -# line 1286 "idl.yy" +case 175: +# line 1310 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionSqSeen); } break; -case 175: -# line 1290 "idl.yy" +case 176: +# line 1314 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionBodySeen); } break; -case 176: -# line 1294 "idl.yy" +case 177: +# line 1318 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionQsSeen); /* @@ -2371,28 +2393,28 @@ case 176: idl_global->scopes()->pop(); } } break; -case 177: -# line 1312 "idl.yy" -{ - yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(yypvt[-0].etval); - } break; case 178: -# line 1316 "idl.yy" +# line 1336 "idl.yy" { yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(yypvt[-0].etval); } break; case 179: -# line 1320 "idl.yy" +# line 1340 "idl.yy" { yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(yypvt[-0].etval); } break; case 180: -# line 1324 "idl.yy" +# line 1344 "idl.yy" +{ + yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(yypvt[-0].etval); + } break; +case 181: +# line 1348 "idl.yy" { yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(yypvt[-0].etval); } break; -case 182: -# line 1329 "idl.yy" +case 183: +# line 1353 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Decl *d = NULL; @@ -2452,18 +2474,18 @@ case 182: if (yyval.dcval == NULL) idl_global->err()->lookup_error(yypvt[-0].idlist); } break; -case 186: -# line 1399 "idl.yy" +case 187: +# line 1423 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionLabelSeen); } break; -case 187: -# line 1403 "idl.yy" +case 188: +# line 1427 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemSeen); } break; -case 188: -# line 1407 "idl.yy" +case 189: +# line 1431 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_LabellistActiveIterator *l = NULL; @@ -2491,24 +2513,24 @@ case 188: delete l; } } break; -case 189: -# line 1435 "idl.yy" +case 190: +# line 1459 "idl.yy" { idl_global->err()->syntax_error(idl_global->parse_state()); } break; -case 190: -# line 1439 "idl.yy" +case 191: +# line 1464 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); yyerrok; } break; -case 191: -# line 1447 "idl.yy" +case 192: +# line 1472 "idl.yy" { yyval.llval = new UTL_LabelList(yypvt[-1].ulval, yypvt[-0].llval); } break; -case 192: -# line 1454 "idl.yy" +case 193: +# line 1479 "idl.yy" { if (yypvt[-1].llval == NULL) yyval.llval = new UTL_LabelList(yypvt[-0].ulval, NULL); @@ -2517,18 +2539,18 @@ case 192: yyval.llval = yypvt[-1].llval; } } break; -case 193: -# line 1463 "idl.yy" +case 194: +# line 1488 "idl.yy" { yyval.llval = NULL; } break; -case 194: -# line 1470 "idl.yy" +case 195: +# line 1495 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DefaultSeen); } break; -case 195: -# line 1474 "idl.yy" +case 196: +# line 1499 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen); @@ -2536,31 +2558,31 @@ case 195: create_union_label(AST_UnionLabel::UL_default, NULL); } break; -case 196: -# line 1482 "idl.yy" +case 197: +# line 1507 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_CaseSeen); } break; -case 197: -# line 1486 "idl.yy" +case 198: +# line 1511 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_LabelExprSeen); } break; -case 198: -# line 1490 "idl.yy" +case 199: +# line 1515 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_LabelColonSeen); yyval.ulval = idl_global->gen()->create_union_label(AST_UnionLabel::UL_label, yypvt[-2].exval); } break; -case 199: -# line 1500 "idl.yy" +case 200: +# line 1525 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemTypeSeen); } break; -case 200: -# line 1504 "idl.yy" +case 201: +# line 1529 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_UnionElemDeclSeen); /* @@ -2583,13 +2605,13 @@ case 200: idl_global->pragmas()); } } break; -case 201: -# line 1530 "idl.yy" +case 202: +# line 1555 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_EnumSeen); } break; -case 202: -# line 1534 "idl.yy" +case 203: +# line 1559 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = new UTL_ScopedName(yypvt[-0].idval, NULL); @@ -2616,18 +2638,18 @@ case 202: */ idl_global->scopes()->push(e); } break; -case 203: -# line 1561 "idl.yy" +case 204: +# line 1586 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_EnumSqSeen); } break; -case 204: -# line 1565 "idl.yy" +case 205: +# line 1590 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_EnumBodySeen); } break; -case 205: -# line 1569 "idl.yy" +case 206: +# line 1594 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_EnumQsSeen); /* @@ -2640,13 +2662,13 @@ case 205: idl_global->scopes()->pop(); } } break; -case 207: -# line 1588 "idl.yy" +case 208: +# line 1613 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_EnumCommaSeen); } break; -case 210: -# line 1597 "idl.yy" +case 211: +# line 1622 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = @@ -2666,18 +2688,18 @@ case 210: (void) s->fe_add_enum_val(e); } } break; -case 211: -# line 1621 "idl.yy" +case 212: +# line 1646 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SequenceCommaSeen); } break; -case 212: -# line 1625 "idl.yy" +case 213: +# line 1650 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SequenceExprSeen); } break; -case 213: -# line 1629 "idl.yy" +case 214: +# line 1654 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SequenceQsSeen); /* @@ -2707,8 +2729,8 @@ case 213: } } } break; -case 214: -# line 1660 "idl.yy" +case 215: +# line 1685 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SequenceQsSeen); /* @@ -2738,8 +2760,8 @@ case 214: } } } break; -case 215: -# line 1693 "idl.yy" +case 216: +# line 1718 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SequenceSeen); /* @@ -2747,29 +2769,29 @@ case 215: */ idl_global->scopes()->push(NULL); } break; -case 216: -# line 1701 "idl.yy" +case 217: +# line 1726 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SequenceSqSeen); } break; -case 217: -# line 1705 "idl.yy" +case 218: +# line 1730 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_SequenceTypeSeen); yyval.dcval = yypvt[-0].dcval; } break; -case 218: -# line 1714 "idl.yy" +case 219: +# line 1739 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen); } break; -case 219: -# line 1718 "idl.yy" +case 220: +# line 1743 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen); } break; -case 220: -# line 1722 "idl.yy" +case 221: +# line 1747 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen); /* @@ -2787,8 +2809,8 @@ case 220: ->fe_add_string(AST_String::narrow_from_decl(yyval.dcval)); } } break; -case 221: -# line 1740 "idl.yy" +case 222: +# line 1765 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringCompleted); /* @@ -2803,23 +2825,23 @@ case 221: (void) idl_global->root() ->fe_add_string(AST_String::narrow_from_decl(yyval.dcval)); } break; -case 222: -# line 1758 "idl.yy" +case 223: +# line 1783 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen); } break; -case 223: -# line 1766 "idl.yy" +case 224: +# line 1791 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringSqSeen); } break; -case 224: -# line 1770 "idl.yy" +case 225: +# line 1795 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringExprSeen); } break; -case 225: -# line 1774 "idl.yy" +case 226: +# line 1799 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringQsSeen); /* @@ -2837,8 +2859,8 @@ case 225: ->fe_add_string(AST_String::narrow_from_decl(yyval.dcval)); } } break; -case 226: -# line 1792 "idl.yy" +case 227: +# line 1817 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringCompleted); /* @@ -2853,18 +2875,18 @@ case 226: (void) idl_global->root() ->fe_add_string(AST_String::narrow_from_decl(yyval.dcval)); } break; -case 227: -# line 1810 "idl.yy" +case 228: +# line 1835 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_StringSeen); } break; -case 228: -# line 1817 "idl.yy" +case 229: +# line 1842 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ArrayIDSeen); } break; -case 229: -# line 1821 "idl.yy" +case 230: +# line 1846 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ArrayCompleted); /* @@ -2875,13 +2897,13 @@ case 229: yypvt[-0].elval->length(), yypvt[-0].elval); } } break; -case 230: -# line 1835 "idl.yy" +case 231: +# line 1860 "idl.yy" { yyval.elval = new UTL_ExprList(yypvt[-1].exval, yypvt[-0].elval); } break; -case 231: -# line 1842 "idl.yy" +case 232: +# line 1867 "idl.yy" { if (yypvt[-1].elval == NULL) yyval.elval = new UTL_ExprList(yypvt[-0].exval, NULL); @@ -2890,23 +2912,23 @@ case 231: yyval.elval = yypvt[-1].elval; } } break; -case 232: -# line 1851 "idl.yy" +case 233: +# line 1876 "idl.yy" { yyval.elval = NULL; } break; -case 233: -# line 1858 "idl.yy" +case 234: +# line 1883 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DimSqSeen); } break; -case 234: -# line 1862 "idl.yy" +case 235: +# line 1887 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DimExprSeen); } break; -case 235: -# line 1866 "idl.yy" +case 236: +# line 1891 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_DimQsSeen); /* @@ -2919,18 +2941,18 @@ case 235: } else yyval.exval = yypvt[-2].exval; } break; -case 236: -# line 1883 "idl.yy" +case 237: +# line 1908 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_AttrSeen); } break; -case 237: -# line 1887 "idl.yy" +case 238: +# line 1912 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_AttrTypeSeen); } break; -case 238: -# line 1891 "idl.yy" +case 239: +# line 1916 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_DecllistActiveIterator *l = NULL; @@ -2961,24 +2983,24 @@ case 238: delete l; } } break; -case 239: -# line 1925 "idl.yy" +case 240: +# line 1950 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_AttrROSeen); yyval.bval = I_TRUE; } break; -case 240: -# line 1930 "idl.yy" +case 241: +# line 1955 "idl.yy" { yyval.bval = I_FALSE; } break; -case 241: -# line 1937 "idl.yy" +case 242: +# line 1962 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSeen); } break; -case 242: -# line 1941 "idl.yy" +case 243: +# line 1966 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = new UTL_ScopedName(yypvt[-0].idval, NULL); @@ -3002,18 +3024,18 @@ case 242: */ idl_global->scopes()->push(e); } break; -case 243: -# line 1965 "idl.yy" +case 244: +# line 1990 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ExceptSqSeen); } break; -case 244: -# line 1969 "idl.yy" +case 245: +# line 1994 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ExceptBodySeen); } break; -case 245: -# line 1973 "idl.yy" +case 246: +# line 1998 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_ExceptQsSeen); /* @@ -3021,13 +3043,13 @@ case 245: */ idl_global->scopes()->pop(); } break; -case 246: -# line 1985 "idl.yy" +case 247: +# line 2010 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpTypeSeen); } break; -case 247: -# line 1989 "idl.yy" +case 248: +# line 2014 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); UTL_ScopedName *n = @@ -3056,18 +3078,18 @@ case 247: */ idl_global->scopes()->push(o); } break; -case 248: -# line 2018 "idl.yy" +case 249: +# line 2043 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpParsCompleted); } break; -case 249: -# line 2022 "idl.yy" +case 250: +# line 2047 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseCompleted); } break; -case 250: -# line 2026 "idl.yy" +case 251: +# line 2051 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Operation *o = NULL; @@ -3089,67 +3111,67 @@ case 250: */ idl_global->scopes()->pop(); } break; -case 251: -# line 2051 "idl.yy" +case 252: +# line 2076 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen); yyval.ofval = AST_Operation::OP_oneway; } break; -case 252: -# line 2056 "idl.yy" +case 253: +# line 2081 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpAttrSeen); yyval.ofval = AST_Operation::OP_idempotent; } break; -case 253: -# line 2061 "idl.yy" +case 254: +# line 2086 "idl.yy" { yyval.ofval = AST_Operation::OP_noflags; } break; -case 255: -# line 2069 "idl.yy" +case 256: +# line 2094 "idl.yy" { yyval.dcval = idl_global->scopes()->bottom() ->lookup_primitive_type(AST_Expression::EV_void); } break; -case 256: -# line 2078 "idl.yy" +case 257: +# line 2103 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen); } break; -case 257: -# line 2082 "idl.yy" +case 258: +# line 2107 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen); } break; -case 258: -# line 2086 "idl.yy" +case 259: +# line 2111 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpSqSeen); } break; -case 259: -# line 2091 "idl.yy" +case 260: +# line 2116 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpQsSeen); } break; -case 261: -# line 2101 "idl.yy" +case 262: +# line 2126 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpParCommaSeen); } break; -case 264: -# line 2110 "idl.yy" +case 265: +# line 2135 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpParDirSeen); } break; -case 265: -# line 2114 "idl.yy" +case 266: +# line 2139 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpParTypeSeen); } break; -case 266: -# line 2118 "idl.yy" +case 267: +# line 2143 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Argument *a = NULL; @@ -3168,13 +3190,13 @@ case 266: } } } break; -case 267: -# line 2140 "idl.yy" +case 268: +# line 2165 "idl.yy" { yyval.dcval = idl_global->scopes()->bottom()->lookup_primitive_type(yypvt[-0].etval); } break; -case 269: -# line 2145 "idl.yy" +case 270: +# line 2170 "idl.yy" { UTL_Scope *s = idl_global->scopes()->top_non_null(); AST_Decl *d = NULL; @@ -3185,75 +3207,75 @@ case 269: idl_global->err()->lookup_error(yypvt[-0].idlist); yyval.dcval = d; } break; -case 270: -# line 2159 "idl.yy" +case 271: +# line 2184 "idl.yy" { yyval.dival = AST_Argument::dir_IN; } break; -case 271: -# line 2163 "idl.yy" +case 272: +# line 2188 "idl.yy" { yyval.dival = AST_Argument::dir_OUT; } break; -case 272: -# line 2167 "idl.yy" +case 273: +# line 2192 "idl.yy" { yyval.dival = AST_Argument::dir_INOUT; } break; -case 273: -# line 2174 "idl.yy" +case 274: +# line 2199 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSeen); } break; -case 274: -# line 2178 "idl.yy" +case 275: +# line 2203 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseSqSeen); } break; -case 275: -# line 2183 "idl.yy" +case 276: +# line 2208 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpRaiseQsSeen); yyval.nlval = yypvt[-1].nlval; } break; -case 276: -# line 2188 "idl.yy" +case 277: +# line 2213 "idl.yy" { yyval.nlval = NULL; } break; -case 277: -# line 2195 "idl.yy" +case 278: +# line 2220 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSeen); } break; -case 278: -# line 2199 "idl.yy" +case 279: +# line 2224 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpContextSqSeen); } break; -case 279: -# line 2204 "idl.yy" +case 280: +# line 2229 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpContextQsSeen); yyval.slval = yypvt[-1].slval; } break; -case 280: -# line 2209 "idl.yy" +case 281: +# line 2234 "idl.yy" { yyval.slval = NULL; } break; -case 281: -# line 2216 "idl.yy" +case 282: +# line 2241 "idl.yy" { yyval.slval = new UTL_StrList(yypvt[-1].sval, yypvt[-0].slval); } break; -case 282: -# line 2224 "idl.yy" +case 283: +# line 2249 "idl.yy" { idl_global->set_parse_state(IDL_GlobalData::PS_OpContextCommaSeen); } break; -case 283: -# line 2228 "idl.yy" +case 284: +# line 2253 "idl.yy" { if (yypvt[-3].slval == NULL) yyval.slval = new UTL_StrList(yypvt[-0].sval, NULL); @@ -3262,8 +3284,8 @@ case 283: yyval.slval = yypvt[-3].slval; } } break; -case 284: -# line 2237 "idl.yy" +case 285: +# line 2262 "idl.yy" { yyval.slval = NULL; } break; @@ -3271,4 +3293,3 @@ case 284: } goto yystack; /* reset registers in driver code */ } - |