summaryrefslogtreecommitdiff
path: root/TAO/TAO_IDL
diff options
context:
space:
mode:
authorKnut Petter Svendsen <knut@altuma.no>2020-01-24 16:03:14 +0100
committerKnut Petter Svendsen <knut@altuma.no>2020-01-24 16:03:14 +0100
commit41b654b2e0c6d9b6159c02971558363432c24d74 (patch)
treeeb674fc71d0bc1ab6612de3fdb777722f98bddce /TAO/TAO_IDL
parent0af017fd1ff2e70f47308d9e321a8a7ffcc41057 (diff)
parent468b6db323abaf2a18ae1f9870f99ddde0323711 (diff)
downloadATCD-41b654b2e0c6d9b6159c02971558363432c24d74.tar.gz
Merge branch 'master' of github.com:DOCGroup/ACE_TAO into thread_safe_eval
Diffstat (limited to 'TAO/TAO_IDL')
-rw-r--r--TAO/TAO_IDL/ast/ast_interface.cpp12
-rw-r--r--TAO/TAO_IDL/ast/ast_interface_fwd.cpp46
-rw-r--r--TAO/TAO_IDL/be/be_visitor_context.cpp4
-rw-r--r--TAO/TAO_IDL/fe/idl.tab.cpp2142
-rw-r--r--TAO/TAO_IDL/fe/idl.tab.hpp2
-rw-r--r--TAO/TAO_IDL/fe/idl.ypp62
-rw-r--r--TAO/TAO_IDL/fe/lookup_starter.txt3
-rw-r--r--TAO/TAO_IDL/fe/post_gperf.sed4
-rw-r--r--TAO/TAO_IDL/include/ast_field.h2
-rw-r--r--TAO/TAO_IDL/include/ast_interface_fwd.h18
-rw-r--r--TAO/TAO_IDL/include/utl_scope_T.cpp23
-rw-r--r--TAO/TAO_IDL/include/utl_stack.h15
-rw-r--r--TAO/TAO_IDL/tao_idl_fe.mpc7
-rw-r--r--TAO/TAO_IDL/util/utl_scope.cpp1
-rw-r--r--TAO/TAO_IDL/util/utl_stack.cpp35
15 files changed, 1205 insertions, 1171 deletions
diff --git a/TAO/TAO_IDL/ast/ast_interface.cpp b/TAO/TAO_IDL/ast/ast_interface.cpp
index 7c328590ba9..9e3d780b418 100644
--- a/TAO/TAO_IDL/ast/ast_interface.cpp
+++ b/TAO/TAO_IDL/ast/ast_interface.cpp
@@ -350,11 +350,7 @@ AST_Interface::fwd_redefinition_helper (AST_Interface *&i,
// Fwd redefinition should be in the same scope, so local
// lookup is all that's needed.
- AST_Decl *d = s->lookup_by_name_local (i->local_name (),
- false);
-
- AST_Interface *fd = 0;
-
+ AST_Decl *d = s->lookup_by_name_local (i->local_name (), false);
if (d != 0)
{
scope = d->defined_in ();
@@ -375,9 +371,7 @@ AST_Interface::fwd_redefinition_helper (AST_Interface *&i,
scope = parent->defined_in ();
}
- fd = AST_Interface::narrow_from_decl (d);
-
- // Successful?
+ AST_Interface *fd = dynamic_cast<AST_Interface *> (d);
if (fd == 0)
{
AST_Decl::NodeType nt = d->node_type ();
@@ -421,7 +415,6 @@ AST_Interface::fwd_redefinition_helper (AST_Interface *&i,
fd->redefine (i);
AST_InterfaceFwd *fwd = fd->fwd_decl ();
-
if (fwd != 0)
{
fwd->set_as_defined ();
@@ -636,7 +629,6 @@ AST_Interface::redefine (AST_Interface *from)
this->set_file_name (idl_global->filename ()->get_string ());
this->ifr_added_ = from->ifr_added_;
this->ifr_fwd_added_ = from->ifr_fwd_added_;
- this->fwd_decl_->set_as_defined ();
}
// Data accessors.
diff --git a/TAO/TAO_IDL/ast/ast_interface_fwd.cpp b/TAO/TAO_IDL/ast/ast_interface_fwd.cpp
index 5d01c81eebb..655008fd030 100644
--- a/TAO/TAO_IDL/ast/ast_interface_fwd.cpp
+++ b/TAO/TAO_IDL/ast/ast_interface_fwd.cpp
@@ -84,7 +84,8 @@ AST_InterfaceFwd::AST_InterfaceFwd (AST_Interface *dummy,
n),
AST_Type (AST_Decl::NT_interface_fwd,
n),
- is_defined_ (false)
+ is_defined_ (false),
+ has_ownership_ (true)
{
// Create a dummy placeholder for the forward declared interface. This
// interface node is not yet defined (n_inherits < 0), so some operations
@@ -206,9 +207,13 @@ AST_InterfaceFwd::full_definition (void)
void
AST_InterfaceFwd::set_full_definition (AST_Interface *nfd)
{
- this->pd_full_definition->destroy ();
- delete this->pd_full_definition;
- this->pd_full_definition = nfd;
+ if (pd_full_definition && has_ownership_)
+ {
+ pd_full_definition->destroy ();
+ delete pd_full_definition;
+ }
+ pd_full_definition = nfd;
+ has_ownership_ = false;
}
bool
@@ -230,11 +235,10 @@ AST_InterfaceFwd::is_defined (void)
{
// We could be looking at a superfluous forward decl
// of an interface already defined.
- AST_Interface *full = AST_Interface::narrow_from_decl (d);
-
+ AST_Interface *full = dynamic_cast<AST_Interface *> (d);
if (0 != full)
{
- this->is_defined_ = true;
+ set_as_defined ();
}
AST_InterfaceFwd *fwd =
@@ -248,7 +252,7 @@ AST_InterfaceFwd::is_defined (void)
// add_to_scope process.
if (0 != fwd && fwd->is_defined ())
{
- this->is_defined_ = true;
+ set_as_defined ();
}
}
}
@@ -258,29 +262,23 @@ AST_InterfaceFwd::is_defined (void)
}
void
-AST_InterfaceFwd::set_as_defined (void)
+AST_InterfaceFwd::set_as_defined ()
+{
+ is_defined_ = true;
+}
+
+void
+AST_InterfaceFwd::disown_full_definition ()
{
- this->is_defined_ = true;
+ has_ownership_ = false;
}
void
AST_InterfaceFwd::destroy (void)
{
- // The implementation of is_defined() accomodates
- // code generation issues and doesn't have the
- // correct semantics here. The older implementation
- // of is_defined is used in the IF block below to
- // check if our full definition allocation must be
- // destroyed.
- if (!this->is_defined_)
+ if (has_ownership_)
{
- // If our full definition is not defined, it
- // means that there was no full definition
- // for us in this compilation unit, so we
- // have to destroy this allocation.
- this->pd_full_definition->destroy ();
- delete this->pd_full_definition;
- this->pd_full_definition = 0;
+ set_full_definition (0);
}
this->AST_Type::destroy ();
diff --git a/TAO/TAO_IDL/be/be_visitor_context.cpp b/TAO/TAO_IDL/be/be_visitor_context.cpp
index 967f29da013..358281ed669 100644
--- a/TAO/TAO_IDL/be/be_visitor_context.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_context.cpp
@@ -11,6 +11,7 @@
#include "be_visitor_context.h"
#include "be_extern.h"
+#include "be_helper.h"
be_visitor_context::be_visitor_context (void)
: ast_visitor_context (),
@@ -101,7 +102,8 @@ be_visitor_context::stream (TAO_OutStream *os)
TAO_OutStream *
be_visitor_context::stream (void)
{
- return this->os_;
+ static TAO_OutStream null_stream;
+ return os_ ? os_ : &null_stream;
}
void
diff --git a/TAO/TAO_IDL/fe/idl.tab.cpp b/TAO/TAO_IDL/fe/idl.tab.cpp
index a71726da6c7..6dc65a170d7 100644
--- a/TAO/TAO_IDL/fe/idl.tab.cpp
+++ b/TAO/TAO_IDL/fe/idl.tab.cpp
@@ -147,16 +147,20 @@ extern "C" int tao_yywrap();
void tao_yyerror (const char *);
int tao_yylex (void);
extern "C" int tao_yywrap (void);
+
extern char tao_yytext[];
extern int tao_yyleng;
+
AST_Enum *tao_enum_constant_decl = 0;
AST_String *tao_string_decl = 0;
AST_Expression::ExprType t_param_const_type = AST_Expression::EV_none;
+bool stack_based_lookup_for_primary_expr = false;
+
#define TAO_YYDEBUG_LEXER_TEXT (tao_yytext[tao_yyleng] = '\0', tao_yytext)
// Compile Optional Tracing Output for Parser, can be enabled with --bison-trace
#define YYDEBUG 1
-#line 160 "fe/idl.tab.cpp"
+#line 164 "fe/idl.tab.cpp"
# ifndef YY_NULLPTR
# if defined __cplusplus
@@ -287,7 +291,7 @@ extern int tao_yydebug;
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
union YYSTYPE
{
-#line 158 "fe/idl.ypp"
+#line 162 "fe/idl.ypp"
AST_Decl *dcval; /* Decl value */
UTL_StrList *slval; /* String list */
@@ -332,7 +336,7 @@ union YYSTYPE
AST_Decls *decls_val;
Decl_Annotations_Pair *decl_annotations_pair_val;
-#line 336 "fe/idl.tab.cpp"
+#line 340 "fe/idl.tab.cpp"
};
typedef union YYSTYPE YYSTYPE;
@@ -646,66 +650,66 @@ static const yytype_uint8 yytranslate[] =
/* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 396, 396, 399, 400, 408, 423, 429, 430, 431,
- 436, 435, 444, 443, 452, 451, 460, 459, 468, 467,
- 476, 475, 484, 483, 492, 491, 500, 499, 508, 507,
- 516, 515, 524, 523, 532, 531, 540, 539, 548, 547,
- 561, 560, 572, 611, 615, 571, 631, 639, 653, 663,
- 693, 697, 638, 722, 726, 727, 731, 732, 737, 742,
- 736, 828, 833, 827, 904, 905, 910, 948, 952, 909,
- 969, 968, 980, 1017, 1047, 1080, 1079, 1088, 1095, 1096,
- 1097, 1098, 1102, 1107, 1112, 1155, 1159, 1111, 1188, 1231,
- 1235, 1186, 1254, 1252, 1292, 1291, 1303, 1307, 1314, 1319,
- 1327, 1352, 1380, 1446, 1447, 1451, 1452, 1453, 1458, 1462,
- 1469, 1488, 1489, 1493, 1508, 1515, 1514, 1523, 1522, 1531,
- 1530, 1539, 1538, 1547, 1546, 1555, 1554, 1563, 1562, 1571,
- 1570, 1583, 1595, 1593, 1618, 1625, 1635, 1634, 1660, 1658,
- 1683, 1693, 1704, 1748, 1775, 1807, 1811, 1815, 1819, 1806,
- 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1891, 1895, 1963,
- 1965, 1967, 1968, 1980, 1981, 1993, 1994, 2006, 2007, 2016,
- 2028, 2029, 2038, 2050, 2051, 2060, 2069, 2081, 2082, 2091,
- 2100, 2112, 2170, 2171, 2178, 2182, 2187, 2194, 2201, 2205,
- 2210, 2214, 2218, 2222, 2229, 2298, 2297, 2326, 2327, 2331,
- 2332, 2333, 2335, 2334, 2343, 2344, 2348, 2404, 2408, 2415,
- 2428, 2438, 2446, 2445, 2530, 2534, 2541, 2550, 2557, 2565,
- 2571, 2578, 2591, 2590, 2599, 2603, 2607, 2611, 2639, 2647,
- 2646, 2718, 2719, 2723, 2730, 2731, 2757, 2758, 2759, 2760,
- 2761, 2762, 2763, 2764, 2768, 2769, 2770, 2771, 2775, 2776,
- 2777, 2781, 2782, 2786, 2798, 2796, 2821, 2828, 2829, 2833,
- 2845, 2843, 2868, 2875, 2891, 2909, 2910, 2914, 2918, 2922,
- 2929, 2933, 2937, 2944, 2948, 2952, 2959, 2966, 2970, 2977,
- 2984, 2991, 2998, 3006, 3005, 3019, 3050, 3054, 3018, 3071,
- 3074, 3075, 3079, 3097, 3101, 3096, 3159, 3158, 3171, 3170,
- 3183, 3187, 3220, 3224, 3283, 3287, 3182, 3309, 3316, 3329,
- 3338, 3345, 3346, 3455, 3458, 3459, 3464, 3468, 3463, 3504,
- 3503, 3515, 3525, 3543, 3551, 3550, 3564, 3568, 3563, 3584,
- 3583, 3634, 3659, 3683, 3687, 3718, 3722, 3682, 3746, 3751,
- 3749, 3755, 3759, 3799, 3803, 3797, 3891, 3962, 3971, 3961,
- 3985, 3995, 3999, 3993, 4044, 4070, 4079, 4083, 4077, 4119,
- 4145, 4153, 4152, 4199, 4209, 4227, 4235, 4239, 4234, 4299,
- 4300, 4305, 4309, 4313, 4317, 4304, 4376, 4380, 4384, 4388,
- 4375, 4456, 4460, 4489, 4493, 4455, 4510, 4514, 4575, 4579,
- 4509, 4616, 4621, 4626, 4633, 4634, 4645, 4650, 4693, 4644,
- 4713, 4712, 4721, 4720, 4731, 4736, 4734, 4740, 4745, 4749,
- 4744, 4788, 4787, 4796, 4795, 4806, 4811, 4809, 4815, 4820,
- 4824, 4819, 4869, 4876, 4877, 4878, 4985, 4989, 4993, 5001,
- 5005, 5000, 5014, 5022, 5026, 5021, 5035, 5043, 5047, 5042,
- 5056, 5064, 5068, 5063, 5077, 5084, 5096, 5094, 5117, 5124,
- 5154, 5193, 5194, 5198, 5229, 5268, 5272, 5228, 5291, 5295,
- 5289, 5336, 5335, 5343, 5350, 5351, 5356, 5355, 5364, 5363,
- 5372, 5371, 5380, 5379, 5388, 5387, 5396, 5395, 5404, 5403,
- 5413, 5503, 5509, 5534, 5640, 5649, 5653, 5659, 5731, 5803,
- 5877, 5876, 5926, 5930, 5934, 5938, 5942, 5946, 5925, 5999,
- 5998, 6006, 6013, 6018, 6026, 6030, 6025, 6040, 6041, 6045,
- 6047, 6046, 6055, 6054, 6067, 6090, 6065, 6116, 6143, 6114,
- 6167, 6168, 6169, 6173, 6174, 6178, 6207, 6239, 6283, 6287,
- 6237, 6304, 6313, 6331, 6342, 6341, 6379, 6428, 6432, 6377,
- 6449, 6453, 6460, 6464, 6468, 6472, 6476, 6480, 6484, 6488,
- 6492, 6496, 6504, 6535, 6548, 6555, 6580, 6598, 6605, 6620,
- 6627, 6637, 6641, 6661, 6665, 6636, 6680, 6686, 6689, 6696,
- 6695, 6702, 6701, 6708, 6707, 6717, 6786, 6836, 6852, 6865,
- 6872, 6931, 6939, 6943, 6938, 7004, 7008, 7003, 7021, 7022,
- 7027, 7026, 7035, 7034, 7043, 7042, 7051, 7050
+ 0, 400, 400, 403, 404, 412, 427, 433, 434, 435,
+ 440, 439, 448, 447, 456, 455, 464, 463, 472, 471,
+ 480, 479, 488, 487, 496, 495, 504, 503, 512, 511,
+ 520, 519, 528, 527, 536, 535, 544, 543, 552, 551,
+ 565, 564, 576, 615, 619, 575, 635, 643, 657, 667,
+ 697, 701, 642, 726, 730, 731, 735, 736, 741, 746,
+ 740, 832, 837, 831, 908, 909, 914, 952, 956, 913,
+ 973, 972, 984, 1021, 1051, 1084, 1083, 1092, 1099, 1100,
+ 1101, 1102, 1106, 1111, 1116, 1159, 1163, 1115, 1192, 1235,
+ 1239, 1190, 1258, 1256, 1296, 1295, 1307, 1311, 1318, 1323,
+ 1330, 1355, 1383, 1449, 1450, 1454, 1455, 1456, 1461, 1465,
+ 1472, 1491, 1492, 1496, 1511, 1518, 1517, 1526, 1525, 1534,
+ 1533, 1542, 1541, 1550, 1549, 1558, 1557, 1566, 1565, 1574,
+ 1573, 1586, 1598, 1596, 1621, 1628, 1638, 1637, 1663, 1661,
+ 1686, 1696, 1707, 1751, 1778, 1810, 1814, 1818, 1822, 1809,
+ 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1894, 1898, 1966,
+ 1968, 1970, 1971, 1983, 1984, 1996, 1997, 2009, 2010, 2019,
+ 2031, 2032, 2041, 2053, 2054, 2063, 2072, 2084, 2085, 2094,
+ 2103, 2115, 2172, 2173, 2180, 2184, 2189, 2196, 2203, 2207,
+ 2212, 2216, 2220, 2224, 2231, 2300, 2299, 2328, 2329, 2333,
+ 2334, 2335, 2337, 2336, 2345, 2346, 2350, 2406, 2410, 2417,
+ 2430, 2440, 2448, 2447, 2535, 2539, 2546, 2555, 2562, 2570,
+ 2576, 2583, 2596, 2595, 2604, 2608, 2612, 2616, 2644, 2652,
+ 2651, 2722, 2723, 2727, 2734, 2735, 2761, 2762, 2763, 2764,
+ 2765, 2766, 2767, 2768, 2772, 2773, 2774, 2775, 2779, 2780,
+ 2781, 2785, 2786, 2790, 2802, 2800, 2825, 2832, 2833, 2837,
+ 2849, 2847, 2872, 2879, 2895, 2913, 2914, 2918, 2922, 2926,
+ 2933, 2937, 2941, 2948, 2952, 2956, 2963, 2970, 2974, 2981,
+ 2988, 2995, 3002, 3010, 3009, 3023, 3054, 3058, 3022, 3075,
+ 3078, 3079, 3083, 3101, 3105, 3100, 3163, 3162, 3175, 3174,
+ 3187, 3191, 3224, 3228, 3287, 3291, 3186, 3313, 3320, 3333,
+ 3342, 3349, 3350, 3459, 3462, 3463, 3468, 3472, 3467, 3508,
+ 3507, 3519, 3529, 3547, 3555, 3554, 3568, 3572, 3567, 3588,
+ 3587, 3638, 3663, 3687, 3691, 3722, 3726, 3686, 3750, 3755,
+ 3753, 3759, 3763, 3803, 3807, 3801, 3895, 3966, 3975, 3965,
+ 3989, 3999, 4003, 3997, 4048, 4074, 4083, 4087, 4081, 4123,
+ 4149, 4157, 4156, 4203, 4213, 4231, 4239, 4243, 4238, 4303,
+ 4304, 4309, 4313, 4317, 4321, 4308, 4380, 4384, 4388, 4392,
+ 4379, 4460, 4464, 4493, 4497, 4459, 4514, 4518, 4579, 4583,
+ 4513, 4620, 4625, 4630, 4637, 4638, 4649, 4654, 4697, 4648,
+ 4717, 4716, 4725, 4724, 4735, 4740, 4738, 4744, 4749, 4753,
+ 4748, 4792, 4791, 4800, 4799, 4810, 4815, 4813, 4819, 4824,
+ 4828, 4823, 4873, 4880, 4881, 4882, 4989, 4993, 4997, 5005,
+ 5009, 5004, 5018, 5026, 5030, 5025, 5039, 5047, 5051, 5046,
+ 5060, 5068, 5072, 5067, 5081, 5088, 5100, 5098, 5121, 5128,
+ 5158, 5197, 5198, 5202, 5233, 5272, 5276, 5232, 5295, 5299,
+ 5293, 5340, 5339, 5347, 5354, 5355, 5360, 5359, 5368, 5367,
+ 5376, 5375, 5384, 5383, 5392, 5391, 5400, 5399, 5408, 5407,
+ 5417, 5507, 5513, 5538, 5644, 5653, 5657, 5663, 5735, 5807,
+ 5881, 5880, 5930, 5934, 5938, 5942, 5946, 5950, 5929, 6003,
+ 6002, 6010, 6017, 6022, 6030, 6034, 6029, 6044, 6045, 6049,
+ 6051, 6050, 6059, 6058, 6071, 6094, 6069, 6120, 6147, 6118,
+ 6171, 6172, 6173, 6177, 6178, 6182, 6211, 6243, 6287, 6291,
+ 6241, 6308, 6317, 6335, 6346, 6345, 6383, 6432, 6436, 6381,
+ 6453, 6457, 6464, 6468, 6472, 6476, 6480, 6484, 6488, 6492,
+ 6496, 6500, 6508, 6539, 6552, 6559, 6584, 6602, 6609, 6624,
+ 6631, 6641, 6645, 6665, 6669, 6640, 6684, 6690, 6693, 6700,
+ 6699, 6706, 6705, 6712, 6711, 6721, 6790, 6840, 6856, 6869,
+ 6876, 6935, 6943, 6947, 6942, 7008, 7012, 7007, 7025, 7026,
+ 7031, 7030, 7039, 7038, 7047, 7046, 7055, 7054
};
#endif
@@ -2363,7 +2367,7 @@ yyreduce:
switch (yyn)
{
case 5:
-#line 409 "fe/idl.ypp"
+#line 413 "fe/idl.ypp"
{
AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val);
AST_Decl *d = (yyvsp[0].dcval);
@@ -2378,276 +2382,276 @@ yyreduce:
}
delete annotations;
}
-#line 2382 "fe/idl.tab.cpp"
+#line 2386 "fe/idl.tab.cpp"
break;
case 6:
-#line 424 "fe/idl.ypp"
+#line 428 "fe/idl.ypp"
{
}
-#line 2389 "fe/idl.tab.cpp"
+#line 2393 "fe/idl.tab.cpp"
break;
case 10:
-#line 436 "fe/idl.ypp"
+#line 440 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_AnnotationDeclSeen);
}
-#line 2397 "fe/idl.tab.cpp"
+#line 2401 "fe/idl.tab.cpp"
break;
case 11:
-#line 440 "fe/idl.ypp"
+#line 444 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 2405 "fe/idl.tab.cpp"
+#line 2409 "fe/idl.tab.cpp"
break;
case 12:
-#line 444 "fe/idl.ypp"
+#line 448 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_TypeDeclSeen);
}
-#line 2413 "fe/idl.tab.cpp"
+#line 2417 "fe/idl.tab.cpp"
break;
case 13:
-#line 448 "fe/idl.ypp"
+#line 452 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 2421 "fe/idl.tab.cpp"
+#line 2425 "fe/idl.tab.cpp"
break;
case 14:
-#line 452 "fe/idl.ypp"
+#line 456 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_TypeIdDeclSeen);
}
-#line 2429 "fe/idl.tab.cpp"
+#line 2433 "fe/idl.tab.cpp"
break;
case 15:
-#line 456 "fe/idl.ypp"
+#line 460 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 2437 "fe/idl.tab.cpp"
+#line 2441 "fe/idl.tab.cpp"
break;
case 16:
-#line 460 "fe/idl.ypp"
+#line 464 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_TypePrefixDeclSeen);
}
-#line 2445 "fe/idl.tab.cpp"
+#line 2449 "fe/idl.tab.cpp"
break;
case 17:
-#line 464 "fe/idl.ypp"
+#line 468 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 2453 "fe/idl.tab.cpp"
+#line 2457 "fe/idl.tab.cpp"
break;
case 18:
-#line 468 "fe/idl.ypp"
+#line 472 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ConstDeclSeen);
}
-#line 2461 "fe/idl.tab.cpp"
+#line 2465 "fe/idl.tab.cpp"
break;
case 19:
-#line 472 "fe/idl.ypp"
+#line 476 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 2469 "fe/idl.tab.cpp"
+#line 2473 "fe/idl.tab.cpp"
break;
case 20:
-#line 476 "fe/idl.ypp"
+#line 480 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ExceptDeclSeen);
}
-#line 2477 "fe/idl.tab.cpp"
+#line 2481 "fe/idl.tab.cpp"
break;
case 21:
-#line 480 "fe/idl.ypp"
+#line 484 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 2485 "fe/idl.tab.cpp"
+#line 2489 "fe/idl.tab.cpp"
break;
case 22:
-#line 484 "fe/idl.ypp"
+#line 488 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceDeclSeen);
}
-#line 2493 "fe/idl.tab.cpp"
+#line 2497 "fe/idl.tab.cpp"
break;
case 23:
-#line 488 "fe/idl.ypp"
+#line 492 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 2501 "fe/idl.tab.cpp"
+#line 2505 "fe/idl.tab.cpp"
break;
case 24:
-#line 492 "fe/idl.ypp"
+#line 496 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ModuleDeclSeen);
}
-#line 2509 "fe/idl.tab.cpp"
+#line 2513 "fe/idl.tab.cpp"
break;
case 25:
-#line 496 "fe/idl.ypp"
+#line 500 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 2517 "fe/idl.tab.cpp"
+#line 2521 "fe/idl.tab.cpp"
break;
case 26:
-#line 500 "fe/idl.ypp"
+#line 504 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeDeclSeen);
}
-#line 2525 "fe/idl.tab.cpp"
+#line 2529 "fe/idl.tab.cpp"
break;
case 27:
-#line 504 "fe/idl.ypp"
+#line 508 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 2533 "fe/idl.tab.cpp"
+#line 2537 "fe/idl.tab.cpp"
break;
case 28:
-#line 508 "fe/idl.ypp"
+#line 512 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ComponentDeclSeen);
}
-#line 2541 "fe/idl.tab.cpp"
+#line 2545 "fe/idl.tab.cpp"
break;
case 29:
-#line 512 "fe/idl.ypp"
+#line 516 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 2549 "fe/idl.tab.cpp"
+#line 2553 "fe/idl.tab.cpp"
break;
case 30:
-#line 516 "fe/idl.ypp"
+#line 520 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_HomeDeclSeen);
}
-#line 2557 "fe/idl.tab.cpp"
+#line 2561 "fe/idl.tab.cpp"
break;
case 31:
-#line 520 "fe/idl.ypp"
+#line 524 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 2565 "fe/idl.tab.cpp"
+#line 2569 "fe/idl.tab.cpp"
break;
case 32:
-#line 524 "fe/idl.ypp"
+#line 528 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EventDeclSeen);
}
-#line 2573 "fe/idl.tab.cpp"
+#line 2577 "fe/idl.tab.cpp"
break;
case 33:
-#line 528 "fe/idl.ypp"
+#line 532 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 2581 "fe/idl.tab.cpp"
+#line 2585 "fe/idl.tab.cpp"
break;
case 34:
-#line 532 "fe/idl.ypp"
+#line 536 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeDeclSeen);
}
-#line 2589 "fe/idl.tab.cpp"
+#line 2593 "fe/idl.tab.cpp"
break;
case 35:
-#line 536 "fe/idl.ypp"
+#line 540 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 2597 "fe/idl.tab.cpp"
+#line 2601 "fe/idl.tab.cpp"
break;
case 36:
-#line 540 "fe/idl.ypp"
+#line 544 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorDeclSeen);
}
-#line 2605 "fe/idl.tab.cpp"
+#line 2609 "fe/idl.tab.cpp"
break;
case 37:
-#line 544 "fe/idl.ypp"
+#line 548 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 2613 "fe/idl.tab.cpp"
+#line 2617 "fe/idl.tab.cpp"
break;
case 38:
-#line 548 "fe/idl.ypp"
+#line 552 "fe/idl.ypp"
{
idl_global->err()->syntax_error (idl_global->parse_state());
}
-#line 2621 "fe/idl.tab.cpp"
+#line 2625 "fe/idl.tab.cpp"
break;
case 39:
-#line 552 "fe/idl.ypp"
+#line 556 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
yyerrok;
(yyval.dcval) = 0;
}
-#line 2631 "fe/idl.tab.cpp"
+#line 2635 "fe/idl.tab.cpp"
break;
case 40:
-#line 561 "fe/idl.ypp"
+#line 565 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ModuleSeen);
}
-#line 2639 "fe/idl.tab.cpp"
+#line 2643 "fe/idl.tab.cpp"
break;
case 41:
-#line 565 "fe/idl.ypp"
+#line 569 "fe/idl.ypp"
{
(yyval.idlist) = (yyvsp[0].idlist);
}
-#line 2647 "fe/idl.tab.cpp"
+#line 2651 "fe/idl.tab.cpp"
break;
case 42:
-#line 572 "fe/idl.ypp"
+#line 576 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ModuleIDSeen);
@@ -2686,27 +2690,27 @@ yyreduce:
(yyval.dcval) = m;
}
-#line 2690 "fe/idl.tab.cpp"
+#line 2694 "fe/idl.tab.cpp"
break;
case 43:
-#line 611 "fe/idl.ypp"
+#line 615 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ModuleSqSeen);
}
-#line 2698 "fe/idl.tab.cpp"
+#line 2702 "fe/idl.tab.cpp"
break;
case 44:
-#line 615 "fe/idl.ypp"
+#line 619 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ModuleBodySeen);
}
-#line 2706 "fe/idl.tab.cpp"
+#line 2710 "fe/idl.tab.cpp"
break;
case 45:
-#line 619 "fe/idl.ypp"
+#line 623 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ModuleQsSeen);
/*
@@ -2716,19 +2720,19 @@ yyreduce:
idl_global->scopes ().pop ();
(yyval.dcval) = (yyvsp[-5].dcval);
}
-#line 2720 "fe/idl.tab.cpp"
+#line 2724 "fe/idl.tab.cpp"
break;
case 46:
-#line 632 "fe/idl.ypp"
+#line 636 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleIDSeen);
}
-#line 2728 "fe/idl.tab.cpp"
+#line 2732 "fe/idl.tab.cpp"
break;
case 47:
-#line 639 "fe/idl.ypp"
+#line 643 "fe/idl.ypp"
{
// The module_header rule is common to template module, fixed
// module and instantiated template module. In the last
@@ -2742,11 +2746,11 @@ yyreduce:
IDL_GlobalData::PS_ModuleIDSeen);
}
}
-#line 2746 "fe/idl.tab.cpp"
+#line 2750 "fe/idl.tab.cpp"
break;
case 48:
-#line 653 "fe/idl.ypp"
+#line 657 "fe/idl.ypp"
{
if (FE_Utils::duplicate_param_id ((yyvsp[0].plval)))
{
@@ -2756,11 +2760,11 @@ yyreduce:
return 1;
}
}
-#line 2760 "fe/idl.tab.cpp"
+#line 2764 "fe/idl.tab.cpp"
break;
case 49:
-#line 663 "fe/idl.ypp"
+#line 667 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleParamsSeen);
@@ -2790,27 +2794,27 @@ yyreduce:
// of the template module.
idl_global->current_params ((yyvsp[-2].plval));
}
-#line 2794 "fe/idl.tab.cpp"
+#line 2798 "fe/idl.tab.cpp"
break;
case 50:
-#line 693 "fe/idl.ypp"
+#line 697 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleSqSeen);
}
-#line 2802 "fe/idl.tab.cpp"
+#line 2806 "fe/idl.tab.cpp"
break;
case 51:
-#line 697 "fe/idl.ypp"
+#line 701 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleBodySeen);
}
-#line 2810 "fe/idl.tab.cpp"
+#line 2814 "fe/idl.tab.cpp"
break;
case 52:
-#line 701 "fe/idl.ypp"
+#line 705 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleQsSeen);
@@ -2829,29 +2833,29 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 2833 "fe/idl.tab.cpp"
+#line 2837 "fe/idl.tab.cpp"
break;
case 58:
-#line 737 "fe/idl.ypp"
+#line 741 "fe/idl.ypp"
{
idl_global->set_parse_state (
IDL_GlobalData::PS_ModuleRefSeen);
}
-#line 2842 "fe/idl.tab.cpp"
+#line 2846 "fe/idl.tab.cpp"
break;
case 59:
-#line 742 "fe/idl.ypp"
+#line 746 "fe/idl.ypp"
{
idl_global->set_parse_state (
IDL_GlobalData::PS_ModuleRefParamsSeen);
}
-#line 2851 "fe/idl.tab.cpp"
+#line 2855 "fe/idl.tab.cpp"
break;
case 60:
-#line 747 "fe/idl.ypp"
+#line 751 "fe/idl.ypp"
{
idl_global->set_parse_state (
IDL_GlobalData::PS_ModuleRefIDSeen);
@@ -2929,29 +2933,29 @@ yyreduce:
idl_global->in_tmpl_mod_no_alias (itmna_flag);
idl_global->in_tmpl_mod_alias (false);
}
-#line 2933 "fe/idl.tab.cpp"
+#line 2937 "fe/idl.tab.cpp"
break;
case 61:
-#line 828 "fe/idl.ypp"
+#line 832 "fe/idl.ypp"
{
idl_global->set_parse_state (
IDL_GlobalData::PS_InstModuleSeen);
}
-#line 2942 "fe/idl.tab.cpp"
+#line 2946 "fe/idl.tab.cpp"
break;
case 62:
-#line 833 "fe/idl.ypp"
+#line 837 "fe/idl.ypp"
{
idl_global->set_parse_state (
IDL_GlobalData::PS_InstModuleArgsSeen);
}
-#line 2951 "fe/idl.tab.cpp"
+#line 2955 "fe/idl.tab.cpp"
break;
case 63:
-#line 838 "fe/idl.ypp"
+#line 842 "fe/idl.ypp"
{
idl_global->set_parse_state (
IDL_GlobalData::PS_InstModuleIDSeen);
@@ -3015,11 +3019,11 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 3019 "fe/idl.tab.cpp"
+#line 3023 "fe/idl.tab.cpp"
break;
case 66:
-#line 910 "fe/idl.ypp"
+#line 914 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Interface *i = 0;
@@ -3057,27 +3061,27 @@ yyreduce:
*/
idl_global->scopes ().push (i);
}
-#line 3061 "fe/idl.tab.cpp"
+#line 3065 "fe/idl.tab.cpp"
break;
case 67:
-#line 948 "fe/idl.ypp"
+#line 952 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceSqSeen);
}
-#line 3069 "fe/idl.tab.cpp"
+#line 3073 "fe/idl.tab.cpp"
break;
case 68:
-#line 952 "fe/idl.ypp"
+#line 956 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceBodySeen);
}
-#line 3077 "fe/idl.tab.cpp"
+#line 3081 "fe/idl.tab.cpp"
break;
case 69:
-#line 956 "fe/idl.ypp"
+#line 960 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceQsSeen);
@@ -3087,28 +3091,28 @@ yyreduce:
*/
idl_global->scopes ().pop ();
}
-#line 3091 "fe/idl.tab.cpp"
+#line 3095 "fe/idl.tab.cpp"
break;
case 70:
-#line 969 "fe/idl.ypp"
+#line 973 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceSeen);
}
-#line 3099 "fe/idl.tab.cpp"
+#line 3103 "fe/idl.tab.cpp"
break;
case 71:
-#line 973 "fe/idl.ypp"
+#line 977 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceIDSeen);
(yyval.idval) = (yyvsp[0].idval);
}
-#line 3108 "fe/idl.tab.cpp"
+#line 3112 "fe/idl.tab.cpp"
break;
case 72:
-#line 981 "fe/idl.ypp"
+#line 985 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen);
@@ -3144,11 +3148,11 @@ yyreduce:
(yyvsp[0].nlval) = 0;
}
}
-#line 3148 "fe/idl.tab.cpp"
+#line 3152 "fe/idl.tab.cpp"
break;
case 73:
-#line 1018 "fe/idl.ypp"
+#line 1022 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen);
@@ -3177,11 +3181,11 @@ yyreduce:
(yyvsp[0].nlval) = 0;
}
}
-#line 3181 "fe/idl.tab.cpp"
+#line 3185 "fe/idl.tab.cpp"
break;
case 74:
-#line 1048 "fe/idl.ypp"
+#line 1052 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen);
@@ -3210,45 +3214,45 @@ yyreduce:
(yyvsp[0].nlval) = 0;
}
}
-#line 3214 "fe/idl.tab.cpp"
+#line 3218 "fe/idl.tab.cpp"
break;
case 75:
-#line 1080 "fe/idl.ypp"
+#line 1084 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InheritColonSeen);
}
-#line 3222 "fe/idl.tab.cpp"
+#line 3226 "fe/idl.tab.cpp"
break;
case 76:
-#line 1084 "fe/idl.ypp"
+#line 1088 "fe/idl.ypp"
{
(yyvsp[0].nlval)->truncatable ((yyvsp[-2].bval));
(yyval.nlval) = (yyvsp[0].nlval);
}
-#line 3231 "fe/idl.tab.cpp"
+#line 3235 "fe/idl.tab.cpp"
break;
case 77:
-#line 1089 "fe/idl.ypp"
+#line 1093 "fe/idl.ypp"
{
(yyval.nlval) = 0;
}
-#line 3239 "fe/idl.tab.cpp"
+#line 3243 "fe/idl.tab.cpp"
break;
case 82:
-#line 1103 "fe/idl.ypp"
+#line 1107 "fe/idl.ypp"
{
idl_global->err ()->unsupported_error ("custom is not supported");
(yyval.dcval) = 0;
}
-#line 3248 "fe/idl.tab.cpp"
+#line 3252 "fe/idl.tab.cpp"
break;
case 84:
-#line 1112 "fe/idl.ypp"
+#line 1116 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_ValueType *v = 0;
@@ -3291,27 +3295,27 @@ yyreduce:
*/
idl_global->scopes ().push (v);
}
-#line 3295 "fe/idl.tab.cpp"
+#line 3299 "fe/idl.tab.cpp"
break;
case 85:
-#line 1155 "fe/idl.ypp"
+#line 1159 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeSqSeen);
}
-#line 3303 "fe/idl.tab.cpp"
+#line 3307 "fe/idl.tab.cpp"
break;
case 86:
-#line 1159 "fe/idl.ypp"
+#line 1163 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeBodySeen);
}
-#line 3311 "fe/idl.tab.cpp"
+#line 3315 "fe/idl.tab.cpp"
break;
case 87:
-#line 1163 "fe/idl.ypp"
+#line 1167 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeQsSeen);
@@ -3332,11 +3336,11 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 3336 "fe/idl.tab.cpp"
+#line 3340 "fe/idl.tab.cpp"
break;
case 88:
-#line 1188 "fe/idl.ypp"
+#line 1192 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_ValueType *v = 0;
@@ -3379,27 +3383,27 @@ yyreduce:
*/
idl_global->scopes ().push (v);
}
-#line 3383 "fe/idl.tab.cpp"
+#line 3387 "fe/idl.tab.cpp"
break;
case 89:
-#line 1231 "fe/idl.ypp"
+#line 1235 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeSqSeen);
}
-#line 3391 "fe/idl.tab.cpp"
+#line 3395 "fe/idl.tab.cpp"
break;
case 90:
-#line 1235 "fe/idl.ypp"
+#line 1239 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeBodySeen);
}
-#line 3399 "fe/idl.tab.cpp"
+#line 3403 "fe/idl.tab.cpp"
break;
case 91:
-#line 1239 "fe/idl.ypp"
+#line 1243 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeQsSeen);
@@ -3410,19 +3414,19 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 3414 "fe/idl.tab.cpp"
+#line 3418 "fe/idl.tab.cpp"
break;
case 92:
-#line 1254 "fe/idl.ypp"
+#line 1258 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen);
}
-#line 3422 "fe/idl.tab.cpp"
+#line 3426 "fe/idl.tab.cpp"
break;
case 93:
-#line 1258 "fe/idl.ypp"
+#line 1262 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SupportSpecSeen);
@@ -3453,61 +3457,60 @@ yyreduce:
(yyvsp[-2].nlval) = 0;
}
}
-#line 3457 "fe/idl.tab.cpp"
+#line 3461 "fe/idl.tab.cpp"
break;
case 94:
-#line 1292 "fe/idl.ypp"
+#line 1296 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeSeen);
}
-#line 3465 "fe/idl.tab.cpp"
+#line 3469 "fe/idl.tab.cpp"
break;
case 95:
-#line 1296 "fe/idl.ypp"
+#line 1300 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeIDSeen);
(yyval.idval) = (yyvsp[0].idval);
}
-#line 3474 "fe/idl.tab.cpp"
+#line 3478 "fe/idl.tab.cpp"
break;
case 96:
-#line 1304 "fe/idl.ypp"
+#line 1308 "fe/idl.ypp"
{
(yyval.bval) = true;
}
-#line 3482 "fe/idl.tab.cpp"
+#line 3486 "fe/idl.tab.cpp"
break;
case 97:
-#line 1308 "fe/idl.ypp"
+#line 1312 "fe/idl.ypp"
{
(yyval.bval) = false;
}
-#line 3490 "fe/idl.tab.cpp"
+#line 3494 "fe/idl.tab.cpp"
break;
case 98:
-#line 1316 "fe/idl.ypp"
+#line 1320 "fe/idl.ypp"
{
(yyval.nlval) = (yyvsp[0].nlval);
}
-#line 3498 "fe/idl.tab.cpp"
+#line 3502 "fe/idl.tab.cpp"
break;
case 99:
-#line 1320 "fe/idl.ypp"
+#line 1324 "fe/idl.ypp"
{
-/* | EMPTY */
(yyval.nlval) = 0;
}
-#line 3507 "fe/idl.tab.cpp"
+#line 3510 "fe/idl.tab.cpp"
break;
case 100:
-#line 1329 "fe/idl.ypp"
+#line 1332 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval),
@@ -3530,11 +3533,11 @@ yyreduce:
delete (yyvsp[0].idval);
(yyvsp[0].idval) = 0;
}
-#line 3534 "fe/idl.tab.cpp"
+#line 3537 "fe/idl.tab.cpp"
break;
case 101:
-#line 1353 "fe/idl.ypp"
+#line 1356 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval),
@@ -3559,11 +3562,11 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 3563 "fe/idl.tab.cpp"
+#line 3566 "fe/idl.tab.cpp"
break;
case 102:
-#line 1381 "fe/idl.ypp"
+#line 1384 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ValueBoxDeclSeen);
@@ -3626,27 +3629,27 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 3630 "fe/idl.tab.cpp"
+#line 3633 "fe/idl.tab.cpp"
break;
case 108:
-#line 1459 "fe/idl.ypp"
+#line 1462 "fe/idl.ypp"
{
(yyval.vival) = AST_Field::vis_PUBLIC;
}
-#line 3638 "fe/idl.tab.cpp"
+#line 3641 "fe/idl.tab.cpp"
break;
case 109:
-#line 1463 "fe/idl.ypp"
+#line 1466 "fe/idl.ypp"
{
(yyval.vival) = AST_Field::vis_PRIVATE;
}
-#line 3646 "fe/idl.tab.cpp"
+#line 3649 "fe/idl.tab.cpp"
break;
case 110:
-#line 1470 "fe/idl.ypp"
+#line 1473 "fe/idl.ypp"
{
if ((yyvsp[0].decls_val))
{
@@ -3662,11 +3665,11 @@ yyreduce:
}
delete (yyvsp[0].decls_val);
}
-#line 3666 "fe/idl.tab.cpp"
+#line 3669 "fe/idl.tab.cpp"
break;
case 113:
-#line 1494 "fe/idl.ypp"
+#line 1497 "fe/idl.ypp"
{
AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val);
AST_Decl *d = (yyvsp[0].dcval);
@@ -3681,167 +3684,167 @@ yyreduce:
}
delete annotations;
}
-#line 3685 "fe/idl.tab.cpp"
+#line 3688 "fe/idl.tab.cpp"
break;
case 114:
-#line 1509 "fe/idl.ypp"
+#line 1512 "fe/idl.ypp"
{
}
-#line 3692 "fe/idl.tab.cpp"
+#line 3695 "fe/idl.tab.cpp"
break;
case 115:
-#line 1515 "fe/idl.ypp"
+#line 1518 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_TypeDeclSeen);
}
-#line 3700 "fe/idl.tab.cpp"
+#line 3703 "fe/idl.tab.cpp"
break;
case 116:
-#line 1519 "fe/idl.ypp"
+#line 1522 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 3708 "fe/idl.tab.cpp"
+#line 3711 "fe/idl.tab.cpp"
break;
case 117:
-#line 1523 "fe/idl.ypp"
+#line 1526 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_TypeIdDeclSeen);
}
-#line 3716 "fe/idl.tab.cpp"
+#line 3719 "fe/idl.tab.cpp"
break;
case 118:
-#line 1527 "fe/idl.ypp"
+#line 1530 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 3724 "fe/idl.tab.cpp"
+#line 3727 "fe/idl.tab.cpp"
break;
case 119:
-#line 1531 "fe/idl.ypp"
+#line 1534 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_TypePrefixDeclSeen);
}
-#line 3732 "fe/idl.tab.cpp"
+#line 3735 "fe/idl.tab.cpp"
break;
case 120:
-#line 1535 "fe/idl.ypp"
+#line 1538 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 3740 "fe/idl.tab.cpp"
+#line 3743 "fe/idl.tab.cpp"
break;
case 121:
-#line 1539 "fe/idl.ypp"
+#line 1542 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ConstDeclSeen);
}
-#line 3748 "fe/idl.tab.cpp"
+#line 3751 "fe/idl.tab.cpp"
break;
case 122:
-#line 1543 "fe/idl.ypp"
+#line 1546 "fe/idl.ypp"
{
idl_global->set_parse_state(IDL_GlobalData::PS_NoState);
}
-#line 3756 "fe/idl.tab.cpp"
+#line 3759 "fe/idl.tab.cpp"
break;
case 123:
-#line 1547 "fe/idl.ypp"
+#line 1550 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ExceptDeclSeen);
}
-#line 3764 "fe/idl.tab.cpp"
+#line 3767 "fe/idl.tab.cpp"
break;
case 124:
-#line 1551 "fe/idl.ypp"
+#line 1554 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 3772 "fe/idl.tab.cpp"
+#line 3775 "fe/idl.tab.cpp"
break;
case 125:
-#line 1555 "fe/idl.ypp"
+#line 1558 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclSeen);
}
-#line 3780 "fe/idl.tab.cpp"
+#line 3783 "fe/idl.tab.cpp"
break;
case 126:
-#line 1559 "fe/idl.ypp"
+#line 1562 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 3788 "fe/idl.tab.cpp"
+#line 3791 "fe/idl.tab.cpp"
break;
case 127:
-#line 1563 "fe/idl.ypp"
+#line 1566 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpDeclSeen);
}
-#line 3796 "fe/idl.tab.cpp"
+#line 3799 "fe/idl.tab.cpp"
break;
case 128:
-#line 1567 "fe/idl.ypp"
+#line 1570 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 3804 "fe/idl.tab.cpp"
+#line 3807 "fe/idl.tab.cpp"
break;
case 129:
-#line 1571 "fe/idl.ypp"
+#line 1574 "fe/idl.ypp"
{
idl_global->err()->syntax_error (idl_global->parse_state());
}
-#line 3812 "fe/idl.tab.cpp"
+#line 3815 "fe/idl.tab.cpp"
break;
case 130:
-#line 1575 "fe/idl.ypp"
+#line 1578 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
yyerrok;
(yyval.dcval) = 0;
}
-#line 3822 "fe/idl.tab.cpp"
+#line 3825 "fe/idl.tab.cpp"
break;
case 131:
-#line 1584 "fe/idl.ypp"
+#line 1587 "fe/idl.ypp"
{
ACE_NEW_RETURN ((yyval.nlval),
UTL_NameList ((yyvsp[-1].idlist),
(yyvsp[0].nlval)),
1);
}
-#line 3833 "fe/idl.tab.cpp"
+#line 3836 "fe/idl.tab.cpp"
break;
case 132:
-#line 1595 "fe/idl.ypp"
+#line 1598 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SNListCommaSeen);
}
-#line 3841 "fe/idl.tab.cpp"
+#line 3844 "fe/idl.tab.cpp"
break;
case 133:
-#line 1599 "fe/idl.ypp"
+#line 1602 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ScopedNameSeen);
@@ -3861,19 +3864,19 @@ yyreduce:
(yyval.nlval) = (yyvsp[-3].nlval);
}
}
-#line 3865 "fe/idl.tab.cpp"
+#line 3868 "fe/idl.tab.cpp"
break;
case 134:
-#line 1619 "fe/idl.ypp"
+#line 1622 "fe/idl.ypp"
{
(yyval.nlval) = 0;
}
-#line 3873 "fe/idl.tab.cpp"
+#line 3876 "fe/idl.tab.cpp"
break;
case 135:
-#line 1626 "fe/idl.ypp"
+#line 1629 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SN_IDSeen);
@@ -3882,19 +3885,19 @@ yyreduce:
0),
1);
}
-#line 3886 "fe/idl.tab.cpp"
+#line 3889 "fe/idl.tab.cpp"
break;
case 136:
-#line 1635 "fe/idl.ypp"
+#line 1638 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ScopeDelimSeen);
}
-#line 3894 "fe/idl.tab.cpp"
+#line 3897 "fe/idl.tab.cpp"
break;
case 137:
-#line 1639 "fe/idl.ypp"
+#line 1642 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SN_IDSeen);
@@ -3914,11 +3917,11 @@ yyreduce:
sn),
1);
}
-#line 3918 "fe/idl.tab.cpp"
+#line 3921 "fe/idl.tab.cpp"
break;
case 138:
-#line 1660 "fe/idl.ypp"
+#line 1663 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ScopeDelimSeen);
@@ -3928,11 +3931,11 @@ yyreduce:
ACE::strdelete ((yyvsp[0].strval));
(yyvsp[0].strval) = 0;
}
-#line 3932 "fe/idl.tab.cpp"
+#line 3935 "fe/idl.tab.cpp"
break;
case 139:
-#line 1670 "fe/idl.ypp"
+#line 1673 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SN_IDSeen);
@@ -3944,11 +3947,11 @@ yyreduce:
(yyvsp[-3].idlist)->nconc (sn);
(yyval.idlist) = (yyvsp[-3].idlist);
}
-#line 3948 "fe/idl.tab.cpp"
+#line 3951 "fe/idl.tab.cpp"
break;
case 140:
-#line 1684 "fe/idl.ypp"
+#line 1687 "fe/idl.ypp"
{
ACE_NEW_RETURN ((yyval.idval),
Identifier ((yyvsp[0].strval)),
@@ -3956,11 +3959,11 @@ yyreduce:
ACE::strdelete ((yyvsp[0].strval));
(yyvsp[0].strval) = 0;
}
-#line 3960 "fe/idl.tab.cpp"
+#line 3963 "fe/idl.tab.cpp"
break;
case 141:
-#line 1694 "fe/idl.ypp"
+#line 1697 "fe/idl.ypp"
{
/* defining_id is a defining identifier
whereas id is usually a reference to a defining identifier */
@@ -3968,11 +3971,11 @@ yyreduce:
ACE::strdelete ((yyvsp[0].strval));
(yyvsp[0].strval) = 0;
}
-#line 3972 "fe/idl.tab.cpp"
+#line 3975 "fe/idl.tab.cpp"
break;
case 142:
-#line 1705 "fe/idl.ypp"
+#line 1708 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval), 0);
@@ -4015,11 +4018,11 @@ yyreduce:
delete (yyvsp[0].idval);
(yyvsp[0].idval) = 0;
}
-#line 4019 "fe/idl.tab.cpp"
+#line 4022 "fe/idl.tab.cpp"
break;
case 143:
-#line 1749 "fe/idl.ypp"
+#line 1752 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval),
@@ -4045,11 +4048,11 @@ yyreduce:
delete (yyvsp[0].idval);
(yyvsp[0].idval) = 0;
}
-#line 4049 "fe/idl.tab.cpp"
+#line 4052 "fe/idl.tab.cpp"
break;
case 144:
-#line 1776 "fe/idl.ypp"
+#line 1779 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval),
@@ -4077,43 +4080,43 @@ yyreduce:
(yyval.dcval) = dynamic_cast<AST_Decl*>(f);
}
-#line 4081 "fe/idl.tab.cpp"
+#line 4084 "fe/idl.tab.cpp"
break;
case 145:
-#line 1807 "fe/idl.ypp"
+#line 1810 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ConstSeen);
}
-#line 4089 "fe/idl.tab.cpp"
+#line 4092 "fe/idl.tab.cpp"
break;
case 146:
-#line 1811 "fe/idl.ypp"
+#line 1814 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ConstTypeSeen);
}
-#line 4097 "fe/idl.tab.cpp"
+#line 4100 "fe/idl.tab.cpp"
break;
case 147:
-#line 1815 "fe/idl.ypp"
+#line 1818 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ConstIDSeen);
}
-#line 4105 "fe/idl.tab.cpp"
+#line 4108 "fe/idl.tab.cpp"
break;
case 148:
-#line 1819 "fe/idl.ypp"
+#line 1822 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ConstAssignSeen);
}
-#line 4113 "fe/idl.tab.cpp"
+#line 4116 "fe/idl.tab.cpp"
break;
case 149:
-#line 1823 "fe/idl.ypp"
+#line 1826 "fe/idl.ypp"
{
(yyval.dcval) = 0;
UTL_ScopedName n ((yyvsp[-4].idval), 0);
@@ -4169,27 +4172,27 @@ yyreduce:
delete (yyvsp[-4].idval);
(yyvsp[-4].idval) = 0;
}
-#line 4173 "fe/idl.tab.cpp"
+#line 4176 "fe/idl.tab.cpp"
break;
case 156:
-#line 1888 "fe/idl.ypp"
+#line 1891 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_string;
}
-#line 4181 "fe/idl.tab.cpp"
+#line 4184 "fe/idl.tab.cpp"
break;
case 157:
-#line 1892 "fe/idl.ypp"
+#line 1895 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_wstring;
}
-#line 4189 "fe/idl.tab.cpp"
+#line 4192 "fe/idl.tab.cpp"
break;
case 158:
-#line 1896 "fe/idl.ypp"
+#line 1899 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_PredefinedType *c = 0;
@@ -4255,11 +4258,11 @@ yyreduce:
sn = 0;
(yyvsp[0].idlist) = 0;
}
-#line 4259 "fe/idl.tab.cpp"
+#line 4262 "fe/idl.tab.cpp"
break;
case 162:
-#line 1969 "fe/idl.ypp"
+#line 1972 "fe/idl.ypp"
{
(yyval.exval) =
idl_global->gen ()->create_expr (
@@ -4268,11 +4271,11 @@ yyreduce:
(yyvsp[0].exval)
);
}
-#line 4272 "fe/idl.tab.cpp"
+#line 4275 "fe/idl.tab.cpp"
break;
case 164:
-#line 1982 "fe/idl.ypp"
+#line 1985 "fe/idl.ypp"
{
(yyval.exval) =
idl_global->gen ()->create_expr (
@@ -4281,11 +4284,11 @@ yyreduce:
(yyvsp[0].exval)
);
}
-#line 4285 "fe/idl.tab.cpp"
+#line 4288 "fe/idl.tab.cpp"
break;
case 166:
-#line 1995 "fe/idl.ypp"
+#line 1998 "fe/idl.ypp"
{
(yyval.exval) =
idl_global->gen ()->create_expr (
@@ -4294,11 +4297,11 @@ yyreduce:
(yyvsp[0].exval)
);
}
-#line 4298 "fe/idl.tab.cpp"
+#line 4301 "fe/idl.tab.cpp"
break;
case 168:
-#line 2008 "fe/idl.ypp"
+#line 2011 "fe/idl.ypp"
{
(yyval.exval) =
idl_global->gen ()->create_expr (
@@ -4307,11 +4310,11 @@ yyreduce:
(yyvsp[0].exval)
);
}
-#line 4311 "fe/idl.tab.cpp"
+#line 4314 "fe/idl.tab.cpp"
break;
case 169:
-#line 2017 "fe/idl.ypp"
+#line 2020 "fe/idl.ypp"
{
(yyval.exval) =
idl_global->gen ()->create_expr (
@@ -4320,11 +4323,11 @@ yyreduce:
(yyvsp[0].exval)
);
}
-#line 4324 "fe/idl.tab.cpp"
+#line 4327 "fe/idl.tab.cpp"
break;
case 171:
-#line 2030 "fe/idl.ypp"
+#line 2033 "fe/idl.ypp"
{
(yyval.exval) =
idl_global->gen ()->create_expr (
@@ -4333,11 +4336,11 @@ yyreduce:
(yyvsp[0].exval)
);
}
-#line 4337 "fe/idl.tab.cpp"
+#line 4340 "fe/idl.tab.cpp"
break;
case 172:
-#line 2039 "fe/idl.ypp"
+#line 2042 "fe/idl.ypp"
{
(yyval.exval) =
idl_global->gen ()->create_expr (
@@ -4346,11 +4349,11 @@ yyreduce:
(yyvsp[0].exval)
);
}
-#line 4350 "fe/idl.tab.cpp"
+#line 4353 "fe/idl.tab.cpp"
break;
case 174:
-#line 2052 "fe/idl.ypp"
+#line 2055 "fe/idl.ypp"
{
(yyval.exval) =
idl_global->gen ()->create_expr (
@@ -4359,11 +4362,11 @@ yyreduce:
(yyvsp[0].exval)
);
}
-#line 4363 "fe/idl.tab.cpp"
+#line 4366 "fe/idl.tab.cpp"
break;
case 175:
-#line 2061 "fe/idl.ypp"
+#line 2064 "fe/idl.ypp"
{
(yyval.exval) =
idl_global->gen ()->create_expr (
@@ -4372,11 +4375,11 @@ yyreduce:
(yyvsp[0].exval)
);
}
-#line 4376 "fe/idl.tab.cpp"
+#line 4379 "fe/idl.tab.cpp"
break;
case 176:
-#line 2070 "fe/idl.ypp"
+#line 2073 "fe/idl.ypp"
{
(yyval.exval) =
idl_global->gen ()->create_expr (
@@ -4385,11 +4388,11 @@ yyreduce:
(yyvsp[0].exval)
);
}
-#line 4389 "fe/idl.tab.cpp"
+#line 4392 "fe/idl.tab.cpp"
break;
case 178:
-#line 2083 "fe/idl.ypp"
+#line 2086 "fe/idl.ypp"
{
(yyval.exval) =
idl_global->gen ()->create_expr (
@@ -4398,11 +4401,11 @@ yyreduce:
0
);
}
-#line 4402 "fe/idl.tab.cpp"
+#line 4405 "fe/idl.tab.cpp"
break;
case 179:
-#line 2092 "fe/idl.ypp"
+#line 2095 "fe/idl.ypp"
{
(yyval.exval) =
idl_global->gen()->create_expr (
@@ -4411,11 +4414,11 @@ yyreduce:
0
);
}
-#line 4415 "fe/idl.tab.cpp"
+#line 4418 "fe/idl.tab.cpp"
break;
case 180:
-#line 2101 "fe/idl.ypp"
+#line 2104 "fe/idl.ypp"
{
(yyval.exval) =
idl_global->gen()->create_expr (
@@ -4424,31 +4427,33 @@ yyreduce:
0
);
}
-#line 4428 "fe/idl.tab.cpp"
+#line 4431 "fe/idl.tab.cpp"
break;
case 181:
-#line 2113 "fe/idl.ypp"
+#line 2116 "fe/idl.ypp"
{
+ UTL_ScopedName *name = (yyvsp[0].idlist);
+
/*
* An expression which is a scoped name is not resolved now,
* but only when it is evaluated (such as when it is assigned
* as a constant value).
*/
AST_Expression *expr = 0;
- UTL_Scope *s = idl_global->scopes ().top_non_null ();
- AST_Decl *d =
- s->lookup_by_name ((yyvsp[0].idlist));
- if (d == 0)
+ AST_Decl *node = stack_based_lookup_for_primary_expr ?
+ idl_global->scopes ().lookup_by_name (name) :
+ idl_global->scopes ().top_non_null ()->lookup_by_name (name);
+ if (!node)
{
if (!idl_global->ignore_lookup_errors_)
{
- idl_global->err ()->lookup_error ((yyvsp[0].idlist));
+ idl_global->err ()->lookup_error (name);
return 1;
}
}
- else if (d->node_type () == AST_Decl::NT_const)
+ else if (node->node_type () == AST_Decl::NT_const)
{
/*
* If the scoped name is an IDL constant, it
@@ -4459,9 +4464,7 @@ yyreduce:
* expression created here so we can check
* them later.
*/
- AST_Constant *c =
- AST_Constant::narrow_from_decl (d);
-
+ AST_Constant *c = dynamic_cast<AST_Constant *> (node);
expr = idl_global->gen ()->create_expr (
c->constant_value (),
c->et ());
@@ -4472,121 +4475,120 @@ yyreduce:
// passed in this constructor, so we copy it
// and destroy it below no matter which case
// is followed.
- expr = idl_global->gen ()->create_expr (
- (yyvsp[0].idlist)->copy ());
- if (d->node_type () == AST_Decl::NT_enum_val)
+ expr = idl_global->gen ()->create_expr (name->copy ());
+ if (node->node_type () == AST_Decl::NT_enum_val)
{
- AST_EnumVal *enumval = AST_EnumVal::narrow_from_decl (d);
- expr->enum_parent (enumval->enum_parent ());
+ expr->enum_parent (
+ dynamic_cast<AST_EnumVal *> (node)->enum_parent ());
}
}
(yyval.exval) = expr;
- (yyvsp[0].idlist)->destroy ();
- delete (yyvsp[0].idlist);
- (yyvsp[0].idlist) = 0;
+ name->destroy ();
+ delete name;
+ (yyvsp[0].idlist) = name = 0;
}
-#line 4490 "fe/idl.tab.cpp"
+#line 4492 "fe/idl.tab.cpp"
break;
case 183:
-#line 2172 "fe/idl.ypp"
+#line 2174 "fe/idl.ypp"
{
(yyval.exval) = (yyvsp[-1].exval);
}
-#line 4498 "fe/idl.tab.cpp"
+#line 4500 "fe/idl.tab.cpp"
break;
case 184:
-#line 2179 "fe/idl.ypp"
+#line 2181 "fe/idl.ypp"
{
(yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].ival));
}
-#line 4506 "fe/idl.tab.cpp"
+#line 4508 "fe/idl.tab.cpp"
break;
case 185:
-#line 2183 "fe/idl.ypp"
+#line 2185 "fe/idl.ypp"
{
(yyval.exval) =
idl_global->gen ()->create_expr ((yyvsp[0].uival));
}
-#line 4515 "fe/idl.tab.cpp"
+#line 4517 "fe/idl.tab.cpp"
break;
case 186:
-#line 2188 "fe/idl.ypp"
+#line 2190 "fe/idl.ypp"
{
(yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].sval));
(yyvsp[0].sval)->destroy ();
delete (yyvsp[0].sval);
(yyvsp[0].sval) = 0;
}
-#line 4526 "fe/idl.tab.cpp"
+#line 4528 "fe/idl.tab.cpp"
break;
case 187:
-#line 2195 "fe/idl.ypp"
+#line 2197 "fe/idl.ypp"
{
char *wide_string = (yyvsp[0].wsval);
(yyval.exval) = idl_global->gen ()->create_expr (wide_string);
ACE_OS::free (wide_string);
(yyvsp[0].wsval) = 0;
}
-#line 4537 "fe/idl.tab.cpp"
+#line 4539 "fe/idl.tab.cpp"
break;
case 188:
-#line 2202 "fe/idl.ypp"
+#line 2204 "fe/idl.ypp"
{
(yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].cval));
}
-#line 4545 "fe/idl.tab.cpp"
+#line 4547 "fe/idl.tab.cpp"
break;
case 189:
-#line 2206 "fe/idl.ypp"
+#line 2208 "fe/idl.ypp"
{
ACE_OutputCDR::from_wchar wc ((yyvsp[0].wcval));
(yyval.exval) = idl_global->gen ()->create_expr (wc);
}
-#line 4554 "fe/idl.tab.cpp"
+#line 4556 "fe/idl.tab.cpp"
break;
case 190:
-#line 2211 "fe/idl.ypp"
+#line 2213 "fe/idl.ypp"
{
(yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].fixval));
}
-#line 4562 "fe/idl.tab.cpp"
+#line 4564 "fe/idl.tab.cpp"
break;
case 191:
-#line 2215 "fe/idl.ypp"
+#line 2217 "fe/idl.ypp"
{
(yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].dval));
}
-#line 4570 "fe/idl.tab.cpp"
+#line 4572 "fe/idl.tab.cpp"
break;
case 192:
-#line 2219 "fe/idl.ypp"
+#line 2221 "fe/idl.ypp"
{
(yyval.exval) = idl_global->gen ()->create_expr (true);
}
-#line 4578 "fe/idl.tab.cpp"
+#line 4580 "fe/idl.tab.cpp"
break;
case 193:
-#line 2223 "fe/idl.ypp"
+#line 2225 "fe/idl.ypp"
{
(yyval.exval) = idl_global->gen ()->create_expr (false);
}
-#line 4586 "fe/idl.tab.cpp"
+#line 4588 "fe/idl.tab.cpp"
break;
case 194:
-#line 2230 "fe/idl.ypp"
+#line 2232 "fe/idl.ypp"
{
int good_expression = 1;
(yyvsp[0].exval)->evaluate (AST_Expression::EK_positive_int);
@@ -4651,11 +4653,11 @@ yyreduce:
idl_global->err ()->syntax_error (idl_global->parse_state ());
}
}
-#line 4655 "fe/idl.tab.cpp"
+#line 4657 "fe/idl.tab.cpp"
break;
case 195:
-#line 2298 "fe/idl.ypp"
+#line 2300 "fe/idl.ypp"
{
if (idl_global->idl_version_ < IDL_VERSION_4)
{
@@ -4672,11 +4674,11 @@ yyreduce:
fe_add_annotation_decl (annotation_decl);
idl_global->scopes ().push (annotation_decl);
}
-#line 4676 "fe/idl.tab.cpp"
+#line 4678 "fe/idl.tab.cpp"
break;
case 196:
-#line 2315 "fe/idl.ypp"
+#line 2317 "fe/idl.ypp"
{
Identifier *id = (yyvsp[-4].idval);
idl_global->scopes ().pop ();
@@ -4685,20 +4687,20 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 4689 "fe/idl.tab.cpp"
+#line 4691 "fe/idl.tab.cpp"
break;
case 202:
-#line 2335 "fe/idl.ypp"
+#line 2337 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_TypedefSeen);
idl_global->in_typedef (true);
}
-#line 4698 "fe/idl.tab.cpp"
+#line 4700 "fe/idl.tab.cpp"
break;
case 206:
-#line 2349 "fe/idl.ypp"
+#line 2351 "fe/idl.ypp"
{
UTL_Scope *scope = idl_global->scopes ().top_non_null ();
UTL_Scope *root = idl_global->scopes ().bottom ();
@@ -4751,27 +4753,27 @@ yyreduce:
delete result;
}
}
-#line 4755 "fe/idl.tab.cpp"
+#line 4757 "fe/idl.tab.cpp"
break;
case 207:
-#line 2405 "fe/idl.ypp"
+#line 2407 "fe/idl.ypp"
{
(yyval.exval) = (yyvsp[0].exval);
}
-#line 4763 "fe/idl.tab.cpp"
+#line 4765 "fe/idl.tab.cpp"
break;
case 208:
-#line 2409 "fe/idl.ypp"
+#line 2411 "fe/idl.ypp"
{
(yyval.exval) = 0;
}
-#line 4771 "fe/idl.tab.cpp"
+#line 4773 "fe/idl.tab.cpp"
break;
case 209:
-#line 2416 "fe/idl.ypp"
+#line 2418 "fe/idl.ypp"
{
AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val);
AST_Annotation_Appl *annotation = (yyvsp[0].annotation_val);
@@ -4781,11 +4783,11 @@ yyreduce:
}
(yyval.annotations_val) = annotations;
}
-#line 4785 "fe/idl.tab.cpp"
+#line 4787 "fe/idl.tab.cpp"
break;
case 210:
-#line 2429 "fe/idl.ypp"
+#line 2431 "fe/idl.ypp"
{
AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val);
AST_Annotation_Appl *annotation = (yyvsp[0].annotation_val);
@@ -4795,19 +4797,19 @@ yyreduce:
}
(yyval.annotations_val) = annotations;
}
-#line 4799 "fe/idl.tab.cpp"
+#line 4801 "fe/idl.tab.cpp"
break;
case 211:
-#line 2439 "fe/idl.ypp"
+#line 2441 "fe/idl.ypp"
{
(yyval.annotations_val) = new AST_Annotation_Appls ();
}
-#line 4807 "fe/idl.tab.cpp"
+#line 4809 "fe/idl.tab.cpp"
break;
case 212:
-#line 2446 "fe/idl.ypp"
+#line 2448 "fe/idl.ypp"
{
if (idl_global->idl_version_ < IDL_VERSION_4)
{
@@ -4860,15 +4862,18 @@ yyreduce:
idl_global->ignore_lookup_errors_ = true;
}
+ stack_based_lookup_for_primary_expr = true;
+
(yyval.annotation_decl_val) = decl;
}
-#line 4866 "fe/idl.tab.cpp"
+#line 4870 "fe/idl.tab.cpp"
break;
case 213:
-#line 2501 "fe/idl.ypp"
+#line 2505 "fe/idl.ypp"
{
idl_global->ignore_lookup_errors_ = false;
+ stack_based_lookup_for_primary_expr = false;
AST_Annotation_Appl *appl = 0;
UTL_ScopedName *name = (yyvsp[-2].idlist);
AST_Annotation_Decl *decl = (yyvsp[-1].annotation_decl_val);
@@ -4893,27 +4898,27 @@ yyreduce:
(yyval.annotation_val) = appl;
}
-#line 4897 "fe/idl.tab.cpp"
+#line 4902 "fe/idl.tab.cpp"
break;
case 214:
-#line 2531 "fe/idl.ypp"
+#line 2536 "fe/idl.ypp"
{
(yyval.annotation_params_val) = (yyvsp[-1].annotation_params_val);
}
-#line 4905 "fe/idl.tab.cpp"
+#line 4910 "fe/idl.tab.cpp"
break;
case 215:
-#line 2535 "fe/idl.ypp"
+#line 2540 "fe/idl.ypp"
{
(yyval.annotation_params_val) = 0;
}
-#line 4913 "fe/idl.tab.cpp"
+#line 4918 "fe/idl.tab.cpp"
break;
case 216:
-#line 2542 "fe/idl.ypp"
+#line 2547 "fe/idl.ypp"
{
AST_Annotation_Appl::Params *params = new AST_Annotation_Appl::Params;
AST_Annotation_Appl::Param *param = new AST_Annotation_Appl::Param;
@@ -4922,47 +4927,47 @@ yyreduce:
params->push (param);
(yyval.annotation_params_val) = params;
}
-#line 4926 "fe/idl.tab.cpp"
+#line 4931 "fe/idl.tab.cpp"
break;
case 217:
-#line 2551 "fe/idl.ypp"
+#line 2556 "fe/idl.ypp"
{
(yyval.annotation_params_val) = (yyvsp[0].annotation_params_val);
}
-#line 4934 "fe/idl.tab.cpp"
+#line 4939 "fe/idl.tab.cpp"
break;
case 218:
-#line 2558 "fe/idl.ypp"
+#line 2563 "fe/idl.ypp"
{
AST_Annotation_Appl::Params *params = (yyvsp[0].annotation_params_val);
params->push ((yyvsp[-1].annotation_param_val));
(yyval.annotation_params_val) = params;
}
-#line 4944 "fe/idl.tab.cpp"
+#line 4949 "fe/idl.tab.cpp"
break;
case 219:
-#line 2566 "fe/idl.ypp"
+#line 2571 "fe/idl.ypp"
{
AST_Annotation_Appl::Params *params = (yyvsp[0].annotation_params_val);
params->push ((yyvsp[-1].annotation_param_val));
(yyval.annotation_params_val) = params;
}
-#line 4954 "fe/idl.tab.cpp"
+#line 4959 "fe/idl.tab.cpp"
break;
case 220:
-#line 2572 "fe/idl.ypp"
+#line 2577 "fe/idl.ypp"
{
(yyval.annotation_params_val) = new AST_Annotation_Appl::Params;
}
-#line 4962 "fe/idl.tab.cpp"
+#line 4967 "fe/idl.tab.cpp"
break;
case 221:
-#line 2579 "fe/idl.ypp"
+#line 2584 "fe/idl.ypp"
{
AST_Annotation_Appl::Param *param = new AST_Annotation_Appl::Param;
param->id = (yyvsp[-2].idval);
@@ -4971,52 +4976,52 @@ yyreduce:
param->expr = (yyvsp[0].exval);
(yyval.annotation_param_val) = param;
}
-#line 4975 "fe/idl.tab.cpp"
+#line 4980 "fe/idl.tab.cpp"
break;
case 222:
-#line 2591 "fe/idl.ypp"
+#line 2596 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_TypedefSeen);
idl_global->in_typedef (true);
}
-#line 4984 "fe/idl.tab.cpp"
+#line 4989 "fe/idl.tab.cpp"
break;
case 223:
-#line 2596 "fe/idl.ypp"
+#line 2601 "fe/idl.ypp"
{
(yyval.dcval) = (yyvsp[0].dcval);
}
-#line 4992 "fe/idl.tab.cpp"
+#line 4997 "fe/idl.tab.cpp"
break;
case 224:
-#line 2600 "fe/idl.ypp"
+#line 2605 "fe/idl.ypp"
{
(yyval.dcval) = (yyvsp[0].dcval);
}
-#line 5000 "fe/idl.tab.cpp"
+#line 5005 "fe/idl.tab.cpp"
break;
case 225:
-#line 2604 "fe/idl.ypp"
+#line 2609 "fe/idl.ypp"
{
(yyval.dcval) = (yyvsp[0].dcval);
}
-#line 5008 "fe/idl.tab.cpp"
+#line 5013 "fe/idl.tab.cpp"
break;
case 226:
-#line 2608 "fe/idl.ypp"
+#line 2613 "fe/idl.ypp"
{
(yyval.dcval) = (yyvsp[0].dcval);
}
-#line 5016 "fe/idl.tab.cpp"
+#line 5021 "fe/idl.tab.cpp"
break;
case 227:
-#line 2612 "fe/idl.ypp"
+#line 2617 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Native *node = 0;
@@ -5044,28 +5049,31 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 5048 "fe/idl.tab.cpp"
+#line 5053 "fe/idl.tab.cpp"
break;
case 228:
-#line 2640 "fe/idl.ypp"
+#line 2645 "fe/idl.ypp"
{
(yyval.dcval) = 0;
}
-#line 5056 "fe/idl.tab.cpp"
+#line 5061 "fe/idl.tab.cpp"
break;
case 229:
-#line 2647 "fe/idl.ypp"
+#line 2652 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_TypeSpecSeen);
}
-#line 5064 "fe/idl.tab.cpp"
+#line 5069 "fe/idl.tab.cpp"
break;
case 230:
-#line 2651 "fe/idl.ypp"
+#line 2656 "fe/idl.ypp"
{
+ AST_Decl *type_spec = (yyvsp[-2].dcval);
+ UTL_DeclList *decls = (yyvsp[0].dlval);
+
UTL_Scope *s = idl_global->scopes ().top_non_null ();
FE_Declarator *d = 0;
AST_Typedef *t = 0;
@@ -5076,21 +5084,17 @@ yyreduce:
* Create a list of type renamings. Add them to the
* enclosing scope
*/
- if (s != 0 && (yyvsp[-2].dcval) != 0 && (yyvsp[0].dlval) != 0)
+ if (s && type_spec && decls)
{
- for (UTL_DecllistActiveIterator l ((yyvsp[0].dlval));
- !l.is_done ();
- l.next ())
+ for (UTL_DecllistActiveIterator l (decls); !l.is_done (); l.next ())
{
d = l.item ();
-
if (d == 0)
{
continue;
}
- AST_Type * tp = d->compose ((yyvsp[-2].dcval));
-
+ AST_Type *tp = d->compose (type_spec);
if (tp == 0)
{
continue;
@@ -5122,29 +5126,29 @@ yyreduce:
}
// This FE_Declarator class isn't destroyed with the AST.
- (yyvsp[0].dlval)->destroy ();
- delete (yyvsp[0].dlval);
- (yyvsp[0].dlval) = 0;
+ decls->destroy ();
+ delete decls;
+ (yyvsp[0].dlval) = decls = 0;
}
(yyval.dcval) = t;
}
-#line 5133 "fe/idl.tab.cpp"
+#line 5137 "fe/idl.tab.cpp"
break;
case 233:
-#line 2724 "fe/idl.ypp"
+#line 2728 "fe/idl.ypp"
{
(yyval.dcval) =
idl_global->scopes ().bottom ()->lookup_primitive_type (
(yyvsp[0].etval)
);
}
-#line 5144 "fe/idl.tab.cpp"
+#line 5148 "fe/idl.tab.cpp"
break;
case 235:
-#line 2732 "fe/idl.ypp"
+#line 2736 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Decl *d = 0;
@@ -5167,30 +5171,30 @@ yyreduce:
(yyval.dcval) = d;
}
-#line 5171 "fe/idl.tab.cpp"
+#line 5175 "fe/idl.tab.cpp"
break;
case 253:
-#line 2787 "fe/idl.ypp"
+#line 2791 "fe/idl.ypp"
{
ACE_NEW_RETURN ((yyval.dlval),
UTL_DeclList ((yyvsp[-1].deval),
(yyvsp[0].dlval)),
1);
}
-#line 5182 "fe/idl.tab.cpp"
+#line 5186 "fe/idl.tab.cpp"
break;
case 254:
-#line 2798 "fe/idl.ypp"
+#line 2802 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_DeclsCommaSeen);
}
-#line 5190 "fe/idl.tab.cpp"
+#line 5194 "fe/idl.tab.cpp"
break;
case 255:
-#line 2802 "fe/idl.ypp"
+#line 2806 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_DeclsDeclSeen);
@@ -5210,38 +5214,38 @@ yyreduce:
(yyval.dlval) = (yyvsp[-3].dlval);
}
}
-#line 5214 "fe/idl.tab.cpp"
+#line 5218 "fe/idl.tab.cpp"
break;
case 256:
-#line 2822 "fe/idl.ypp"
+#line 2826 "fe/idl.ypp"
{
(yyval.dlval) = 0;
}
-#line 5222 "fe/idl.tab.cpp"
+#line 5226 "fe/idl.tab.cpp"
break;
case 259:
-#line 2834 "fe/idl.ypp"
+#line 2838 "fe/idl.ypp"
{
ACE_NEW_RETURN ((yyval.dlval),
UTL_DeclList ((yyvsp[-1].deval),
(yyvsp[0].dlval)),
1);
}
-#line 5233 "fe/idl.tab.cpp"
+#line 5237 "fe/idl.tab.cpp"
break;
case 260:
-#line 2845 "fe/idl.ypp"
+#line 2849 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_DeclsCommaSeen);
}
-#line 5241 "fe/idl.tab.cpp"
+#line 5245 "fe/idl.tab.cpp"
break;
case 261:
-#line 2849 "fe/idl.ypp"
+#line 2853 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_DeclsDeclSeen);
@@ -5261,19 +5265,19 @@ yyreduce:
(yyval.dlval) = (yyvsp[-3].dlval);
}
}
-#line 5265 "fe/idl.tab.cpp"
+#line 5269 "fe/idl.tab.cpp"
break;
case 262:
-#line 2869 "fe/idl.ypp"
+#line 2873 "fe/idl.ypp"
{
(yyval.dlval) = 0;
}
-#line 5273 "fe/idl.tab.cpp"
+#line 5277 "fe/idl.tab.cpp"
break;
case 263:
-#line 2876 "fe/idl.ypp"
+#line 2880 "fe/idl.ypp"
{
UTL_ScopedName *sn = 0;
ACE_NEW_RETURN (sn,
@@ -5286,11 +5290,11 @@ yyreduce:
0),
1);
}
-#line 5290 "fe/idl.tab.cpp"
+#line 5294 "fe/idl.tab.cpp"
break;
case 264:
-#line 2892 "fe/idl.ypp"
+#line 2896 "fe/idl.ypp"
{
UTL_ScopedName *sn = 0;
ACE_NEW_RETURN (sn,
@@ -5305,156 +5309,156 @@ yyreduce:
(yyvsp[0].dcval)),
1);
}
-#line 5309 "fe/idl.tab.cpp"
+#line 5313 "fe/idl.tab.cpp"
break;
case 267:
-#line 2915 "fe/idl.ypp"
+#line 2919 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_long;
}
-#line 5317 "fe/idl.tab.cpp"
+#line 5321 "fe/idl.tab.cpp"
break;
case 268:
-#line 2919 "fe/idl.ypp"
+#line 2923 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_longlong;
}
-#line 5325 "fe/idl.tab.cpp"
+#line 5329 "fe/idl.tab.cpp"
break;
case 269:
-#line 2923 "fe/idl.ypp"
+#line 2927 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_short;
}
-#line 5333 "fe/idl.tab.cpp"
+#line 5337 "fe/idl.tab.cpp"
break;
case 270:
-#line 2930 "fe/idl.ypp"
+#line 2934 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_ulong;
}
-#line 5341 "fe/idl.tab.cpp"
+#line 5345 "fe/idl.tab.cpp"
break;
case 271:
-#line 2934 "fe/idl.ypp"
+#line 2938 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_ulonglong;
}
-#line 5349 "fe/idl.tab.cpp"
+#line 5353 "fe/idl.tab.cpp"
break;
case 272:
-#line 2938 "fe/idl.ypp"
+#line 2942 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_ushort;
}
-#line 5357 "fe/idl.tab.cpp"
+#line 5361 "fe/idl.tab.cpp"
break;
case 273:
-#line 2945 "fe/idl.ypp"
+#line 2949 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_double;
}
-#line 5365 "fe/idl.tab.cpp"
+#line 5369 "fe/idl.tab.cpp"
break;
case 274:
-#line 2949 "fe/idl.ypp"
+#line 2953 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_float;
}
-#line 5373 "fe/idl.tab.cpp"
+#line 5377 "fe/idl.tab.cpp"
break;
case 275:
-#line 2953 "fe/idl.ypp"
+#line 2957 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_longdouble;
}
-#line 5381 "fe/idl.tab.cpp"
+#line 5385 "fe/idl.tab.cpp"
break;
case 276:
-#line 2960 "fe/idl.ypp"
+#line 2964 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_fixed;
}
-#line 5389 "fe/idl.tab.cpp"
+#line 5393 "fe/idl.tab.cpp"
break;
case 277:
-#line 2967 "fe/idl.ypp"
+#line 2971 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_char;
}
-#line 5397 "fe/idl.tab.cpp"
+#line 5401 "fe/idl.tab.cpp"
break;
case 278:
-#line 2971 "fe/idl.ypp"
+#line 2975 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_wchar;
}
-#line 5405 "fe/idl.tab.cpp"
+#line 5409 "fe/idl.tab.cpp"
break;
case 279:
-#line 2978 "fe/idl.ypp"
+#line 2982 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_octet;
}
-#line 5413 "fe/idl.tab.cpp"
+#line 5417 "fe/idl.tab.cpp"
break;
case 280:
-#line 2985 "fe/idl.ypp"
+#line 2989 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_bool;
}
-#line 5421 "fe/idl.tab.cpp"
+#line 5425 "fe/idl.tab.cpp"
break;
case 281:
-#line 2992 "fe/idl.ypp"
+#line 2996 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_any;
}
-#line 5429 "fe/idl.tab.cpp"
+#line 5433 "fe/idl.tab.cpp"
break;
case 282:
-#line 2999 "fe/idl.ypp"
+#line 3003 "fe/idl.ypp"
{
(yyval.etval) = AST_Expression::EV_object;
}
-#line 5437 "fe/idl.tab.cpp"
+#line 5441 "fe/idl.tab.cpp"
break;
case 283:
-#line 3006 "fe/idl.ypp"
+#line 3010 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StructSeen);
}
-#line 5445 "fe/idl.tab.cpp"
+#line 5449 "fe/idl.tab.cpp"
break;
case 284:
-#line 3010 "fe/idl.ypp"
+#line 3014 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StructIDSeen);
(yyval.idval) = (yyvsp[0].idval);
}
-#line 5454 "fe/idl.tab.cpp"
+#line 5458 "fe/idl.tab.cpp"
break;
case 285:
-#line 3019 "fe/idl.ypp"
+#line 3023 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval), 0);
@@ -5485,27 +5489,27 @@ yyreduce:
delete (yyvsp[0].idval);
(yyvsp[0].idval) = 0;
}
-#line 5489 "fe/idl.tab.cpp"
+#line 5493 "fe/idl.tab.cpp"
break;
case 286:
-#line 3050 "fe/idl.ypp"
+#line 3054 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StructSqSeen);
}
-#line 5497 "fe/idl.tab.cpp"
+#line 5501 "fe/idl.tab.cpp"
break;
case 287:
-#line 3054 "fe/idl.ypp"
+#line 3058 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StructBodySeen);
}
-#line 5505 "fe/idl.tab.cpp"
+#line 5509 "fe/idl.tab.cpp"
break;
case 288:
-#line 3058 "fe/idl.ypp"
+#line 3062 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StructQsSeen);
@@ -5517,11 +5521,11 @@ yyreduce:
);
idl_global->scopes ().pop ();
}
-#line 5521 "fe/idl.tab.cpp"
+#line 5525 "fe/idl.tab.cpp"
break;
case 292:
-#line 3080 "fe/idl.ypp"
+#line 3084 "fe/idl.ypp"
{
AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val);
AST_Decls *members = (yyvsp[0].decls_val);
@@ -5535,27 +5539,27 @@ yyreduce:
delete annotations;
delete members;
}
-#line 5539 "fe/idl.tab.cpp"
+#line 5543 "fe/idl.tab.cpp"
break;
case 293:
-#line 3097 "fe/idl.ypp"
+#line 3101 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_MemberTypeSeen);
}
-#line 5547 "fe/idl.tab.cpp"
+#line 5551 "fe/idl.tab.cpp"
break;
case 294:
-#line 3101 "fe/idl.ypp"
+#line 3105 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_MemberDeclsSeen);
}
-#line 5555 "fe/idl.tab.cpp"
+#line 5559 "fe/idl.tab.cpp"
break;
case 295:
-#line 3105 "fe/idl.ypp"
+#line 3109 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
FE_Declarator *d = 0;
@@ -5609,53 +5613,53 @@ yyreduce:
(yyval.decls_val) = members;
}
-#line 5613 "fe/idl.tab.cpp"
+#line 5617 "fe/idl.tab.cpp"
break;
case 296:
-#line 3159 "fe/idl.ypp"
+#line 3163 "fe/idl.ypp"
{
idl_global->err()->syntax_error (idl_global->parse_state ());
}
-#line 5621 "fe/idl.tab.cpp"
+#line 5625 "fe/idl.tab.cpp"
break;
case 297:
-#line 3163 "fe/idl.ypp"
+#line 3167 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
yyerrok;
}
-#line 5630 "fe/idl.tab.cpp"
+#line 5634 "fe/idl.tab.cpp"
break;
case 298:
-#line 3171 "fe/idl.ypp"
+#line 3175 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_UnionSeen);
}
-#line 5638 "fe/idl.tab.cpp"
+#line 5642 "fe/idl.tab.cpp"
break;
case 299:
-#line 3175 "fe/idl.ypp"
+#line 3179 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_UnionIDSeen);
(yyval.idval) = (yyvsp[0].idval);
}
-#line 5647 "fe/idl.tab.cpp"
+#line 5651 "fe/idl.tab.cpp"
break;
case 300:
-#line 3183 "fe/idl.ypp"
+#line 3187 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SwitchSeen);
}
-#line 5655 "fe/idl.tab.cpp"
+#line 5659 "fe/idl.tab.cpp"
break;
case 301:
-#line 3187 "fe/idl.ypp"
+#line 3191 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[-3].idval), 0);
@@ -5688,19 +5692,19 @@ yyreduce:
* Don't delete $1 yet; we'll need it a bit later.
*/
}
-#line 5692 "fe/idl.tab.cpp"
+#line 5696 "fe/idl.tab.cpp"
break;
case 302:
-#line 3220 "fe/idl.ypp"
+#line 3224 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SwitchTypeSeen);
}
-#line 5700 "fe/idl.tab.cpp"
+#line 5704 "fe/idl.tab.cpp"
break;
case 303:
-#line 3224 "fe/idl.ypp"
+#line 3228 "fe/idl.ypp"
{
/*
* The top of the scopes must be an empty union we added after we
@@ -5759,27 +5763,27 @@ yyreduce:
delete disc_annotations;
}
-#line 5763 "fe/idl.tab.cpp"
+#line 5767 "fe/idl.tab.cpp"
break;
case 304:
-#line 3283 "fe/idl.ypp"
+#line 3287 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_UnionSqSeen);
}
-#line 5771 "fe/idl.tab.cpp"
+#line 5775 "fe/idl.tab.cpp"
break;
case 305:
-#line 3287 "fe/idl.ypp"
+#line 3291 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_UnionBodySeen);
}
-#line 5779 "fe/idl.tab.cpp"
+#line 5783 "fe/idl.tab.cpp"
break;
case 306:
-#line 3291 "fe/idl.ypp"
+#line 3295 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_UnionQsSeen);
@@ -5795,22 +5799,22 @@ yyreduce:
idl_global->scopes ().pop ();
}
}
-#line 5799 "fe/idl.tab.cpp"
+#line 5803 "fe/idl.tab.cpp"
break;
case 307:
-#line 3310 "fe/idl.ypp"
+#line 3314 "fe/idl.ypp"
{
(yyval.dcval) =
idl_global->scopes ().bottom ()->lookup_primitive_type (
(yyvsp[0].etval)
);
}
-#line 5810 "fe/idl.tab.cpp"
+#line 5814 "fe/idl.tab.cpp"
break;
case 308:
-#line 3317 "fe/idl.ypp"
+#line 3321 "fe/idl.ypp"
{
/* wchars are not allowed. */
if ((yyvsp[0].etval) == AST_Expression::EV_wchar)
@@ -5823,11 +5827,11 @@ yyreduce:
(yyvsp[0].etval)
);
}
-#line 5827 "fe/idl.tab.cpp"
+#line 5831 "fe/idl.tab.cpp"
break;
case 309:
-#line 3330 "fe/idl.ypp"
+#line 3334 "fe/idl.ypp"
{
/* octets are not allowed. */
idl_global->err ()->error0 (UTL_Error::EIDL_DISC_TYPE);
@@ -5836,22 +5840,22 @@ yyreduce:
(yyvsp[0].etval)
);
}
-#line 5840 "fe/idl.tab.cpp"
+#line 5844 "fe/idl.tab.cpp"
break;
case 310:
-#line 3339 "fe/idl.ypp"
+#line 3343 "fe/idl.ypp"
{
(yyval.dcval) =
idl_global->scopes ().bottom ()->lookup_primitive_type (
(yyvsp[0].etval)
);
}
-#line 5851 "fe/idl.tab.cpp"
+#line 5855 "fe/idl.tab.cpp"
break;
case 312:
-#line 3347 "fe/idl.ypp"
+#line 3351 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Decl *d = 0;
@@ -5958,27 +5962,27 @@ yyreduce:
delete (yyvsp[0].idlist);
(yyvsp[0].idlist) = 0;
}
-#line 5962 "fe/idl.tab.cpp"
+#line 5966 "fe/idl.tab.cpp"
break;
case 316:
-#line 3464 "fe/idl.ypp"
+#line 3468 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_UnionLabelSeen);
}
-#line 5970 "fe/idl.tab.cpp"
+#line 5974 "fe/idl.tab.cpp"
break;
case 317:
-#line 3468 "fe/idl.ypp"
+#line 3472 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_UnionElemSeen);
}
-#line 5978 "fe/idl.tab.cpp"
+#line 5982 "fe/idl.tab.cpp"
break;
case 318:
-#line 3472 "fe/idl.ypp"
+#line 3476 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_UnionBranch *b = 0;
@@ -6010,39 +6014,39 @@ yyreduce:
delete annotations;
}
-#line 6014 "fe/idl.tab.cpp"
+#line 6018 "fe/idl.tab.cpp"
break;
case 319:
-#line 3504 "fe/idl.ypp"
+#line 3508 "fe/idl.ypp"
{
idl_global->err()->syntax_error (idl_global->parse_state());
}
-#line 6022 "fe/idl.tab.cpp"
+#line 6026 "fe/idl.tab.cpp"
break;
case 320:
-#line 3508 "fe/idl.ypp"
+#line 3512 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
yyerrok;
}
-#line 6031 "fe/idl.tab.cpp"
+#line 6035 "fe/idl.tab.cpp"
break;
case 321:
-#line 3516 "fe/idl.ypp"
+#line 3520 "fe/idl.ypp"
{
ACE_NEW_RETURN ((yyval.llval),
UTL_LabelList ((yyvsp[-1].ulval),
(yyvsp[0].llval)),
1);
}
-#line 6042 "fe/idl.tab.cpp"
+#line 6046 "fe/idl.tab.cpp"
break;
case 322:
-#line 3526 "fe/idl.ypp"
+#line 3530 "fe/idl.ypp"
{
UTL_LabelList *ll = 0;
ACE_NEW_RETURN (ll,
@@ -6060,27 +6064,27 @@ yyreduce:
(yyval.llval) = (yyvsp[-1].llval);
}
}
-#line 6064 "fe/idl.tab.cpp"
+#line 6068 "fe/idl.tab.cpp"
break;
case 323:
-#line 3544 "fe/idl.ypp"
+#line 3548 "fe/idl.ypp"
{
(yyval.llval) = 0;
}
-#line 6072 "fe/idl.tab.cpp"
+#line 6076 "fe/idl.tab.cpp"
break;
case 324:
-#line 3551 "fe/idl.ypp"
+#line 3555 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_DefaultSeen);
}
-#line 6080 "fe/idl.tab.cpp"
+#line 6084 "fe/idl.tab.cpp"
break;
case 325:
-#line 3555 "fe/idl.ypp"
+#line 3559 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_LabelColonSeen);
@@ -6089,27 +6093,27 @@ yyreduce:
0
);
}
-#line 6093 "fe/idl.tab.cpp"
+#line 6097 "fe/idl.tab.cpp"
break;
case 326:
-#line 3564 "fe/idl.ypp"
+#line 3568 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_CaseSeen);
}
-#line 6101 "fe/idl.tab.cpp"
+#line 6105 "fe/idl.tab.cpp"
break;
case 327:
-#line 3568 "fe/idl.ypp"
+#line 3572 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_LabelExprSeen);
}
-#line 6109 "fe/idl.tab.cpp"
+#line 6113 "fe/idl.tab.cpp"
break;
case 328:
-#line 3572 "fe/idl.ypp"
+#line 3576 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_LabelColonSeen);
@@ -6118,19 +6122,19 @@ yyreduce:
(yyvsp[-2].exval)
);
}
-#line 6122 "fe/idl.tab.cpp"
+#line 6126 "fe/idl.tab.cpp"
break;
case 329:
-#line 3584 "fe/idl.ypp"
+#line 3588 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_UnionElemTypeSeen);
}
-#line 6130 "fe/idl.tab.cpp"
+#line 6134 "fe/idl.tab.cpp"
break;
case 330:
-#line 3588 "fe/idl.ypp"
+#line 3592 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_UnionElemDeclSeen);
@@ -6174,11 +6178,11 @@ yyreduce:
(yyvsp[0].deval) = 0;
}
}
-#line 6178 "fe/idl.tab.cpp"
+#line 6182 "fe/idl.tab.cpp"
break;
case 331:
-#line 3635 "fe/idl.ypp"
+#line 3639 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval),
@@ -6200,11 +6204,11 @@ yyreduce:
(yyval.dcval) = d;
}
-#line 6204 "fe/idl.tab.cpp"
+#line 6208 "fe/idl.tab.cpp"
break;
case 332:
-#line 3660 "fe/idl.ypp"
+#line 3664 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval),
@@ -6224,19 +6228,19 @@ yyreduce:
delete (yyvsp[0].idval);
(yyvsp[0].idval) = 0;
}
-#line 6228 "fe/idl.tab.cpp"
+#line 6232 "fe/idl.tab.cpp"
break;
case 333:
-#line 3683 "fe/idl.ypp"
+#line 3687 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EnumSeen);
}
-#line 6236 "fe/idl.tab.cpp"
+#line 6240 "fe/idl.tab.cpp"
break;
case 334:
-#line 3687 "fe/idl.ypp"
+#line 3691 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval), 0);
@@ -6267,27 +6271,27 @@ yyreduce:
delete (yyvsp[0].idval);
(yyvsp[0].idval) = 0;
}
-#line 6271 "fe/idl.tab.cpp"
+#line 6275 "fe/idl.tab.cpp"
break;
case 335:
-#line 3718 "fe/idl.ypp"
+#line 3722 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EnumSqSeen);
}
-#line 6279 "fe/idl.tab.cpp"
+#line 6283 "fe/idl.tab.cpp"
break;
case 336:
-#line 3722 "fe/idl.ypp"
+#line 3726 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EnumBodySeen);
}
-#line 6287 "fe/idl.tab.cpp"
+#line 6291 "fe/idl.tab.cpp"
break;
case 337:
-#line 3726 "fe/idl.ypp"
+#line 3730 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EnumQsSeen);
@@ -6306,19 +6310,19 @@ yyreduce:
idl_global->scopes ().pop ();
}
}
-#line 6310 "fe/idl.tab.cpp"
+#line 6314 "fe/idl.tab.cpp"
break;
case 339:
-#line 3751 "fe/idl.ypp"
+#line 3755 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EnumCommaSeen);
}
-#line 6318 "fe/idl.tab.cpp"
+#line 6322 "fe/idl.tab.cpp"
break;
case 342:
-#line 3760 "fe/idl.ypp"
+#line 3764 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val);
@@ -6353,27 +6357,27 @@ yyreduce:
delete annotations;
}
-#line 6357 "fe/idl.tab.cpp"
+#line 6361 "fe/idl.tab.cpp"
break;
case 343:
-#line 3799 "fe/idl.ypp"
+#line 3803 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SequenceCommaSeen);
}
-#line 6365 "fe/idl.tab.cpp"
+#line 6369 "fe/idl.tab.cpp"
break;
case 344:
-#line 3803 "fe/idl.ypp"
+#line 3807 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SequenceExprSeen);
}
-#line 6373 "fe/idl.tab.cpp"
+#line 6377 "fe/idl.tab.cpp"
break;
case 345:
-#line 3807 "fe/idl.ypp"
+#line 3811 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SequenceQsSeen);
@@ -6458,11 +6462,11 @@ yyreduce:
ev = 0;
(yyval.dcval) = seq;
}
-#line 6462 "fe/idl.tab.cpp"
+#line 6466 "fe/idl.tab.cpp"
break;
case 346:
-#line 3893 "fe/idl.ypp"
+#line 3897 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SequenceQsSeen);
@@ -6528,11 +6532,11 @@ yyreduce:
delete type_annotations;
(yyval.dcval) = seq;
}
-#line 6532 "fe/idl.tab.cpp"
+#line 6536 "fe/idl.tab.cpp"
break;
case 347:
-#line 3962 "fe/idl.ypp"
+#line 3966 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SequenceSeen);
@@ -6541,19 +6545,19 @@ yyreduce:
*/
idl_global->scopes ().push (0);
}
-#line 6545 "fe/idl.tab.cpp"
+#line 6549 "fe/idl.tab.cpp"
break;
case 348:
-#line 3971 "fe/idl.ypp"
+#line 3975 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SequenceSqSeen);
}
-#line 6553 "fe/idl.tab.cpp"
+#line 6557 "fe/idl.tab.cpp"
break;
case 349:
-#line 3975 "fe/idl.ypp"
+#line 3979 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SequenceTypeSeen);
Decl_Annotations_Pair *seq_head = new Decl_Annotations_Pair;
@@ -6561,36 +6565,36 @@ yyreduce:
seq_head->annotations = (yyvsp[-1].annotations_val);
(yyval.decl_annotations_pair_val) = seq_head;
}
-#line 6565 "fe/idl.tab.cpp"
+#line 6569 "fe/idl.tab.cpp"
break;
case 350:
-#line 3986 "fe/idl.ypp"
+#line 3990 "fe/idl.ypp"
{
(yyvsp[-1].exval)->evaluate (AST_Expression::EK_positive_int);
(yyval.dcval) = idl_global->gen ()->create_fixed ((yyvsp[-3].exval), (yyvsp[-1].exval));
}
-#line 6574 "fe/idl.tab.cpp"
+#line 6578 "fe/idl.tab.cpp"
break;
case 351:
-#line 3995 "fe/idl.ypp"
+#line 3999 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StringSqSeen);
}
-#line 6582 "fe/idl.tab.cpp"
+#line 6586 "fe/idl.tab.cpp"
break;
case 352:
-#line 3999 "fe/idl.ypp"
+#line 4003 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StringExprSeen);
}
-#line 6590 "fe/idl.tab.cpp"
+#line 6594 "fe/idl.tab.cpp"
break;
case 353:
-#line 4003 "fe/idl.ypp"
+#line 4007 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StringQsSeen);
@@ -6632,11 +6636,11 @@ yyreduce:
delete ev;
ev = 0;
}
-#line 6636 "fe/idl.tab.cpp"
+#line 6640 "fe/idl.tab.cpp"
break;
case 354:
-#line 4045 "fe/idl.ypp"
+#line 4049 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StringCompleted);
@@ -6659,35 +6663,35 @@ yyreduce:
(yyval.dcval) = tao_string_decl;
}
-#line 6663 "fe/idl.tab.cpp"
+#line 6667 "fe/idl.tab.cpp"
break;
case 355:
-#line 4071 "fe/idl.ypp"
+#line 4075 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StringSeen);
}
-#line 6671 "fe/idl.tab.cpp"
+#line 6675 "fe/idl.tab.cpp"
break;
case 356:
-#line 4079 "fe/idl.ypp"
+#line 4083 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StringSqSeen);
}
-#line 6679 "fe/idl.tab.cpp"
+#line 6683 "fe/idl.tab.cpp"
break;
case 357:
-#line 4083 "fe/idl.ypp"
+#line 4087 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StringExprSeen);
}
-#line 6687 "fe/idl.tab.cpp"
+#line 6691 "fe/idl.tab.cpp"
break;
case 358:
-#line 4087 "fe/idl.ypp"
+#line 4091 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StringQsSeen);
@@ -6720,11 +6724,11 @@ yyreduce:
(yyval.dcval) = string;
}
}
-#line 6724 "fe/idl.tab.cpp"
+#line 6728 "fe/idl.tab.cpp"
break;
case 359:
-#line 4120 "fe/idl.ypp"
+#line 4124 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StringCompleted);
@@ -6747,27 +6751,27 @@ yyreduce:
(yyval.dcval) = string;
}
-#line 6751 "fe/idl.tab.cpp"
+#line 6755 "fe/idl.tab.cpp"
break;
case 360:
-#line 4146 "fe/idl.ypp"
+#line 4150 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_StringSeen);
}
-#line 6759 "fe/idl.tab.cpp"
+#line 6763 "fe/idl.tab.cpp"
break;
case 361:
-#line 4153 "fe/idl.ypp"
+#line 4157 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ArrayIDSeen);
}
-#line 6767 "fe/idl.tab.cpp"
+#line 6771 "fe/idl.tab.cpp"
break;
case 362:
-#line 4157 "fe/idl.ypp"
+#line 4161 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ArrayCompleted);
@@ -6807,22 +6811,22 @@ yyreduce:
(yyval.dcval) = array;
}
-#line 6811 "fe/idl.tab.cpp"
+#line 6815 "fe/idl.tab.cpp"
break;
case 363:
-#line 4200 "fe/idl.ypp"
+#line 4204 "fe/idl.ypp"
{
ACE_NEW_RETURN ((yyval.elval),
UTL_ExprList ((yyvsp[-1].exval),
(yyvsp[0].elval)),
1);
}
-#line 6822 "fe/idl.tab.cpp"
+#line 6826 "fe/idl.tab.cpp"
break;
case 364:
-#line 4210 "fe/idl.ypp"
+#line 4214 "fe/idl.ypp"
{
UTL_ExprList *el = 0;
ACE_NEW_RETURN (el,
@@ -6840,35 +6844,35 @@ yyreduce:
(yyval.elval) = (yyvsp[-1].elval);
}
}
-#line 6844 "fe/idl.tab.cpp"
+#line 6848 "fe/idl.tab.cpp"
break;
case 365:
-#line 4228 "fe/idl.ypp"
+#line 4232 "fe/idl.ypp"
{
(yyval.elval) = 0;
}
-#line 6852 "fe/idl.tab.cpp"
+#line 6856 "fe/idl.tab.cpp"
break;
case 366:
-#line 4235 "fe/idl.ypp"
+#line 4239 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_DimSqSeen);
}
-#line 6860 "fe/idl.tab.cpp"
+#line 6864 "fe/idl.tab.cpp"
break;
case 367:
-#line 4239 "fe/idl.ypp"
+#line 4243 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_DimExprSeen);
}
-#line 6868 "fe/idl.tab.cpp"
+#line 6872 "fe/idl.tab.cpp"
break;
case 368:
-#line 4243 "fe/idl.ypp"
+#line 4247 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_DimQsSeen);
@@ -6922,43 +6926,43 @@ yyreduce:
delete ev;
ev = 0;
}
-#line 6926 "fe/idl.tab.cpp"
+#line 6930 "fe/idl.tab.cpp"
break;
case 371:
-#line 4305 "fe/idl.ypp"
+#line 4309 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_AttrROSeen);
}
-#line 6934 "fe/idl.tab.cpp"
+#line 6938 "fe/idl.tab.cpp"
break;
case 372:
-#line 4309 "fe/idl.ypp"
+#line 4313 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_AttrSeen);
}
-#line 6942 "fe/idl.tab.cpp"
+#line 6946 "fe/idl.tab.cpp"
break;
case 373:
-#line 4313 "fe/idl.ypp"
+#line 4317 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_AttrTypeSeen);
}
-#line 6950 "fe/idl.tab.cpp"
+#line 6954 "fe/idl.tab.cpp"
break;
case 374:
-#line 4317 "fe/idl.ypp"
+#line 4321 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclsSeen);
}
-#line 6958 "fe/idl.tab.cpp"
+#line 6962 "fe/idl.tab.cpp"
break;
case 375:
-#line 4321 "fe/idl.ypp"
+#line 4325 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Attribute *a = 0;
@@ -7010,43 +7014,43 @@ yyreduce:
(yyval.dcval) = a;
}
-#line 7014 "fe/idl.tab.cpp"
+#line 7018 "fe/idl.tab.cpp"
break;
case 376:
-#line 4376 "fe/idl.ypp"
+#line 4380 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_AttrSeen);
}
-#line 7022 "fe/idl.tab.cpp"
+#line 7026 "fe/idl.tab.cpp"
break;
case 377:
-#line 4380 "fe/idl.ypp"
+#line 4384 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_AttrTypeSeen);
}
-#line 7030 "fe/idl.tab.cpp"
+#line 7034 "fe/idl.tab.cpp"
break;
case 378:
-#line 4384 "fe/idl.ypp"
+#line 4388 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclsSeen);
}
-#line 7038 "fe/idl.tab.cpp"
+#line 7042 "fe/idl.tab.cpp"
break;
case 379:
-#line 4388 "fe/idl.ypp"
+#line 4392 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpGetRaiseCompleted);
}
-#line 7046 "fe/idl.tab.cpp"
+#line 7050 "fe/idl.tab.cpp"
break;
case 380:
-#line 4392 "fe/idl.ypp"
+#line 4396 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Attribute *a = 0;
@@ -7107,19 +7111,19 @@ yyreduce:
(yyval.dcval) = a;
}
-#line 7111 "fe/idl.tab.cpp"
+#line 7115 "fe/idl.tab.cpp"
break;
case 381:
-#line 4456 "fe/idl.ypp"
+#line 4460 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ExceptSeen);
}
-#line 7119 "fe/idl.tab.cpp"
+#line 7123 "fe/idl.tab.cpp"
break;
case 382:
-#line 4460 "fe/idl.ypp"
+#line 4464 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval),
@@ -7148,27 +7152,27 @@ yyreduce:
delete (yyvsp[0].idval);
(yyvsp[0].idval) = 0;
}
-#line 7152 "fe/idl.tab.cpp"
+#line 7156 "fe/idl.tab.cpp"
break;
case 383:
-#line 4489 "fe/idl.ypp"
+#line 4493 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ExceptSqSeen);
}
-#line 7160 "fe/idl.tab.cpp"
+#line 7164 "fe/idl.tab.cpp"
break;
case 384:
-#line 4493 "fe/idl.ypp"
+#line 4497 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ExceptBodySeen);
}
-#line 7168 "fe/idl.tab.cpp"
+#line 7172 "fe/idl.tab.cpp"
break;
case 385:
-#line 4497 "fe/idl.ypp"
+#line 4501 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ExceptQsSeen);
/*
@@ -7178,19 +7182,19 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 7182 "fe/idl.tab.cpp"
+#line 7186 "fe/idl.tab.cpp"
break;
case 386:
-#line 4510 "fe/idl.ypp"
+#line 4514 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpTypeSeen);
}
-#line 7190 "fe/idl.tab.cpp"
+#line 7194 "fe/idl.tab.cpp"
break;
case 387:
-#line 4514 "fe/idl.ypp"
+#line 4518 "fe/idl.ypp"
{
AST_Operation *op = 0;
UTL_Scope *scope = idl_global->scopes ().top_non_null ();
@@ -7251,27 +7255,27 @@ yyreduce:
*/
idl_global->scopes ().push (op);
}
-#line 7255 "fe/idl.tab.cpp"
+#line 7259 "fe/idl.tab.cpp"
break;
case 388:
-#line 4575 "fe/idl.ypp"
+#line 4579 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpParsCompleted);
}
-#line 7263 "fe/idl.tab.cpp"
+#line 7267 "fe/idl.tab.cpp"
break;
case 389:
-#line 4579 "fe/idl.ypp"
+#line 4583 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseCompleted);
}
-#line 7271 "fe/idl.tab.cpp"
+#line 7275 "fe/idl.tab.cpp"
break;
case 390:
-#line 4583 "fe/idl.ypp"
+#line 4587 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Operation *o = 0;
@@ -7302,57 +7306,57 @@ yyreduce:
(yyval.dcval) = o;
}
-#line 7306 "fe/idl.tab.cpp"
+#line 7310 "fe/idl.tab.cpp"
break;
case 391:
-#line 4617 "fe/idl.ypp"
+#line 4621 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpAttrSeen);
(yyval.ofval) = AST_Operation::OP_oneway;
}
-#line 7315 "fe/idl.tab.cpp"
+#line 7319 "fe/idl.tab.cpp"
break;
case 392:
-#line 4622 "fe/idl.ypp"
+#line 4626 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpAttrSeen);
(yyval.ofval) = AST_Operation::OP_idempotent;
}
-#line 7324 "fe/idl.tab.cpp"
+#line 7328 "fe/idl.tab.cpp"
break;
case 393:
-#line 4627 "fe/idl.ypp"
+#line 4631 "fe/idl.ypp"
{
(yyval.ofval) = AST_Operation::OP_noflags;
}
-#line 7332 "fe/idl.tab.cpp"
+#line 7336 "fe/idl.tab.cpp"
break;
case 395:
-#line 4635 "fe/idl.ypp"
+#line 4639 "fe/idl.ypp"
{
(yyval.dcval) =
idl_global->scopes ().bottom ()->lookup_primitive_type (
AST_Expression::EV_void
);
}
-#line 7343 "fe/idl.tab.cpp"
+#line 7347 "fe/idl.tab.cpp"
break;
case 396:
-#line 4645 "fe/idl.ypp"
+#line 4649 "fe/idl.ypp"
{
//@@ PS_FactorySeen?
idl_global->set_parse_state (IDL_GlobalData::PS_OpTypeSeen);
}
-#line 7352 "fe/idl.tab.cpp"
+#line 7356 "fe/idl.tab.cpp"
break;
case 397:
-#line 4650 "fe/idl.ypp"
+#line 4654 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -7395,19 +7399,19 @@ yyreduce:
delete (yyvsp[-1].annotations_val);
}
-#line 7399 "fe/idl.tab.cpp"
+#line 7403 "fe/idl.tab.cpp"
break;
case 398:
-#line 4693 "fe/idl.ypp"
+#line 4697 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpParsCompleted);
}
-#line 7407 "fe/idl.tab.cpp"
+#line 7411 "fe/idl.tab.cpp"
break;
case 399:
-#line 4697 "fe/idl.ypp"
+#line 4701 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseCompleted);
@@ -7420,67 +7424,67 @@ yyreduce:
idl_global->scopes ().pop ();
}
-#line 7424 "fe/idl.tab.cpp"
+#line 7428 "fe/idl.tab.cpp"
break;
case 400:
-#line 4713 "fe/idl.ypp"
+#line 4717 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen);
}
-#line 7432 "fe/idl.tab.cpp"
+#line 7436 "fe/idl.tab.cpp"
break;
case 401:
-#line 4717 "fe/idl.ypp"
+#line 4721 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen);
}
-#line 7440 "fe/idl.tab.cpp"
+#line 7444 "fe/idl.tab.cpp"
break;
case 402:
-#line 4721 "fe/idl.ypp"
+#line 4725 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen);
}
-#line 7448 "fe/idl.tab.cpp"
+#line 7452 "fe/idl.tab.cpp"
break;
case 403:
-#line 4726 "fe/idl.ypp"
+#line 4730 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen);
}
-#line 7456 "fe/idl.tab.cpp"
+#line 7460 "fe/idl.tab.cpp"
break;
case 405:
-#line 4736 "fe/idl.ypp"
+#line 4740 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpParCommaSeen);
}
-#line 7464 "fe/idl.tab.cpp"
+#line 7468 "fe/idl.tab.cpp"
break;
case 408:
-#line 4745 "fe/idl.ypp"
+#line 4749 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpParDirSeen);
}
-#line 7472 "fe/idl.tab.cpp"
+#line 7476 "fe/idl.tab.cpp"
break;
case 409:
-#line 4749 "fe/idl.ypp"
+#line 4753 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpParTypeSeen);
}
-#line 7480 "fe/idl.tab.cpp"
+#line 7484 "fe/idl.tab.cpp"
break;
case 410:
-#line 4753 "fe/idl.ypp"
+#line 4757 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Argument *a = 0;
@@ -7512,67 +7516,67 @@ yyreduce:
delete (yyvsp[0].deval);
(yyvsp[0].deval) = 0;
}
-#line 7516 "fe/idl.tab.cpp"
+#line 7520 "fe/idl.tab.cpp"
break;
case 411:
-#line 4788 "fe/idl.ypp"
+#line 4792 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen);
}
-#line 7524 "fe/idl.tab.cpp"
+#line 7528 "fe/idl.tab.cpp"
break;
case 412:
-#line 4792 "fe/idl.ypp"
+#line 4796 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen);
}
-#line 7532 "fe/idl.tab.cpp"
+#line 7536 "fe/idl.tab.cpp"
break;
case 413:
-#line 4796 "fe/idl.ypp"
+#line 4800 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen);
}
-#line 7540 "fe/idl.tab.cpp"
+#line 7544 "fe/idl.tab.cpp"
break;
case 414:
-#line 4801 "fe/idl.ypp"
+#line 4805 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen);
}
-#line 7548 "fe/idl.tab.cpp"
+#line 7552 "fe/idl.tab.cpp"
break;
case 416:
-#line 4811 "fe/idl.ypp"
+#line 4815 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpParCommaSeen);
}
-#line 7556 "fe/idl.tab.cpp"
+#line 7560 "fe/idl.tab.cpp"
break;
case 419:
-#line 4820 "fe/idl.ypp"
+#line 4824 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpParDirSeen);
}
-#line 7564 "fe/idl.tab.cpp"
+#line 7568 "fe/idl.tab.cpp"
break;
case 420:
-#line 4824 "fe/idl.ypp"
+#line 4828 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpParTypeSeen);
}
-#line 7572 "fe/idl.tab.cpp"
+#line 7576 "fe/idl.tab.cpp"
break;
case 421:
-#line 4828 "fe/idl.ypp"
+#line 4832 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Argument *a = 0;
@@ -7611,22 +7615,22 @@ yyreduce:
delete (yyvsp[0].deval);
(yyvsp[0].deval) = 0;
}
-#line 7615 "fe/idl.tab.cpp"
+#line 7619 "fe/idl.tab.cpp"
break;
case 422:
-#line 4870 "fe/idl.ypp"
+#line 4874 "fe/idl.ypp"
{
(yyval.dcval) =
idl_global->scopes ().bottom ()->lookup_primitive_type (
(yyvsp[0].etval)
);
}
-#line 7626 "fe/idl.tab.cpp"
+#line 7630 "fe/idl.tab.cpp"
break;
case 425:
-#line 4879 "fe/idl.ypp"
+#line 4883 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Decl *d = 0;
@@ -7730,186 +7734,186 @@ yyreduce:
(yyval.dcval) = d;
}
-#line 7734 "fe/idl.tab.cpp"
+#line 7738 "fe/idl.tab.cpp"
break;
case 426:
-#line 4986 "fe/idl.ypp"
+#line 4990 "fe/idl.ypp"
{
(yyval.dival) = AST_Argument::dir_IN;
}
-#line 7742 "fe/idl.tab.cpp"
+#line 7746 "fe/idl.tab.cpp"
break;
case 427:
-#line 4990 "fe/idl.ypp"
+#line 4994 "fe/idl.ypp"
{
(yyval.dival) = AST_Argument::dir_OUT;
}
-#line 7750 "fe/idl.tab.cpp"
+#line 7754 "fe/idl.tab.cpp"
break;
case 428:
-#line 4994 "fe/idl.ypp"
+#line 4998 "fe/idl.ypp"
{
(yyval.dival) = AST_Argument::dir_INOUT;
}
-#line 7758 "fe/idl.tab.cpp"
+#line 7762 "fe/idl.tab.cpp"
break;
case 429:
-#line 5001 "fe/idl.ypp"
+#line 5005 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseSeen);
}
-#line 7766 "fe/idl.tab.cpp"
+#line 7770 "fe/idl.tab.cpp"
break;
case 430:
-#line 5005 "fe/idl.ypp"
+#line 5009 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseSqSeen);
}
-#line 7774 "fe/idl.tab.cpp"
+#line 7778 "fe/idl.tab.cpp"
break;
case 431:
-#line 5010 "fe/idl.ypp"
+#line 5014 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseQsSeen);
(yyval.nlval) = (yyvsp[-1].nlval);
}
-#line 7783 "fe/idl.tab.cpp"
+#line 7787 "fe/idl.tab.cpp"
break;
case 432:
-#line 5015 "fe/idl.ypp"
+#line 5019 "fe/idl.ypp"
{
(yyval.nlval) = 0;
}
-#line 7791 "fe/idl.tab.cpp"
+#line 7795 "fe/idl.tab.cpp"
break;
case 433:
-#line 5022 "fe/idl.ypp"
+#line 5026 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpGetRaiseSeen);
}
-#line 7799 "fe/idl.tab.cpp"
+#line 7803 "fe/idl.tab.cpp"
break;
case 434:
-#line 5026 "fe/idl.ypp"
+#line 5030 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpGetRaiseSqSeen);
}
-#line 7807 "fe/idl.tab.cpp"
+#line 7811 "fe/idl.tab.cpp"
break;
case 435:
-#line 5031 "fe/idl.ypp"
+#line 5035 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpGetRaiseQsSeen);
(yyval.nlval) = (yyvsp[-1].nlval);
}
-#line 7816 "fe/idl.tab.cpp"
+#line 7820 "fe/idl.tab.cpp"
break;
case 436:
-#line 5036 "fe/idl.ypp"
+#line 5040 "fe/idl.ypp"
{
(yyval.nlval) = 0;
}
-#line 7824 "fe/idl.tab.cpp"
+#line 7828 "fe/idl.tab.cpp"
break;
case 437:
-#line 5043 "fe/idl.ypp"
+#line 5047 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpSetRaiseSeen);
}
-#line 7832 "fe/idl.tab.cpp"
+#line 7836 "fe/idl.tab.cpp"
break;
case 438:
-#line 5047 "fe/idl.ypp"
+#line 5051 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpSetRaiseSqSeen);
}
-#line 7840 "fe/idl.tab.cpp"
+#line 7844 "fe/idl.tab.cpp"
break;
case 439:
-#line 5052 "fe/idl.ypp"
+#line 5056 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpSetRaiseQsSeen);
(yyval.nlval) = (yyvsp[-1].nlval);
}
-#line 7849 "fe/idl.tab.cpp"
+#line 7853 "fe/idl.tab.cpp"
break;
case 440:
-#line 5057 "fe/idl.ypp"
+#line 5061 "fe/idl.ypp"
{
(yyval.nlval) = 0;
}
-#line 7857 "fe/idl.tab.cpp"
+#line 7861 "fe/idl.tab.cpp"
break;
case 441:
-#line 5064 "fe/idl.ypp"
+#line 5068 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpContextSeen);
}
-#line 7865 "fe/idl.tab.cpp"
+#line 7869 "fe/idl.tab.cpp"
break;
case 442:
-#line 5068 "fe/idl.ypp"
+#line 5072 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpContextSqSeen);
}
-#line 7873 "fe/idl.tab.cpp"
+#line 7877 "fe/idl.tab.cpp"
break;
case 443:
-#line 5073 "fe/idl.ypp"
+#line 5077 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpContextQsSeen);
(yyval.slval) = (yyvsp[-1].slval);
}
-#line 7882 "fe/idl.tab.cpp"
+#line 7886 "fe/idl.tab.cpp"
break;
case 444:
-#line 5078 "fe/idl.ypp"
+#line 5082 "fe/idl.ypp"
{
(yyval.slval) = 0;
}
-#line 7890 "fe/idl.tab.cpp"
+#line 7894 "fe/idl.tab.cpp"
break;
case 445:
-#line 5085 "fe/idl.ypp"
+#line 5089 "fe/idl.ypp"
{
ACE_NEW_RETURN ((yyval.slval),
UTL_StrList ((yyvsp[-1].sval),
(yyvsp[0].slval)),
1);
}
-#line 7901 "fe/idl.tab.cpp"
+#line 7905 "fe/idl.tab.cpp"
break;
case 446:
-#line 5096 "fe/idl.ypp"
+#line 5100 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpContextCommaSeen);
}
-#line 7909 "fe/idl.tab.cpp"
+#line 7913 "fe/idl.tab.cpp"
break;
case 447:
-#line 5100 "fe/idl.ypp"
+#line 5104 "fe/idl.ypp"
{
UTL_StrList *sl = 0;
ACE_NEW_RETURN (sl,
@@ -7927,19 +7931,19 @@ yyreduce:
(yyval.slval) = (yyvsp[-3].slval);
}
}
-#line 7931 "fe/idl.tab.cpp"
+#line 7935 "fe/idl.tab.cpp"
break;
case 448:
-#line 5118 "fe/idl.ypp"
+#line 5122 "fe/idl.ypp"
{
(yyval.slval) = 0;
}
-#line 7939 "fe/idl.tab.cpp"
+#line 7943 "fe/idl.tab.cpp"
break;
case 449:
-#line 5125 "fe/idl.ypp"
+#line 5129 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Decl *d =
@@ -7966,11 +7970,11 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 7970 "fe/idl.tab.cpp"
+#line 7974 "fe/idl.tab.cpp"
break;
case 450:
-#line 5155 "fe/idl.ypp"
+#line 5159 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Decl *d = ScopeAsDecl (s);
@@ -8006,11 +8010,11 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 8010 "fe/idl.tab.cpp"
+#line 8014 "fe/idl.tab.cpp"
break;
case 453:
-#line 5200 "fe/idl.ypp"
+#line 5204 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval),
@@ -8036,11 +8040,11 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 8040 "fe/idl.tab.cpp"
+#line 8044 "fe/idl.tab.cpp"
break;
case 454:
-#line 5229 "fe/idl.ypp"
+#line 5233 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Component *c = 0;
@@ -8079,27 +8083,27 @@ yyreduce:
*/
idl_global->scopes ().push (c);
}
-#line 8083 "fe/idl.tab.cpp"
+#line 8087 "fe/idl.tab.cpp"
break;
case 455:
-#line 5268 "fe/idl.ypp"
+#line 5272 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ComponentSqSeen);
}
-#line 8091 "fe/idl.tab.cpp"
+#line 8095 "fe/idl.tab.cpp"
break;
case 456:
-#line 5272 "fe/idl.ypp"
+#line 5276 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ComponentBodySeen);
}
-#line 8099 "fe/idl.tab.cpp"
+#line 8103 "fe/idl.tab.cpp"
break;
case 457:
-#line 5276 "fe/idl.ypp"
+#line 5280 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ComponentQsSeen);
@@ -8110,27 +8114,27 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 8114 "fe/idl.tab.cpp"
+#line 8118 "fe/idl.tab.cpp"
break;
case 458:
-#line 5291 "fe/idl.ypp"
+#line 5295 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ComponentIDSeen);
}
-#line 8122 "fe/idl.tab.cpp"
+#line 8126 "fe/idl.tab.cpp"
break;
case 459:
-#line 5295 "fe/idl.ypp"
+#line 5299 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen);
}
-#line 8130 "fe/idl.tab.cpp"
+#line 8134 "fe/idl.tab.cpp"
break;
case 460:
-#line 5299 "fe/idl.ypp"
+#line 5303 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SupportSpecSeen);
@@ -8164,147 +8168,147 @@ yyreduce:
(yyvsp[-2].idlist) = 0;
}
}
-#line 8168 "fe/idl.tab.cpp"
+#line 8172 "fe/idl.tab.cpp"
break;
case 461:
-#line 5336 "fe/idl.ypp"
+#line 5340 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InheritColonSeen);
}
-#line 8176 "fe/idl.tab.cpp"
+#line 8180 "fe/idl.tab.cpp"
break;
case 462:
-#line 5340 "fe/idl.ypp"
+#line 5344 "fe/idl.ypp"
{
(yyval.idlist) = (yyvsp[0].idlist);
}
-#line 8184 "fe/idl.tab.cpp"
+#line 8188 "fe/idl.tab.cpp"
break;
case 463:
-#line 5344 "fe/idl.ypp"
+#line 5348 "fe/idl.ypp"
{
(yyval.idlist) = 0;
}
-#line 8192 "fe/idl.tab.cpp"
+#line 8196 "fe/idl.tab.cpp"
break;
case 466:
-#line 5356 "fe/idl.ypp"
+#line 5360 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ProvidesDeclSeen);
}
-#line 8200 "fe/idl.tab.cpp"
+#line 8204 "fe/idl.tab.cpp"
break;
case 467:
-#line 5360 "fe/idl.ypp"
+#line 5364 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 8208 "fe/idl.tab.cpp"
+#line 8212 "fe/idl.tab.cpp"
break;
case 468:
-#line 5364 "fe/idl.ypp"
+#line 5368 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_UsesDeclSeen);
}
-#line 8216 "fe/idl.tab.cpp"
+#line 8220 "fe/idl.tab.cpp"
break;
case 469:
-#line 5368 "fe/idl.ypp"
+#line 5372 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 8224 "fe/idl.tab.cpp"
+#line 8228 "fe/idl.tab.cpp"
break;
case 470:
-#line 5372 "fe/idl.ypp"
+#line 5376 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EmitsDeclSeen);
}
-#line 8232 "fe/idl.tab.cpp"
+#line 8236 "fe/idl.tab.cpp"
break;
case 471:
-#line 5376 "fe/idl.ypp"
+#line 5380 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 8240 "fe/idl.tab.cpp"
+#line 8244 "fe/idl.tab.cpp"
break;
case 472:
-#line 5380 "fe/idl.ypp"
+#line 5384 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_PublishesDeclSeen);
}
-#line 8248 "fe/idl.tab.cpp"
+#line 8252 "fe/idl.tab.cpp"
break;
case 473:
-#line 5384 "fe/idl.ypp"
+#line 5388 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 8256 "fe/idl.tab.cpp"
+#line 8260 "fe/idl.tab.cpp"
break;
case 474:
-#line 5388 "fe/idl.ypp"
+#line 5392 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ConsumesDeclSeen);
}
-#line 8264 "fe/idl.tab.cpp"
+#line 8268 "fe/idl.tab.cpp"
break;
case 475:
-#line 5392 "fe/idl.ypp"
+#line 5396 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 8272 "fe/idl.tab.cpp"
+#line 8276 "fe/idl.tab.cpp"
break;
case 476:
-#line 5396 "fe/idl.ypp"
+#line 5400 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclSeen);
}
-#line 8280 "fe/idl.tab.cpp"
+#line 8284 "fe/idl.tab.cpp"
break;
case 477:
-#line 5400 "fe/idl.ypp"
+#line 5404 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 8288 "fe/idl.tab.cpp"
+#line 8292 "fe/idl.tab.cpp"
break;
case 478:
-#line 5404 "fe/idl.ypp"
+#line 5408 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ExtendedPortDeclSeen);
}
-#line 8296 "fe/idl.tab.cpp"
+#line 8300 "fe/idl.tab.cpp"
break;
case 479:
-#line 5408 "fe/idl.ypp"
+#line 5412 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 8304 "fe/idl.tab.cpp"
+#line 8308 "fe/idl.tab.cpp"
break;
case 480:
-#line 5414 "fe/idl.ypp"
+#line 5418 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
bool so_far_so_good = true;
@@ -8391,21 +8395,21 @@ yyreduce:
delete (yyvsp[0].idval);
(yyvsp[0].idval) = 0;
}
-#line 8395 "fe/idl.tab.cpp"
+#line 8399 "fe/idl.tab.cpp"
break;
case 481:
-#line 5504 "fe/idl.ypp"
+#line 5508 "fe/idl.ypp"
{
// Lookups and checking are done where the 'interface_type'
// token is used, in 'provides_decl' and 'uses_decl'.
(yyval.idlist) = (yyvsp[0].idlist);
}
-#line 8405 "fe/idl.tab.cpp"
+#line 8409 "fe/idl.tab.cpp"
break;
case 482:
-#line 5510 "fe/idl.ypp"
+#line 5514 "fe/idl.ypp"
{
Identifier *corba_id = 0;
@@ -8428,11 +8432,11 @@ yyreduce:
conc_name),
1);
}
-#line 8432 "fe/idl.tab.cpp"
+#line 8436 "fe/idl.tab.cpp"
break;
case 483:
-#line 5535 "fe/idl.ypp"
+#line 5539 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
bool so_far_so_good = true;
@@ -8535,37 +8539,37 @@ yyreduce:
delete (yyvsp[0].idval);
(yyvsp[0].idval) = 0;
}
-#line 8539 "fe/idl.tab.cpp"
+#line 8543 "fe/idl.tab.cpp"
break;
case 484:
-#line 5641 "fe/idl.ypp"
+#line 5645 "fe/idl.ypp"
{
// We use this extra rule here to use in both uses_decl and
// extended_uses_decl, so the LALR(1) parser can avoid conflicts.
(yyval.bval) = (yyvsp[0].bval);
}
-#line 8549 "fe/idl.tab.cpp"
+#line 8553 "fe/idl.tab.cpp"
break;
case 485:
-#line 5650 "fe/idl.ypp"
+#line 5654 "fe/idl.ypp"
{
(yyval.bval) = true;
}
-#line 8557 "fe/idl.tab.cpp"
+#line 8561 "fe/idl.tab.cpp"
break;
case 486:
-#line 5654 "fe/idl.ypp"
+#line 5658 "fe/idl.ypp"
{
(yyval.bval) = false;
}
-#line 8565 "fe/idl.tab.cpp"
+#line 8569 "fe/idl.tab.cpp"
break;
case 487:
-#line 5660 "fe/idl.ypp"
+#line 5664 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
bool so_far_so_good = true;
@@ -8635,11 +8639,11 @@ yyreduce:
delete (yyvsp[0].idval);
(yyvsp[0].idval) = 0;
}
-#line 8639 "fe/idl.tab.cpp"
+#line 8643 "fe/idl.tab.cpp"
break;
case 488:
-#line 5732 "fe/idl.ypp"
+#line 5736 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
bool so_far_so_good = true;
@@ -8709,11 +8713,11 @@ yyreduce:
delete (yyvsp[0].idval);
(yyvsp[0].idval) = 0;
}
-#line 8713 "fe/idl.tab.cpp"
+#line 8717 "fe/idl.tab.cpp"
break;
case 489:
-#line 5804 "fe/idl.ypp"
+#line 5808 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
bool so_far_so_good = true;
@@ -8783,11 +8787,11 @@ yyreduce:
delete (yyvsp[0].idval);
(yyvsp[0].idval) = 0;
}
-#line 8787 "fe/idl.tab.cpp"
+#line 8791 "fe/idl.tab.cpp"
break;
case 490:
-#line 5877 "fe/idl.ypp"
+#line 5881 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Home *h = 0;
@@ -8824,11 +8828,11 @@ yyreduce:
*/
idl_global->scopes ().push (h);
}
-#line 8828 "fe/idl.tab.cpp"
+#line 8832 "fe/idl.tab.cpp"
break;
case 491:
-#line 5914 "fe/idl.ypp"
+#line 5918 "fe/idl.ypp"
{
/*
* Done with this component - pop it off the scopes stack.
@@ -8837,59 +8841,59 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 8841 "fe/idl.tab.cpp"
+#line 8845 "fe/idl.tab.cpp"
break;
case 492:
-#line 5926 "fe/idl.ypp"
+#line 5930 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_HomeSeen);
}
-#line 8849 "fe/idl.tab.cpp"
+#line 8853 "fe/idl.tab.cpp"
break;
case 493:
-#line 5930 "fe/idl.ypp"
+#line 5934 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_HomeIDSeen);
}
-#line 8857 "fe/idl.tab.cpp"
+#line 8861 "fe/idl.tab.cpp"
break;
case 494:
-#line 5934 "fe/idl.ypp"
+#line 5938 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen);
}
-#line 8865 "fe/idl.tab.cpp"
+#line 8869 "fe/idl.tab.cpp"
break;
case 495:
-#line 5938 "fe/idl.ypp"
+#line 5942 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SupportSpecSeen);
}
-#line 8873 "fe/idl.tab.cpp"
+#line 8877 "fe/idl.tab.cpp"
break;
case 496:
-#line 5942 "fe/idl.ypp"
+#line 5946 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ManagesSeen);
}
-#line 8881 "fe/idl.tab.cpp"
+#line 8885 "fe/idl.tab.cpp"
break;
case 497:
-#line 5946 "fe/idl.ypp"
+#line 5950 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ManagesIDSeen);
}
-#line 8889 "fe/idl.tab.cpp"
+#line 8893 "fe/idl.tab.cpp"
break;
case 498:
-#line 5950 "fe/idl.ypp"
+#line 5954 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_PrimaryKeySpecSeen);
@@ -8935,107 +8939,107 @@ yyreduce:
(yyvsp[-6].nlval) = 0;
}
}
-#line 8939 "fe/idl.tab.cpp"
+#line 8943 "fe/idl.tab.cpp"
break;
case 499:
-#line 5999 "fe/idl.ypp"
+#line 6003 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InheritColonSeen);
}
-#line 8947 "fe/idl.tab.cpp"
+#line 8951 "fe/idl.tab.cpp"
break;
case 500:
-#line 6003 "fe/idl.ypp"
+#line 6007 "fe/idl.ypp"
{
(yyval.idlist) = (yyvsp[0].idlist);
}
-#line 8955 "fe/idl.tab.cpp"
+#line 8959 "fe/idl.tab.cpp"
break;
case 501:
-#line 6007 "fe/idl.ypp"
+#line 6011 "fe/idl.ypp"
{
(yyval.idlist) = 0;
}
-#line 8963 "fe/idl.tab.cpp"
+#line 8967 "fe/idl.tab.cpp"
break;
case 502:
-#line 6015 "fe/idl.ypp"
+#line 6019 "fe/idl.ypp"
{
(yyval.idlist) = (yyvsp[0].idlist);
}
-#line 8971 "fe/idl.tab.cpp"
+#line 8975 "fe/idl.tab.cpp"
break;
case 503:
-#line 6019 "fe/idl.ypp"
+#line 6023 "fe/idl.ypp"
{
(yyval.idlist) = 0;
}
-#line 8979 "fe/idl.tab.cpp"
+#line 8983 "fe/idl.tab.cpp"
break;
case 504:
-#line 6026 "fe/idl.ypp"
+#line 6030 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_HomeSqSeen);
}
-#line 8987 "fe/idl.tab.cpp"
+#line 8991 "fe/idl.tab.cpp"
break;
case 505:
-#line 6030 "fe/idl.ypp"
+#line 6034 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_HomeBodySeen);
}
-#line 8995 "fe/idl.tab.cpp"
+#line 8999 "fe/idl.tab.cpp"
break;
case 506:
-#line 6034 "fe/idl.ypp"
+#line 6038 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_HomeQsSeen);
}
-#line 9003 "fe/idl.tab.cpp"
+#line 9007 "fe/idl.tab.cpp"
break;
case 510:
-#line 6047 "fe/idl.ypp"
+#line 6051 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_FactoryDeclSeen);
}
-#line 9011 "fe/idl.tab.cpp"
+#line 9015 "fe/idl.tab.cpp"
break;
case 511:
-#line 6051 "fe/idl.ypp"
+#line 6055 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 9019 "fe/idl.tab.cpp"
+#line 9023 "fe/idl.tab.cpp"
break;
case 512:
-#line 6055 "fe/idl.ypp"
+#line 6059 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_FinderDeclSeen);
}
-#line 9027 "fe/idl.tab.cpp"
+#line 9031 "fe/idl.tab.cpp"
break;
case 513:
-#line 6059 "fe/idl.ypp"
+#line 6063 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 9035 "fe/idl.tab.cpp"
+#line 9039 "fe/idl.tab.cpp"
break;
case 514:
-#line 6067 "fe/idl.ypp"
+#line 6071 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval),
@@ -9058,19 +9062,19 @@ yyreduce:
*/
idl_global->scopes ().push (f);
}
-#line 9062 "fe/idl.tab.cpp"
+#line 9066 "fe/idl.tab.cpp"
break;
case 515:
-#line 6090 "fe/idl.ypp"
+#line 6094 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpParsCompleted);
}
-#line 9070 "fe/idl.tab.cpp"
+#line 9074 "fe/idl.tab.cpp"
break;
case 516:
-#line 6094 "fe/idl.ypp"
+#line 6098 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseCompleted);
@@ -9088,11 +9092,11 @@ yyreduce:
*/
idl_global->scopes ().pop ();
}
-#line 9092 "fe/idl.tab.cpp"
+#line 9096 "fe/idl.tab.cpp"
break;
case 517:
-#line 6116 "fe/idl.ypp"
+#line 6120 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval),
@@ -9119,19 +9123,19 @@ yyreduce:
*/
idl_global->scopes ().push (f);
}
-#line 9123 "fe/idl.tab.cpp"
+#line 9127 "fe/idl.tab.cpp"
break;
case 518:
-#line 6143 "fe/idl.ypp"
+#line 6147 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpParsCompleted);
}
-#line 9131 "fe/idl.tab.cpp"
+#line 9135 "fe/idl.tab.cpp"
break;
case 519:
-#line 6147 "fe/idl.ypp"
+#line 6151 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseCompleted);
@@ -9149,11 +9153,11 @@ yyreduce:
*/
idl_global->scopes ().pop ();
}
-#line 9153 "fe/idl.tab.cpp"
+#line 9157 "fe/idl.tab.cpp"
break;
case 525:
-#line 6180 "fe/idl.ypp"
+#line 6184 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval),
@@ -9178,11 +9182,11 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 9182 "fe/idl.tab.cpp"
+#line 9186 "fe/idl.tab.cpp"
break;
case 526:
-#line 6210 "fe/idl.ypp"
+#line 6214 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n ((yyvsp[0].idval),
@@ -9207,11 +9211,11 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 9211 "fe/idl.tab.cpp"
+#line 9215 "fe/idl.tab.cpp"
break;
case 527:
-#line 6239 "fe/idl.ypp"
+#line 6243 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_EventType *e = 0;
@@ -9255,27 +9259,27 @@ yyreduce:
delete (yyvsp[-1].idval);
(yyvsp[-1].idval) = 0;
}
-#line 9259 "fe/idl.tab.cpp"
+#line 9263 "fe/idl.tab.cpp"
break;
case 528:
-#line 6283 "fe/idl.ypp"
+#line 6287 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeSqSeen);
}
-#line 9267 "fe/idl.tab.cpp"
+#line 9271 "fe/idl.tab.cpp"
break;
case 529:
-#line 6287 "fe/idl.ypp"
+#line 6291 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeBodySeen);
}
-#line 9275 "fe/idl.tab.cpp"
+#line 9279 "fe/idl.tab.cpp"
break;
case 530:
-#line 6291 "fe/idl.ypp"
+#line 6295 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeQsSeen);
@@ -9286,19 +9290,19 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 9290 "fe/idl.tab.cpp"
+#line 9294 "fe/idl.tab.cpp"
break;
case 531:
-#line 6307 "fe/idl.ypp"
+#line 6311 "fe/idl.ypp"
{
(yyval.idval) = (yyvsp[0].idval);
}
-#line 9298 "fe/idl.tab.cpp"
+#line 9302 "fe/idl.tab.cpp"
break;
case 532:
-#line 6316 "fe/idl.ypp"
+#line 6320 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeIDSeen);
@@ -9311,29 +9315,29 @@ yyreduce:
ACE_TEXT (" custom yet\n")));
(yyval.idval) = 0;
}
-#line 9315 "fe/idl.tab.cpp"
+#line 9319 "fe/idl.tab.cpp"
break;
case 533:
-#line 6333 "fe/idl.ypp"
+#line 6337 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeIDSeen);
(yyval.idval) = (yyvsp[0].idval);
}
-#line 9325 "fe/idl.tab.cpp"
+#line 9329 "fe/idl.tab.cpp"
break;
case 534:
-#line 6342 "fe/idl.ypp"
+#line 6346 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen);
}
-#line 9333 "fe/idl.tab.cpp"
+#line 9337 "fe/idl.tab.cpp"
break;
case 535:
-#line 6346 "fe/idl.ypp"
+#line 6350 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_SupportSpecSeen);
@@ -9362,11 +9366,11 @@ yyreduce:
(yyvsp[-2].nlval) = 0;
}
}
-#line 9366 "fe/idl.tab.cpp"
+#line 9370 "fe/idl.tab.cpp"
break;
case 536:
-#line 6379 "fe/idl.ypp"
+#line 6383 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_EventType *e = 0;
@@ -9415,27 +9419,27 @@ yyreduce:
*/
idl_global->scopes ().push (e);
}
-#line 9419 "fe/idl.tab.cpp"
+#line 9423 "fe/idl.tab.cpp"
break;
case 537:
-#line 6428 "fe/idl.ypp"
+#line 6432 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeSqSeen);
}
-#line 9427 "fe/idl.tab.cpp"
+#line 9431 "fe/idl.tab.cpp"
break;
case 538:
-#line 6432 "fe/idl.ypp"
+#line 6436 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeBodySeen);
}
-#line 9435 "fe/idl.tab.cpp"
+#line 9439 "fe/idl.tab.cpp"
break;
case 539:
-#line 6436 "fe/idl.ypp"
+#line 6440 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeQsSeen);
@@ -9446,108 +9450,108 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 9450 "fe/idl.tab.cpp"
+#line 9454 "fe/idl.tab.cpp"
break;
case 540:
-#line 6450 "fe/idl.ypp"
+#line 6454 "fe/idl.ypp"
{
(yyval.idval) = (yyvsp[0].idval);
}
-#line 9458 "fe/idl.tab.cpp"
+#line 9462 "fe/idl.tab.cpp"
break;
case 541:
-#line 6454 "fe/idl.ypp"
+#line 6458 "fe/idl.ypp"
{
(yyval.idval) = (yyvsp[0].idval);
}
-#line 9466 "fe/idl.tab.cpp"
+#line 9470 "fe/idl.tab.cpp"
break;
case 542:
-#line 6461 "fe/idl.ypp"
+#line 6465 "fe/idl.ypp"
{
(yyval.ntval) = AST_Decl::NT_type;
}
-#line 9474 "fe/idl.tab.cpp"
+#line 9478 "fe/idl.tab.cpp"
break;
case 543:
-#line 6465 "fe/idl.ypp"
+#line 6469 "fe/idl.ypp"
{
(yyval.ntval) = AST_Decl::NT_struct;
}
-#line 9482 "fe/idl.tab.cpp"
+#line 9486 "fe/idl.tab.cpp"
break;
case 544:
-#line 6469 "fe/idl.ypp"
+#line 6473 "fe/idl.ypp"
{
(yyval.ntval) = AST_Decl::NT_union;
}
-#line 9490 "fe/idl.tab.cpp"
+#line 9494 "fe/idl.tab.cpp"
break;
case 545:
-#line 6473 "fe/idl.ypp"
+#line 6477 "fe/idl.ypp"
{
(yyval.ntval) = AST_Decl::NT_eventtype;
}
-#line 9498 "fe/idl.tab.cpp"
+#line 9502 "fe/idl.tab.cpp"
break;
case 546:
-#line 6477 "fe/idl.ypp"
+#line 6481 "fe/idl.ypp"
{
(yyval.ntval) = AST_Decl::NT_sequence;
}
-#line 9506 "fe/idl.tab.cpp"
+#line 9510 "fe/idl.tab.cpp"
break;
case 547:
-#line 6481 "fe/idl.ypp"
+#line 6485 "fe/idl.ypp"
{
(yyval.ntval) = AST_Decl::NT_interface;
}
-#line 9514 "fe/idl.tab.cpp"
+#line 9518 "fe/idl.tab.cpp"
break;
case 548:
-#line 6485 "fe/idl.ypp"
+#line 6489 "fe/idl.ypp"
{
(yyval.ntval) = AST_Decl::NT_valuetype;
}
-#line 9522 "fe/idl.tab.cpp"
+#line 9526 "fe/idl.tab.cpp"
break;
case 549:
-#line 6489 "fe/idl.ypp"
+#line 6493 "fe/idl.ypp"
{
(yyval.ntval) = AST_Decl::NT_enum;
}
-#line 9530 "fe/idl.tab.cpp"
+#line 9534 "fe/idl.tab.cpp"
break;
case 550:
-#line 6493 "fe/idl.ypp"
+#line 6497 "fe/idl.ypp"
{
(yyval.ntval) = AST_Decl::NT_except;
}
-#line 9538 "fe/idl.tab.cpp"
+#line 9542 "fe/idl.tab.cpp"
break;
case 551:
-#line 6497 "fe/idl.ypp"
+#line 6501 "fe/idl.ypp"
{
(yyval.ntval) = AST_Decl::NT_const;
t_param_const_type = (yyvsp[0].etval);
}
-#line 9547 "fe/idl.tab.cpp"
+#line 9551 "fe/idl.tab.cpp"
break;
case 552:
-#line 6505 "fe/idl.ypp"
+#line 6509 "fe/idl.ypp"
{
if ((yyvsp[0].plval) == 0)
{
@@ -9575,11 +9579,11 @@ yyreduce:
(yyval.plval) = (yyvsp[0].plval);
}
-#line 9579 "fe/idl.tab.cpp"
+#line 9583 "fe/idl.tab.cpp"
break;
case 553:
-#line 6536 "fe/idl.ypp"
+#line 6540 "fe/idl.ypp"
{
if ((yyvsp[-2].plval) == 0)
{
@@ -9592,19 +9596,19 @@ yyreduce:
delete (yyvsp[0].pival);
(yyvsp[0].pival) = 0;
}
-#line 9596 "fe/idl.tab.cpp"
+#line 9600 "fe/idl.tab.cpp"
break;
case 554:
-#line 6549 "fe/idl.ypp"
+#line 6553 "fe/idl.ypp"
{
(yyval.plval) = 0;
}
-#line 9604 "fe/idl.tab.cpp"
+#line 9608 "fe/idl.tab.cpp"
break;
case 555:
-#line 6556 "fe/idl.ypp"
+#line 6560 "fe/idl.ypp"
{
ACE_NEW_RETURN ((yyval.pival),
@@ -9629,11 +9633,11 @@ yyreduce:
tao_enum_constant_decl = 0;
}
}
-#line 9633 "fe/idl.tab.cpp"
+#line 9637 "fe/idl.tab.cpp"
break;
case 556:
-#line 6581 "fe/idl.ypp"
+#line 6585 "fe/idl.ypp"
{
ACE_NEW_RETURN ((yyval.pival),
FE_Utils::T_Param_Info,
@@ -9648,19 +9652,19 @@ yyreduce:
ACE::strdelete ((yyvsp[0].strval));
(yyvsp[0].strval) = 0;
}
-#line 9652 "fe/idl.tab.cpp"
+#line 9656 "fe/idl.tab.cpp"
break;
case 557:
-#line 6599 "fe/idl.ypp"
+#line 6603 "fe/idl.ypp"
{
ACE_NEW_RETURN ((yyval.slval), UTL_StrList ((yyvsp[-1].sval), (yyvsp[0].slval)), 1);
}
-#line 9660 "fe/idl.tab.cpp"
+#line 9664 "fe/idl.tab.cpp"
break;
case 558:
-#line 6606 "fe/idl.ypp"
+#line 6610 "fe/idl.ypp"
{
UTL_StrList *sl = 0;
ACE_NEW_RETURN (sl, UTL_StrList ((yyvsp[0].sval), 0), 1);
@@ -9675,37 +9679,37 @@ yyreduce:
(yyval.slval) = (yyvsp[-2].slval);
}
}
-#line 9679 "fe/idl.tab.cpp"
+#line 9683 "fe/idl.tab.cpp"
break;
case 559:
-#line 6621 "fe/idl.ypp"
+#line 6625 "fe/idl.ypp"
{
(yyval.slval) = 0;
}
-#line 9687 "fe/idl.tab.cpp"
+#line 9691 "fe/idl.tab.cpp"
break;
case 560:
-#line 6628 "fe/idl.ypp"
+#line 6632 "fe/idl.ypp"
{
ACE_NEW_RETURN ((yyval.sval),
UTL_String ((yyvsp[0].strval), true),
1);
}
-#line 9697 "fe/idl.tab.cpp"
+#line 9701 "fe/idl.tab.cpp"
break;
case 561:
-#line 6637 "fe/idl.ypp"
+#line 6641 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeSeen);
}
-#line 9705 "fe/idl.tab.cpp"
+#line 9709 "fe/idl.tab.cpp"
break;
case 562:
-#line 6641 "fe/idl.ypp"
+#line 6645 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeIDSeen);
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -9725,27 +9729,27 @@ yyreduce:
delete (yyvsp[-1].annotations_val);
}
-#line 9729 "fe/idl.tab.cpp"
+#line 9733 "fe/idl.tab.cpp"
break;
case 563:
-#line 6661 "fe/idl.ypp"
+#line 6665 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeSqSeen);
}
-#line 9737 "fe/idl.tab.cpp"
+#line 9741 "fe/idl.tab.cpp"
break;
case 564:
-#line 6665 "fe/idl.ypp"
+#line 6669 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeBodySeen);
}
-#line 9745 "fe/idl.tab.cpp"
+#line 9749 "fe/idl.tab.cpp"
break;
case 565:
-#line 6669 "fe/idl.ypp"
+#line 6673 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeQsSeen);
@@ -9754,75 +9758,75 @@ yyreduce:
(yyval.dcval) = 0;
}
-#line 9758 "fe/idl.tab.cpp"
+#line 9762 "fe/idl.tab.cpp"
break;
case 566:
-#line 6681 "fe/idl.ypp"
+#line 6685 "fe/idl.ypp"
{
}
-#line 9765 "fe/idl.tab.cpp"
+#line 9769 "fe/idl.tab.cpp"
break;
case 567:
-#line 6687 "fe/idl.ypp"
+#line 6691 "fe/idl.ypp"
{
}
-#line 9772 "fe/idl.tab.cpp"
+#line 9776 "fe/idl.tab.cpp"
break;
case 568:
-#line 6690 "fe/idl.ypp"
+#line 6694 "fe/idl.ypp"
{
}
-#line 9779 "fe/idl.tab.cpp"
+#line 9783 "fe/idl.tab.cpp"
break;
case 569:
-#line 6696 "fe/idl.ypp"
+#line 6700 "fe/idl.ypp"
{
}
-#line 9786 "fe/idl.tab.cpp"
+#line 9790 "fe/idl.tab.cpp"
break;
case 570:
-#line 6699 "fe/idl.ypp"
+#line 6703 "fe/idl.ypp"
{
}
-#line 9793 "fe/idl.tab.cpp"
+#line 9797 "fe/idl.tab.cpp"
break;
case 571:
-#line 6702 "fe/idl.ypp"
+#line 6706 "fe/idl.ypp"
{
}
-#line 9800 "fe/idl.tab.cpp"
+#line 9804 "fe/idl.tab.cpp"
break;
case 572:
-#line 6705 "fe/idl.ypp"
+#line 6709 "fe/idl.ypp"
{
}
-#line 9807 "fe/idl.tab.cpp"
+#line 9811 "fe/idl.tab.cpp"
break;
case 573:
-#line 6708 "fe/idl.ypp"
+#line 6712 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclSeen);
}
-#line 9815 "fe/idl.tab.cpp"
+#line 9819 "fe/idl.tab.cpp"
break;
case 574:
-#line 6712 "fe/idl.ypp"
+#line 6716 "fe/idl.ypp"
{
}
-#line 9822 "fe/idl.tab.cpp"
+#line 9826 "fe/idl.tab.cpp"
break;
case 575:
-#line 6718 "fe/idl.ypp"
+#line 6722 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ExtendedPortDeclSeen);
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -9891,11 +9895,11 @@ yyreduce:
delete (yyvsp[-1].idlist);
(yyvsp[-1].idlist) = 0;
}
-#line 9895 "fe/idl.tab.cpp"
+#line 9899 "fe/idl.tab.cpp"
break;
case 576:
-#line 6787 "fe/idl.ypp"
+#line 6791 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_MirrorPortDeclSeen);
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -9942,11 +9946,11 @@ yyreduce:
delete (yyvsp[-1].idlist);
(yyvsp[-1].idlist) = 0;
}
-#line 9946 "fe/idl.tab.cpp"
+#line 9950 "fe/idl.tab.cpp"
break;
case 577:
-#line 6837 "fe/idl.ypp"
+#line 6841 "fe/idl.ypp"
{
if ((yyvsp[0].alval) == 0)
{
@@ -9959,11 +9963,11 @@ yyreduce:
(yyvsp[0].alval)->enqueue_head ((yyvsp[-1].dcval));
(yyval.alval) = (yyvsp[0].alval);
}
-#line 9963 "fe/idl.tab.cpp"
+#line 9967 "fe/idl.tab.cpp"
break;
case 578:
-#line 6853 "fe/idl.ypp"
+#line 6857 "fe/idl.ypp"
{
if ((yyvsp[-3].alval) == 0)
{
@@ -9976,19 +9980,19 @@ yyreduce:
(yyvsp[-3].alval)->enqueue_tail ((yyvsp[0].dcval));
(yyval.alval) = (yyvsp[-3].alval);
}
-#line 9980 "fe/idl.tab.cpp"
+#line 9984 "fe/idl.tab.cpp"
break;
case 579:
-#line 6866 "fe/idl.ypp"
+#line 6870 "fe/idl.ypp"
{
(yyval.alval) = 0;
}
-#line 9988 "fe/idl.tab.cpp"
+#line 9992 "fe/idl.tab.cpp"
break;
case 580:
-#line 6873 "fe/idl.ypp"
+#line 6877 "fe/idl.ypp"
{
// To avoid grammar conflicts with this LALR(1) parser,
// we take advantage of the fact that an expression can
@@ -10044,35 +10048,35 @@ yyreduce:
0);
}
}
-#line 10048 "fe/idl.tab.cpp"
+#line 10052 "fe/idl.tab.cpp"
break;
case 581:
-#line 6932 "fe/idl.ypp"
+#line 6936 "fe/idl.ypp"
{
(yyval.dcval) = 0;
}
-#line 10056 "fe/idl.tab.cpp"
+#line 10060 "fe/idl.tab.cpp"
break;
case 582:
-#line 6939 "fe/idl.ypp"
+#line 6943 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorSeen);
}
-#line 10064 "fe/idl.tab.cpp"
+#line 10068 "fe/idl.tab.cpp"
break;
case 583:
-#line 6943 "fe/idl.ypp"
+#line 6947 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorIDSeen);
}
-#line 10072 "fe/idl.tab.cpp"
+#line 10076 "fe/idl.tab.cpp"
break;
case 584:
-#line 6947 "fe/idl.ypp"
+#line 6951 "fe/idl.ypp"
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
AST_Connector *parent = 0;
@@ -10126,102 +10130,102 @@ yyreduce:
delete (yyvsp[-3].annotations_val);
}
-#line 10130 "fe/idl.tab.cpp"
+#line 10134 "fe/idl.tab.cpp"
break;
case 585:
-#line 7004 "fe/idl.ypp"
+#line 7008 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorSqSeen);
}
-#line 10138 "fe/idl.tab.cpp"
+#line 10142 "fe/idl.tab.cpp"
break;
case 586:
-#line 7008 "fe/idl.ypp"
+#line 7012 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorBodySeen);
}
-#line 10146 "fe/idl.tab.cpp"
+#line 10150 "fe/idl.tab.cpp"
break;
case 587:
-#line 7012 "fe/idl.ypp"
+#line 7016 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorQsSeen);
// Done with this connector - pop it off the scope stack.
idl_global->scopes ().pop ();
}
-#line 10157 "fe/idl.tab.cpp"
+#line 10161 "fe/idl.tab.cpp"
break;
case 590:
-#line 7027 "fe/idl.ypp"
+#line 7031 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ProvidesDeclSeen);
}
-#line 10165 "fe/idl.tab.cpp"
+#line 10169 "fe/idl.tab.cpp"
break;
case 591:
-#line 7031 "fe/idl.ypp"
+#line 7035 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 10173 "fe/idl.tab.cpp"
+#line 10177 "fe/idl.tab.cpp"
break;
case 592:
-#line 7035 "fe/idl.ypp"
+#line 7039 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_UsesDeclSeen);
}
-#line 10181 "fe/idl.tab.cpp"
+#line 10185 "fe/idl.tab.cpp"
break;
case 593:
-#line 7039 "fe/idl.ypp"
+#line 7043 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 10189 "fe/idl.tab.cpp"
+#line 10193 "fe/idl.tab.cpp"
break;
case 594:
-#line 7043 "fe/idl.ypp"
+#line 7047 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclSeen);
}
-#line 10197 "fe/idl.tab.cpp"
+#line 10201 "fe/idl.tab.cpp"
break;
case 595:
-#line 7047 "fe/idl.ypp"
+#line 7051 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 10205 "fe/idl.tab.cpp"
+#line 10209 "fe/idl.tab.cpp"
break;
case 596:
-#line 7051 "fe/idl.ypp"
+#line 7055 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_ExtendedPortDeclSeen);
}
-#line 10213 "fe/idl.tab.cpp"
+#line 10217 "fe/idl.tab.cpp"
break;
case 597:
-#line 7055 "fe/idl.ypp"
+#line 7059 "fe/idl.ypp"
{
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
}
-#line 10221 "fe/idl.tab.cpp"
+#line 10225 "fe/idl.tab.cpp"
break;
-#line 10225 "fe/idl.tab.cpp"
+#line 10229 "fe/idl.tab.cpp"
default: break;
}
@@ -10453,7 +10457,7 @@ yyreturn:
#endif
return yyresult;
}
-#line 7060 "fe/idl.ypp"
+#line 7064 "fe/idl.ypp"
/* programs */
diff --git a/TAO/TAO_IDL/fe/idl.tab.hpp b/TAO/TAO_IDL/fe/idl.tab.hpp
index b8d00042328..df7d731752f 100644
--- a/TAO/TAO_IDL/fe/idl.tab.hpp
+++ b/TAO/TAO_IDL/fe/idl.tab.hpp
@@ -141,7 +141,7 @@ extern int tao_yydebug;
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
union YYSTYPE
{
-#line 158 "fe/idl.ypp"
+#line 162 "fe/idl.ypp"
AST_Decl *dcval; /* Decl value */
UTL_StrList *slval; /* String list */
diff --git a/TAO/TAO_IDL/fe/idl.ypp b/TAO/TAO_IDL/fe/idl.ypp
index efb6e29c93a..478d2668d3f 100644
--- a/TAO/TAO_IDL/fe/idl.ypp
+++ b/TAO/TAO_IDL/fe/idl.ypp
@@ -141,11 +141,15 @@ extern "C" int tao_yywrap();
void tao_yyerror (const char *);
int tao_yylex (void);
extern "C" int tao_yywrap (void);
+
extern char tao_yytext[];
extern int tao_yyleng;
+
AST_Enum *tao_enum_constant_decl = 0;
AST_String *tao_string_decl = 0;
AST_Expression::ExprType t_param_const_type = AST_Expression::EV_none;
+bool stack_based_lookup_for_primary_expr = false;
+
#define TAO_YYDEBUG_LEXER_TEXT (tao_yytext[tao_yyleng] = '\0', tao_yytext)
// Compile Optional Tracing Output for Parser, can be enabled with --bison-trace
#define YYDEBUG 1
@@ -1316,9 +1320,8 @@ supports_spec :
{
$$ = $2;
}
- | %empty
+ | %empty
{
-/* | EMPTY */
$$ = 0;
}
;
@@ -2111,25 +2114,27 @@ unary_expr
primary_expr
: scoped_name
{
+ UTL_ScopedName *name = $1;
+
/*
* An expression which is a scoped name is not resolved now,
* but only when it is evaluated (such as when it is assigned
* as a constant value).
*/
AST_Expression *expr = 0;
- UTL_Scope *s = idl_global->scopes ().top_non_null ();
- AST_Decl *d =
- s->lookup_by_name ($1);
- if (d == 0)
+ AST_Decl *node = stack_based_lookup_for_primary_expr ?
+ idl_global->scopes ().lookup_by_name (name) :
+ idl_global->scopes ().top_non_null ()->lookup_by_name (name);
+ if (!node)
{
if (!idl_global->ignore_lookup_errors_)
{
- idl_global->err ()->lookup_error ($1);
+ idl_global->err ()->lookup_error (name);
return 1;
}
}
- else if (d->node_type () == AST_Decl::NT_const)
+ else if (node->node_type () == AST_Decl::NT_const)
{
/*
* If the scoped name is an IDL constant, it
@@ -2140,9 +2145,7 @@ primary_expr
* expression created here so we can check
* them later.
*/
- AST_Constant *c =
- AST_Constant::narrow_from_decl (d);
-
+ AST_Constant *c = dynamic_cast<AST_Constant *> (node);
expr = idl_global->gen ()->create_expr (
c->constant_value (),
c->et ());
@@ -2153,19 +2156,18 @@ primary_expr
// passed in this constructor, so we copy it
// and destroy it below no matter which case
// is followed.
- expr = idl_global->gen ()->create_expr (
- $1->copy ());
- if (d->node_type () == AST_Decl::NT_enum_val)
+ expr = idl_global->gen ()->create_expr (name->copy ());
+ if (node->node_type () == AST_Decl::NT_enum_val)
{
- AST_EnumVal *enumval = AST_EnumVal::narrow_from_decl (d);
- expr->enum_parent (enumval->enum_parent ());
+ expr->enum_parent (
+ dynamic_cast<AST_EnumVal *> (node)->enum_parent ());
}
}
$<exval>$ = expr;
- $1->destroy ();
- delete $1;
- $1 = 0;
+ name->destroy ();
+ delete name;
+ $1 = name = 0;
}
| literal
| '(' const_expr ')'
@@ -2495,11 +2497,14 @@ annotation_appl
idl_global->ignore_lookup_errors_ = true;
}
+ stack_based_lookup_for_primary_expr = true;
+
$<annotation_decl_val>$ = decl;
}
annotation_appl_params_maybe
{
idl_global->ignore_lookup_errors_ = false;
+ stack_based_lookup_for_primary_expr = false;
AST_Annotation_Appl *appl = 0;
UTL_ScopedName *name = $2;
AST_Annotation_Decl *decl = $<annotation_decl_val>3;
@@ -2649,6 +2654,9 @@ type_declarator :
}
at_least_one_declarator
{
+ AST_Decl *type_spec = $1;
+ UTL_DeclList *decls = $3;
+
UTL_Scope *s = idl_global->scopes ().top_non_null ();
FE_Declarator *d = 0;
AST_Typedef *t = 0;
@@ -2659,21 +2667,17 @@ type_declarator :
* Create a list of type renamings. Add them to the
* enclosing scope
*/
- if (s != 0 && $1 != 0 && $3 != 0)
+ if (s && type_spec && decls)
{
- for (UTL_DecllistActiveIterator l ($3);
- !l.is_done ();
- l.next ())
+ for (UTL_DecllistActiveIterator l (decls); !l.is_done (); l.next ())
{
d = l.item ();
-
if (d == 0)
{
continue;
}
- AST_Type * tp = d->compose ($1);
-
+ AST_Type *tp = d->compose (type_spec);
if (tp == 0)
{
continue;
@@ -2705,9 +2709,9 @@ type_declarator :
}
// This FE_Declarator class isn't destroyed with the AST.
- $3->destroy ();
- delete $3;
- $3 = 0;
+ decls->destroy ();
+ delete decls;
+ $3 = decls = 0;
}
$$ = t;
diff --git a/TAO/TAO_IDL/fe/lookup_starter.txt b/TAO/TAO_IDL/fe/lookup_starter.txt
deleted file mode 100644
index 8d8d9019c0d..00000000000
--- a/TAO/TAO_IDL/fe/lookup_starter.txt
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "fe_private.h"
-#include "ace/OS_NS_string.h"
-
diff --git a/TAO/TAO_IDL/fe/post_gperf.sed b/TAO/TAO_IDL/fe/post_gperf.sed
index fab57954503..ca1feac53d8 100644
--- a/TAO/TAO_IDL/fe/post_gperf.sed
+++ b/TAO/TAO_IDL/fe/post_gperf.sed
@@ -1,2 +1,6 @@
+1i\
+#include "fe_private.h"\
+#include "ace/OS_NS_string.h"\
+
s/,}/,0}/g
s/\*str == \*s && !ACE_OS::strncmp/len == static_cast<unsigned int> (ACE_OS::strlen (s)) \&\& *str == *s \&\& !ACE_OS::strncmp/g
diff --git a/TAO/TAO_IDL/include/ast_field.h b/TAO/TAO_IDL/include/ast_field.h
index 0eb2d152125..03adc8d793d 100644
--- a/TAO/TAO_IDL/include/ast_field.h
+++ b/TAO/TAO_IDL/include/ast_field.h
@@ -102,7 +102,7 @@ public:
/**
* A sort of copy constructor that creates a copy of the AST_Field for a new
* scope.
- * The new name must be calculated before hand.
+ * The new name must be calculated beforehand.
* This was created for Annotation Instances and Extended Structs.
*/
AST_Field (
diff --git a/TAO/TAO_IDL/include/ast_interface_fwd.h b/TAO/TAO_IDL/include/ast_interface_fwd.h
index 9d2968181f6..34a4ff22828 100644
--- a/TAO/TAO_IDL/include/ast_interface_fwd.h
+++ b/TAO/TAO_IDL/include/ast_interface_fwd.h
@@ -80,10 +80,23 @@ public:
virtual ~AST_InterfaceFwd (void);
AST_Interface *full_definition (void);
+
+ /**
+ * Sets the full definition. If there is an existing dummy definition, it
+ * deletes that first. Ownership of the new definition is NOT assumed.
+ */
void set_full_definition (AST_Interface *nfd);
virtual bool is_defined (void);
- void set_as_defined (void);
+ void set_as_defined ();
+
+ /**
+ * Do not assume memory ownership of the full definition anymore.
+ *
+ * For example, this should be used if the dummy definition was made real and
+ * added to a scope, which always assumes ownership of nodes.
+ */
+ void disown_full_definition ();
virtual bool is_local (void);
virtual bool is_valuetype (void);
@@ -120,6 +133,9 @@ private:
bool is_defined_;
// Checking the member above isn't good enough.
+
+ /// True if we own pd_full_definition, which would be true if it's a dummy.
+ bool has_ownership_;
};
#endif // _AST_INTERFACE_FWD_AST_INTERFACE_FWD_HH
diff --git a/TAO/TAO_IDL/include/utl_scope_T.cpp b/TAO/TAO_IDL/include/utl_scope_T.cpp
index 905ed44ff58..4a54a47479b 100644
--- a/TAO/TAO_IDL/include/utl_scope_T.cpp
+++ b/TAO/TAO_IDL/include/utl_scope_T.cpp
@@ -20,7 +20,6 @@ UTL_Scope::fe_add_full_intf_decl (DECL *t)
}
AST_Decl *predef = 0;
- DECL *fwd = 0;
// Already defined?
if ((predef = this->lookup_for_add (t)) != 0)
@@ -28,8 +27,7 @@ UTL_Scope::fe_add_full_intf_decl (DECL *t)
// Treat fwd declared interfaces specially
if (predef->node_type () == DECL::NT)
{
- fwd = DECL::narrow_from_decl (predef);
-
+ DECL *fwd = dynamic_cast<DECL *> (predef);
if (fwd == 0)
{
return 0;
@@ -95,10 +93,10 @@ UTL_Scope::fe_add_full_intf_decl (DECL *t)
// since fwd declared structs and unions must be defined in
// the same translation unit.
AST_InterfaceFwd *fd = t->fwd_decl ();
-
if (0 != fd)
{
fd->set_as_defined ();
+ fd->disown_full_definition (); // This scope assumes ownership
}
// Add it to set of locally referenced symbols
@@ -127,8 +125,7 @@ UTL_Scope::fe_add_fwd_intf_decl (typename FULL_DECL::FWD_TYPE *t)
// value, but the result is what we want.
if (nt == FULL_DECL::NT)
{
- FULL_DECL *itf = FULL_DECL::narrow_from_decl (d);
-
+ FULL_DECL *itf = dynamic_cast<FULL_DECL *> (d);
if (itf == 0)
{
return 0;
@@ -140,23 +137,13 @@ UTL_Scope::fe_add_fwd_intf_decl (typename FULL_DECL::FWD_TYPE *t)
// get destroyed twice.
if (itf->is_defined ())
{
- if (!t->is_defined ())
- {
- FULL_DECL *prev_fd =
- FULL_DECL::narrow_from_decl (t->full_definition ());
-
- prev_fd->destroy ();
- // No need to delete prev_fd, the call to
- // set_full_definition() below will do it.
- }
-
t->set_full_definition (itf);
t->set_as_defined ();
}
}
- if (!FE_Utils::can_be_redefined (d, t)) {
-
+ if (!FE_Utils::can_be_redefined (d, t))
+ {
idl_global->err ()->error3 (UTL_Error::EIDL_REDEF,
t,
ScopeAsDecl (this),
diff --git a/TAO/TAO_IDL/include/utl_stack.h b/TAO/TAO_IDL/include/utl_stack.h
index 56906593efd..d83159b6db7 100644
--- a/TAO/TAO_IDL/include/utl_stack.h
+++ b/TAO/TAO_IDL/include/utl_stack.h
@@ -68,6 +68,8 @@ trademarks or registered trademarks of Sun Microsystems, Inc.
#include "TAO_IDL_FE_Export.h"
class UTL_Scope;
+class UTL_IdList;
+class AST_Decl;
// UTL_ScopeStack implements scope nesting.
@@ -80,6 +82,9 @@ public:
UTL_ScopeStack (void);
~UTL_ScopeStack (void);
+ /// The initial capacity and how much to increment the capacity when needed.
+ static const size_t increments;
+
// Return top element.
UTL_Scope *top (void);
@@ -104,6 +109,12 @@ public:
// return topmost non-NULL element.
UTL_Scope *top_non_null (void);
+ /**
+ * Call lookup_by_name on all the scopes from the top down.
+ */
+ AST_Decl *lookup_by_name (UTL_IdList *name,
+ bool full_def_only = false, bool for_add = true);
+
private:
// Store scopes stack
UTL_Scope **pd_stack_data;
@@ -128,10 +139,10 @@ public:
void next (void);
// Get current item.
- UTL_Scope*item (void);
+ UTL_Scope* item (void);
// Is the iteration finished?
- long is_done (void);
+ bool is_done (void) const;
private:
// On what to iterate?
diff --git a/TAO/TAO_IDL/tao_idl_fe.mpc b/TAO/TAO_IDL/tao_idl_fe.mpc
index fcaad08f3f3..020936b5c89 100644
--- a/TAO/TAO_IDL/tao_idl_fe.mpc
+++ b/TAO/TAO_IDL/tao_idl_fe.mpc
@@ -3,13 +3,16 @@ project(TAO_IDL_GEN) {
requires += tao_idl_fe_gen
custom_only = 1
+ verbatim(gnuace, extension, 1) {
+ OUTPUT_DIRECTORY =
+ }
+
verbatim(gnuace, local) {
BISON_FLAGS := -d --feature=caret --warnings=error=deprecated --warnings=error=empty-rule --warnings=error=conflicts-rr
all: fe/fe_lookup.cpp fe/idl.yy.cpp fe/idl.tab.cpp fe/idl.tab.hpp
GPERF ?= $(ACE_ROOT)/bin/ace_gperf
fe/fe_lookup.cpp: fe/keywords.dat
- " cp fe/lookup_starter.txt $@"
- " $(GPERF) -M -J -c -C -D -E -T -f 0 -a -o -t -p -K keyword_ -L C++ -Z TAO_IDL_CPP_Keyword_Table -N lookup -k1,2,$$ $^ | sed -f fe/post_gperf.sed >> $@"
+ " $(GPERF) -M -J -c -C -D -E -T -f 0 -a -o -t -p -K keyword_ -L C++ -Z TAO_IDL_CPP_Keyword_Table -N lookup -k1,2,$$ $^ | sed -f fe/post_gperf.sed > $@"
fe/idl.yy.cpp: fe/idl.ll
" @echo 'WARNING: Potentially outdated $@'"
diff --git a/TAO/TAO_IDL/util/utl_scope.cpp b/TAO/TAO_IDL/util/utl_scope.cpp
index eb0a50bc9c0..347182d76f6 100644
--- a/TAO/TAO_IDL/util/utl_scope.cpp
+++ b/TAO/TAO_IDL/util/utl_scope.cpp
@@ -2247,6 +2247,7 @@ UTL_Scope::lookup_by_name (const char *name)
AST_Decl *node = 0;
UTL_ScopedName *scoped_name = FE_Utils::string_to_scoped_name (name);
node = lookup_by_name (scoped_name);
+ scoped_name->destroy ();
delete scoped_name;
return node;
}
diff --git a/TAO/TAO_IDL/util/utl_stack.cpp b/TAO/TAO_IDL/util/utl_stack.cpp
index 2505eb4f5c5..c2faa7df607 100644
--- a/TAO/TAO_IDL/util/utl_stack.cpp
+++ b/TAO/TAO_IDL/util/utl_stack.cpp
@@ -63,18 +63,18 @@ trademarks or registered trademarks of Sun Microsystems, Inc.
*/
#include "utl_stack.h"
+#include "utl_scoped_name.h"
#include "utl_scope.h"
+#include "ast_decl.h"
#include "global_extern.h"
-#undef INCREMENT
-#define INCREMENT 64
+const size_t UTL_ScopeStack::increments = 64;
UTL_ScopeStack::UTL_ScopeStack (void)
- : pd_stack_data_nalloced (INCREMENT),
+ : pd_stack_data_nalloced (increments),
pd_stack_top (0)
{
- ACE_NEW (this->pd_stack_data,
- UTL_Scope *[INCREMENT]);
+ ACE_NEW (this->pd_stack_data, UTL_Scope *[increments]);
}
UTL_ScopeStack::~UTL_ScopeStack (void)
@@ -89,7 +89,7 @@ UTL_ScopeStack::~UTL_ScopeStack (void)
UTL_ScopeStack *
UTL_ScopeStack::push (UTL_Scope *el)
{
- UTL_Scope **tmp = 0;
+ UTL_Scope **tmp = 0;
long ostack_data_nalloced;
long i;
@@ -97,7 +97,7 @@ UTL_ScopeStack::push (UTL_Scope *el)
if (this->pd_stack_data_nalloced == this->pd_stack_top)
{
ostack_data_nalloced = this->pd_stack_data_nalloced;
- this->pd_stack_data_nalloced += INCREMENT;
+ this->pd_stack_data_nalloced += increments;
ACE_NEW_RETURN (tmp,
UTL_Scope *[this->pd_stack_data_nalloced],
@@ -212,6 +212,22 @@ UTL_ScopeStack::top_non_null (void)
return 0;
}
+AST_Decl *
+UTL_ScopeStack::lookup_by_name (
+ UTL_ScopedName *name, bool full_def_only, bool for_add)
+{
+ for (long i = pd_stack_top - 1; i >= 0; --i)
+ {
+ UTL_Scope *scope = pd_stack_data[i];
+ if (scope)
+ {
+ AST_Decl *node = scope->lookup_by_name (name, full_def_only, for_add);
+ if (node) return node;
+ }
+ }
+ return 0;
+}
+
UTL_ScopeStackActiveIterator::UTL_ScopeStackActiveIterator (UTL_ScopeStack &s)
: source (s),
il (s.pd_stack_top - 1)
@@ -238,8 +254,8 @@ UTL_ScopeStackActiveIterator::item (void)
}
// Is this iteration done?
-long
-UTL_ScopeStackActiveIterator::is_done (void)
+bool
+UTL_ScopeStackActiveIterator::is_done (void) const
{
if (this->il >= 0)
{
@@ -248,4 +264,3 @@ UTL_ScopeStackActiveIterator::is_done (void)
return true;
}
-