summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-03-27 01:48:11 +0000
committerparsons <parsons@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-03-27 01:48:11 +0000
commit4bedea47e1c7b532b2c79e844a54e6a1dafc141a (patch)
tree7261fa368c6de15252a57e6c69f9fc496eaac0f8
parent63d8ebf8a536609385703303223d3c6e2952f8b4 (diff)
downloadATCD-4bedea47e1c7b532b2c79e844a54e6a1dafc141a.tar.gz
ChangeLogTag: Tue Mar 26 19:42:11 2002 Jeff Parsons <parsons@cs.wustl.edu>
-rw-r--r--TAO/TAO_IDL/ast/ast_constant.cpp6
-rw-r--r--TAO/TAO_IDL/ast/ast_expression.cpp36
-rw-r--r--TAO/TAO_IDL/ast/ast_predefined_type.cpp4
-rw-r--r--TAO/TAO_IDL/ast/ast_union.cpp10
-rw-r--r--TAO/TAO_IDL/be/be_constant.cpp4
-rw-r--r--TAO/TAO_IDL/be/be_predefined_type.cpp4
-rw-r--r--TAO/TAO_IDL/be/be_sequence.cpp38
-rw-r--r--TAO/TAO_IDL/be/be_sunsoft.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_union_branch.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp8
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/invoke_cs.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/marshal_ss.cpp11
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/post_marshal_ss.cpp68
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/pre_invoke_cs.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/request_info_arglist.cpp17
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/request_info_ch.cpp19
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/request_info_sh.cpp23
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/upcall_ss.cpp141
-rw-r--r--TAO/TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp255
-rw-r--r--TAO/TAO_IDL/be/be_visitor_array/array.cpp68
-rw-r--r--TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp53
-rw-r--r--TAO/TAO_IDL/be/be_visitor_constant/constant_ch.cpp4
-rw-r--r--TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp29
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception/cdr_op_ch.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception/cdr_op_ci.cpp38
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception/cdr_op_cs.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception/ctor_assign.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception/exception_ci.cpp9
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp210
-rw-r--r--TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp24
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/interceptors_info_rettype.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/interceptors_result.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/rettype_assign_ss.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/rettype_marshal_ss.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/rettype_return_cs.cpp5
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp4
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp65
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp17
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp6
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_cs.cpp5
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_cs.cpp8
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp2
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp3
-rw-r--r--TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp4
-rw-r--r--TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp7
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp43
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/private_ch.cpp21
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/public_access_cs.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp54
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/public_ch.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp70
-rw-r--r--TAO/TAO_IDL/be/be_visitor_union_branch/public_reset_cs.cpp23
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_ci.cpp24
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/field_ch.cpp1
-rw-r--r--TAO/TAO_IDL/be/be_visitor_valuetype/field_cs.cpp20
-rw-r--r--TAO/TAO_IDL/fe/fe_init.cpp2
-rw-r--r--TAO/TAO_IDL/fe/idl.ll1
-rw-r--r--TAO/TAO_IDL/fe/idl.yy64
-rw-r--r--TAO/TAO_IDL/fe/lex.yy.cpp1067
-rw-r--r--TAO/TAO_IDL/fe/lex.yy.cpp.diff42
-rw-r--r--TAO/TAO_IDL/fe/y.tab.cpp1345
-rw-r--r--TAO/TAO_IDL/fe/y.tab.h119
-rw-r--r--TAO/TAO_IDL/include/ast_expression.h13
-rw-r--r--TAO/TAO_IDL/include/ast_predefined_type.h3
-rw-r--r--TAO/TAO_IDL/include/ast_union.h2
-rw-r--r--TAO/TAO_IDL/util/utl_err.cpp4
-rw-r--r--TAO/TAO_IDL/util/utl_global.cpp2
-rw-r--r--TAO/TAO_IDL/util/utl_scope.cpp16
79 files changed, 2343 insertions, 1856 deletions
diff --git a/TAO/TAO_IDL/ast/ast_constant.cpp b/TAO/TAO_IDL/ast/ast_constant.cpp
index ef2de1b8cfa..32871cedeb2 100644
--- a/TAO/TAO_IDL/ast/ast_constant.cpp
+++ b/TAO/TAO_IDL/ast/ast_constant.cpp
@@ -108,8 +108,8 @@ exprtype_to_string (AST_Expression::ExprType et)
return "boolean";
case AST_Expression::EV_string:
return "string";
- case AST_Expression::EV_any:
- return "any";
+ case AST_Expression::EV_enum:
+ return "enum";
case AST_Expression::EV_void:
return "void";
case AST_Expression::EV_none:
@@ -173,7 +173,7 @@ AST_Constant::AST_Constant (AST_Expression::ExprType t,
}
// Allows the enum value string name to be used in generating the
// rhs of the constant assignment.
- else if (t == AST_Expression::EV_any)
+ else if (t == AST_Expression::EV_enum)
{
this->pd_constant_value->ev ()->et = t;
}
diff --git a/TAO/TAO_IDL/ast/ast_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp
index 189ed2a84db..dcdee836f6d 100644
--- a/TAO/TAO_IDL/ast/ast_expression.cpp
+++ b/TAO/TAO_IDL/ast/ast_expression.cpp
@@ -466,7 +466,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev,
case AST_Expression::EV_longdouble:
case AST_Expression::EV_string:
case AST_Expression::EV_wstring:
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
return 0;
@@ -575,7 +575,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev,
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
case AST_Expression::EV_string:
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
return 0;
@@ -667,7 +667,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev,
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
case AST_Expression::EV_string:
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
return 0;
@@ -769,7 +769,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev,
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
case AST_Expression::EV_string:
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
return 0;
@@ -844,7 +844,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev,
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
case AST_Expression::EV_string:
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
return 0;
@@ -937,7 +937,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev,
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
case AST_Expression::EV_string:
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
return 0;
@@ -1005,7 +1005,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev,
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
case AST_Expression::EV_string:
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
return 0;
@@ -1089,7 +1089,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev,
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
case AST_Expression::EV_string:
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
return 0;
@@ -1161,7 +1161,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev,
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
case AST_Expression::EV_string:
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
return 0;
@@ -1281,7 +1281,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev,
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
case AST_Expression::EV_string:
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
return 0;
@@ -1390,7 +1390,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev,
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
case AST_Expression::EV_string:
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
return 0;
@@ -1510,15 +1510,15 @@ coerce_value (AST_Expression::AST_ExprValue *ev,
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
case AST_Expression::EV_string:
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
return 0;
}
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
switch (ev->et)
{
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
case AST_Expression::EV_ulong:
return ev;
default:
@@ -1997,7 +1997,7 @@ AST_Expression::coerce (AST_Expression::ExprType t)
case EV_longdouble:
case EV_void:
case EV_none:
- case EV_any:
+ case EV_enum:
return 0;
case EV_short:
copy->u.sval = this->pd_ev->u.sval;
@@ -2214,7 +2214,7 @@ AST_Expression::operator== (AST_Expression *vc)
#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case EV_longdouble:
case EV_wstring:
- case EV_any:
+ case EV_enum:
case EV_void:
case EV_none:
return I_FALSE;
@@ -2301,7 +2301,7 @@ AST_Expression::compare (AST_Expression *vc)
#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case EV_longdouble:
case EV_wstring:
- case EV_any:
+ case EV_enum:
case EV_void:
case EV_none:
return I_FALSE;
@@ -2394,7 +2394,7 @@ dump_expr_val (ACE_OSTREAM_TYPE &o,
break;
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
case AST_Expression::EV_none:
case AST_Expression::EV_void:
break;
diff --git a/TAO/TAO_IDL/ast/ast_predefined_type.cpp b/TAO/TAO_IDL/ast/ast_predefined_type.cpp
index 9b9b7792438..ad0c50ed7b7 100644
--- a/TAO/TAO_IDL/ast/ast_predefined_type.cpp
+++ b/TAO/TAO_IDL/ast/ast_predefined_type.cpp
@@ -176,6 +176,10 @@ AST_PredefinedType::AST_PredefinedType (PredefinedType t,
ACE_NEW (id,
Identifier ("Any"));
break;
+ case AST_PredefinedType::PT_object:
+ ACE_NEW (id,
+ Identifier ("Object"));
+ break;
case AST_PredefinedType::PT_pseudo:
ACE_NEW (id,
Identifier (n->last_component ()->get_string ()));
diff --git a/TAO/TAO_IDL/ast/ast_union.cpp b/TAO/TAO_IDL/ast/ast_union.cpp
index 4459044aa25..7b5d9513569 100644
--- a/TAO/TAO_IDL/ast/ast_union.cpp
+++ b/TAO/TAO_IDL/ast/ast_union.cpp
@@ -166,7 +166,7 @@ AST_Union::AST_Union (AST_ConcreteType *dt,
}
else if (dt->node_type() == AST_Decl::NT_enum)
{
- this->pd_udisc_type = AST_Expression::EV_any;
+ this->pd_udisc_type = AST_Expression::EV_enum;
this->pd_disc_type = dt;
}
else
@@ -436,7 +436,7 @@ AST_Union::lookup_branch (AST_UnionBranch *branch)
return lookup_default ();
}
- if (this->pd_udisc_type == AST_Expression::EV_any)
+ if (this->pd_udisc_type == AST_Expression::EV_enum)
{
// CONVENTION: indicates enum discriminant.
return lookup_enum (branch);
@@ -562,7 +562,7 @@ AST_Union::compute_default_value (void)
}
break;
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
// Has to be enum.
{
AST_Decl *d = AST_Decl::narrow_from_decl (this->disc_type ());
@@ -658,7 +658,7 @@ AST_Union::compute_default_value (void)
case AST_Expression::EV_bool:
this->default_value_.u.bool_val = 0;
break;
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
this->default_value_.u.enum_val = 0;
break;
case AST_Expression::EV_longlong:
@@ -777,7 +777,7 @@ AST_Union::compute_default_value (void)
}
break;
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
// this is the case of enums. We maintain
// evaluated values which always start with 0
if (this->default_value_.u.enum_val
diff --git a/TAO/TAO_IDL/be/be_constant.cpp b/TAO/TAO_IDL/be/be_constant.cpp
index a3a294771fb..f7f391fe9fd 100644
--- a/TAO/TAO_IDL/be/be_constant.cpp
+++ b/TAO/TAO_IDL/be/be_constant.cpp
@@ -81,7 +81,7 @@ be_constant::exprtype_to_string (void)
case AST_Expression::EV_wstring:
return "CORBA::WChar *const";
case AST_Expression::EV_longdouble:
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
return 0;
}
@@ -91,7 +91,7 @@ be_constant::exprtype_to_string (void)
UTL_ScopedName *
be_constant::enum_full_name (void)
{
- if (this->pd_et == AST_Expression::EV_any)
+ if (this->pd_et == AST_Expression::EV_enum)
{
UTL_Scope *s = this->defined_in ();
AST_Decl *d = s->lookup_by_name (this->pd_constant_value->n (),
diff --git a/TAO/TAO_IDL/be/be_predefined_type.cpp b/TAO/TAO_IDL/be/be_predefined_type.cpp
index 9a241da2699..83e2fbca32c 100644
--- a/TAO/TAO_IDL/be/be_predefined_type.cpp
+++ b/TAO/TAO_IDL/be/be_predefined_type.cpp
@@ -129,6 +129,10 @@ be_predefined_type::compute_tc_name (void)
ACE_NEW (id,
Identifier ("_tc_any"));
break;
+ case AST_PredefinedType::PT_object:
+ ACE_NEW (id,
+ Identifier ("_tc_Object"));
+ break;
case AST_PredefinedType::PT_pseudo:
{
char tcname [100];
diff --git a/TAO/TAO_IDL/be/be_sequence.cpp b/TAO/TAO_IDL/be/be_sequence.cpp
index c5720f2af85..3109ab84b1c 100644
--- a/TAO/TAO_IDL/be/be_sequence.cpp
+++ b/TAO/TAO_IDL/be/be_sequence.cpp
@@ -142,7 +142,8 @@ be_sequence::gen_name (void)
ACE_OS::sprintf (ulval_str,
"_%lu",
this->max_size ()->ev ()->u.ulval);
- ACE_OS::strcat (namebuf, ulval_str);
+ ACE_OS::strcat (namebuf,
+ ulval_str);
}
return ACE_OS::strdup (namebuf);
@@ -239,13 +240,20 @@ be_sequence::managed_type (void)
{
int is_valuetype = 0;
be_interface *bf = be_interface::narrow_from_decl (prim_type);
+
if (bf != 0)
- is_valuetype = bf->is_valuetype ();
+ {
+ is_valuetype = bf->is_valuetype ();
+ }
else
{
- be_interface_fwd *bff = be_interface_fwd::narrow_from_decl (prim_type);
+ be_interface_fwd *bff =
+ be_interface_fwd::narrow_from_decl (prim_type);
+
if (bff != 0)
- is_valuetype = bff->is_valuetype ();
+ {
+ is_valuetype = bff->is_valuetype ();
+ }
}
if (is_valuetype)
{
@@ -253,8 +261,9 @@ be_sequence::managed_type (void)
}
else
{
- this->mt_ = be_sequence::MNG_OBJREF;
+ this->mt_ = be_sequence::MNG_OBJREF;
}
+
break;
}
case AST_Decl::NT_string:
@@ -267,20 +276,15 @@ be_sequence::managed_type (void)
{
be_predefined_type *bpd =
be_predefined_type::narrow_from_decl (prim_type);
+ AST_PredefinedType::PredefinedType pt = bpd->pt ();
- if (bpd->pt () == AST_PredefinedType::PT_pseudo)
+ if (pt == AST_PredefinedType::PT_pseudo)
{
- // If this pseudo is a CORBA::Object, then the managed type is
- // an objref.
- if (!ACE_OS::strcmp (bpd->local_name ()->get_string (),
- "Object"))
- {
- this->mt_ = be_sequence::MNG_OBJREF;
- }
- else
- {
- this->mt_ = be_sequence::MNG_PSEUDO;
- }
+ this->mt_ = be_sequence::MNG_PSEUDO;
+ }
+ else if (pt == AST_PredefinedType::PT_object)
+ {
+ this->mt_ = be_sequence::MNG_OBJREF;
}
else
{
diff --git a/TAO/TAO_IDL/be/be_sunsoft.cpp b/TAO/TAO_IDL/be/be_sunsoft.cpp
index 262b42f5b9d..08f6588da15 100644
--- a/TAO/TAO_IDL/be/be_sunsoft.cpp
+++ b/TAO/TAO_IDL/be/be_sunsoft.cpp
@@ -171,7 +171,7 @@ TAO_SunSoft_OutStream::print (AST_Expression *expr)
case AST_Expression::EV_wstring:
this->TAO_OutStream::print ("L\"%s\"", ev->u.wstrval);
break;
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
this->print (expr->n ());
break;
default:
diff --git a/TAO/TAO_IDL/be/be_union_branch.cpp b/TAO/TAO_IDL/be/be_union_branch.cpp
index c24f04b1b42..9e5a934b76b 100644
--- a/TAO/TAO_IDL/be/be_union_branch.cpp
+++ b/TAO/TAO_IDL/be/be_union_branch.cpp
@@ -146,7 +146,7 @@ be_union_branch::gen_default_label_value (TAO_OutStream *os,
case AST_Expression::EV_bool:
*os << dv.u.bool_val;
break;
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
// The discriminant is an enum. Some compilers will
// not accept a numeric value assigned to this
// discriminant, so we must generate the string name.
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp b/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp
index 58524535750..e1aeec32c2e 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument/arglist.cpp
@@ -170,9 +170,10 @@ int be_visitor_args_arglist::visit_native (be_native *node)
int be_visitor_args_arglist::visit_predefined_type (be_predefined_type *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
+ TAO_OutStream *os = this->ctx_->stream ();
+ AST_PredefinedType::PredefinedType pt = node->pt ();
- if (node->pt () == AST_PredefinedType::PT_any)
+ if (pt == AST_PredefinedType::PT_any)
{
switch (this->direction ())
{
@@ -187,7 +188,8 @@ int be_visitor_args_arglist::visit_predefined_type (be_predefined_type *node)
break;
}
}
- else if (node->pt () == AST_PredefinedType::PT_pseudo)
+ else if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
// The only PT_pseudo that doesn't take a _ptr suffix.
idl_bool is_tckind =
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/invoke_cs.cpp b/TAO/TAO_IDL/be/be_visitor_argument/invoke_cs.cpp
index a9c924ea291..9b0ac9722e7 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument/invoke_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument/invoke_cs.cpp
@@ -422,6 +422,7 @@ int be_visitor_args_invoke_cs::visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
case AST_PredefinedType::PT_any:
case AST_PredefinedType::PT_long:
case AST_PredefinedType::PT_ulong:
@@ -468,6 +469,7 @@ int be_visitor_args_invoke_cs::visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
case AST_PredefinedType::PT_any:
case AST_PredefinedType::PT_long:
case AST_PredefinedType::PT_ulong:
@@ -504,6 +506,7 @@ int be_visitor_args_invoke_cs::visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
*os << arg->local_name () << ".ptr ()";
break;
case AST_PredefinedType::PT_any:
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/marshal_ss.cpp b/TAO/TAO_IDL/be/be_visitor_argument/marshal_ss.cpp
index 1651a3c48ad..344aa38e2b2 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument/marshal_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument/marshal_ss.cpp
@@ -390,10 +390,12 @@ int be_visitor_args_marshal_ss::visit_valuetype_fwd (be_valuetype_fwd *)
return 0;
}
-int be_visitor_args_marshal_ss::visit_predefined_type (be_predefined_type *node)
+int be_visitor_args_marshal_ss::visit_predefined_type (
+ be_predefined_type *node
+ )
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get argument node
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
if (this->ctx_->sub_state () == TAO_CodeGen::TAO_CDR_INPUT)
{
@@ -404,6 +406,7 @@ int be_visitor_args_marshal_ss::visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
*os << arg->local_name () << ".out ()";
break;
case AST_PredefinedType::PT_any:
@@ -452,6 +455,7 @@ int be_visitor_args_marshal_ss::visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
*os << arg->local_name () << ".in ()";
break;
case AST_PredefinedType::PT_any:
@@ -492,6 +496,7 @@ int be_visitor_args_marshal_ss::visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
*os << arg->local_name () << ".in ()";
break;
case AST_PredefinedType::PT_any:
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/post_marshal_ss.cpp b/TAO/TAO_IDL/be/be_visitor_argument/post_marshal_ss.cpp
index b097feba99a..8af31c3246f 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument/post_marshal_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument/post_marshal_ss.cpp
@@ -118,45 +118,49 @@ int be_visitor_args_post_marshal_ss::visit_interface_fwd (be_interface_fwd *)
return 0;
}
-int be_visitor_args_post_marshal_ss::visit_predefined_type (be_predefined_type *node)
+int be_visitor_args_post_marshal_ss::visit_predefined_type (
+ be_predefined_type *node
+ )
{
- // check if the type is an any
- if (node->pt () == AST_PredefinedType::PT_any)
+ AST_PredefinedType::PredefinedType pt = node->pt ();
+
+ if pt == AST_PredefinedType::PT_any)
{
switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- break;
- case AST_Argument::dir_OUT:
- break;
- } // end switch direction
- } // end of if
- else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object
+ {
+ case AST_Argument::dir_IN:
+ break;
+ case AST_Argument::dir_INOUT:
+ break;
+ case AST_Argument::dir_OUT:
+ break;
+ }
+ }
+ else if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- break;
- case AST_Argument::dir_OUT:
- break;
- } // end switch direction
- } // end else if
- else // simple predefined types
+ {
+ case AST_Argument::dir_IN:
+ break;
+ case AST_Argument::dir_INOUT:
+ break;
+ case AST_Argument::dir_OUT:
+ break;
+ }
+ }
+ else
{
switch (this->direction ())
- {
- case AST_Argument::dir_IN:
- break;
- case AST_Argument::dir_INOUT:
- break;
- case AST_Argument::dir_OUT:
- break;
- } // end switch direction
- } // end of else
+ {
+ case AST_Argument::dir_IN:
+ break;
+ case AST_Argument::dir_INOUT:
+ break;
+ case AST_Argument::dir_OUT:
+ break;
+ }
+ }
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/pre_invoke_cs.cpp b/TAO/TAO_IDL/be/be_visitor_argument/pre_invoke_cs.cpp
index b7f4aedac4a..2c322980928 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument/pre_invoke_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument/pre_invoke_cs.cpp
@@ -197,6 +197,7 @@ be_visitor_args_pre_invoke_cs::visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
{
switch (this->direction ())
{
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/request_info_arglist.cpp b/TAO/TAO_IDL/be/be_visitor_argument/request_info_arglist.cpp
index 1f82fb45393..35083b755d4 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument/request_info_arglist.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument/request_info_arglist.cpp
@@ -196,9 +196,9 @@ int be_visitor_args_request_info_arglist::visit_predefined_type (
)
{
TAO_OutStream *os = this->ctx_->stream ();
+ AST_PredefinedType::PredefinedType pt = node->pt ();
- // Check if the type is an any.
- if (node->pt () == AST_PredefinedType::PT_any)
+ if (pt == AST_PredefinedType::PT_any)
{
switch (this->direction ())
{
@@ -220,9 +220,10 @@ int be_visitor_args_request_info_arglist::visit_predefined_type (
break;
}
- } // end switch direction
- } // end of if
- else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g. CORBA::Object
+ }
+ }
+ else if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
switch (this->direction ())
{
@@ -235,9 +236,9 @@ int be_visitor_args_request_info_arglist::visit_predefined_type (
case AST_Argument::dir_OUT:
*os << this->type_name (node, "_out");
break;
- } // end switch direction
- } // end else if
- else // Simple predefined types.
+ }
+ }
+ else
{
switch (this->direction ())
{
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/request_info_ch.cpp b/TAO/TAO_IDL/be/be_visitor_argument/request_info_ch.cpp
index e1752ecdd2a..62901c0999b 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument/request_info_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument/request_info_ch.cpp
@@ -193,10 +193,10 @@ int be_visitor_args_request_info_ch::visit_predefined_type (
be_predefined_type *node
)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
+ TAO_OutStream *os = this->ctx_->stream ();
+ AST_PredefinedType::PredefinedType pt = node-> pt ();
- // Check if the type is an any.
- if (node->pt () == AST_PredefinedType::PT_any)
+ if (pt == AST_PredefinedType::PT_any)
{
switch (this->direction ())
{
@@ -218,9 +218,10 @@ int be_visitor_args_request_info_ch::visit_predefined_type (
break;
}
- } // end switch direction
- } // end of if
- else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object
+ }
+ }
+ else if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
switch (this->direction ())
{
@@ -233,9 +234,9 @@ int be_visitor_args_request_info_ch::visit_predefined_type (
case AST_Argument::dir_OUT:
*os << this->type_name (node, "_out");
break;
- } // end switch direction
- } // end else if
- else // Simple predefined types.
+ }
+ }
+ else
{
switch (this->direction ())
{
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/request_info_sh.cpp b/TAO/TAO_IDL/be/be_visitor_argument/request_info_sh.cpp
index 222b10d3ef5..ffd869bc85b 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument/request_info_sh.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument/request_info_sh.cpp
@@ -167,12 +167,14 @@ int be_visitor_args_request_info_sh::visit_native (be_native *node)
return 0;
}
-int be_visitor_args_request_info_sh::visit_predefined_type (be_predefined_type *node)
+int be_visitor_args_request_info_sh::visit_predefined_type (
+ be_predefined_type *node
+ )
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
+ TAO_OutStream *os = this->ctx_->stream ();
+ AST_PredefinedType::PredefinedType pt = node->pt ();
- // check if the type is an any
- if (node->pt () == AST_PredefinedType::PT_any)
+ if (pt == AST_PredefinedType::PT_any)
{
switch (this->direction ())
{
@@ -185,9 +187,10 @@ int be_visitor_args_request_info_sh::visit_predefined_type (be_predefined_type *
case AST_Argument::dir_OUT:
*os << this->type_name (node, "_out");
break;
- } // end switch direction
- } // end of if
- else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object
+ }
+ }
+ else if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
switch (this->direction ())
{
@@ -200,9 +203,9 @@ int be_visitor_args_request_info_sh::visit_predefined_type (be_predefined_type *
case AST_Argument::dir_OUT:
*os << this->type_name (node, "_out");
break;
- } // end switch direction
- } // end else if
- else // simple predefined types
+ }
+ }
+ else
{
switch (this->direction ())
{
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/upcall_ss.cpp b/TAO/TAO_IDL/be/be_visitor_argument/upcall_ss.cpp
index 68c3c2c0582..0fa622fc8d3 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument/upcall_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument/upcall_ss.cpp
@@ -248,55 +248,77 @@ int be_visitor_args_upcall_ss::visit_valuetype_fwd (be_valuetype_fwd *)
int be_visitor_args_upcall_ss::visit_predefined_type (be_predefined_type *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
- // check if the type is an any
- if (node->pt () == AST_PredefinedType::PT_any)
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
+ AST_PredefinedType::PredefinedType pt = node->pt ();
+
+ if (pt == AST_PredefinedType::PT_any)
{
switch (this->direction ())
{
case AST_Argument::dir_IN:
case AST_Argument::dir_INOUT:
*os << arg->local_name ();
+
break;
case AST_Argument::dir_OUT:
if (this->ctx_->state ()
== TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- *os << arg->local_name ();
+ {
+ *os << arg->local_name ();
+ }
else
- *os << arg->local_name () << ".out ()";
+ {
+ *os << arg->local_name () << ".out ()";
+ }
+
break;
- } // end switch direction
- } // end of if
- else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object
+ }
+ }
+ else if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
switch (this->direction ())
{
case AST_Argument::dir_IN:
if (this->ctx_->state ()
== TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- *os << arg->local_name ();
+ {
+ *os << arg->local_name ();
+ }
else
- *os << arg->local_name () << ".in ()";
+ {
+ *os << arg->local_name () << ".in ()";
+ }
+
break;
case AST_Argument::dir_INOUT:
if (this->ctx_->state ()
== TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- *os << arg->local_name ();
+ {
+ *os << arg->local_name ();
+ }
else
- *os << arg->local_name () << ".inout ()";
+ {
+ *os << arg->local_name () << ".inout ()";
+ }
+
break;
case AST_Argument::dir_OUT:
if (this->ctx_->state ()
== TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- *os << arg->local_name ();
+ {
+ *os << arg->local_name ();
+ }
else
- *os << arg->local_name () << ".out ()";
+ {
+ *os << arg->local_name () << ".out ()";
+ }
+
break;
- } // end switch direction
- } // end else if
- else // simple predefined types
+ }
+ }
+ else
{
switch (this->direction ())
{
@@ -313,21 +335,27 @@ int be_visitor_args_upcall_ss::visit_predefined_type (be_predefined_type *node)
int be_visitor_args_upcall_ss::visit_sequence (be_sequence *)
{
- TAO_OutStream *os = this->ctx_->stream (); // get the stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
+
switch (this->direction ())
{
case AST_Argument::dir_IN:
case AST_Argument::dir_INOUT:
*os << arg->local_name ();
+
break;
case AST_Argument::dir_OUT:
if (this->ctx_->state ()
== TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- *os << arg->local_name ();
+ {
+ *os << arg->local_name ();
+ }
else
- *os << arg->local_name () << ".out ()";
+ {
+ *os << arg->local_name () << ".out ()";
+ }
+
break;
}
return 0;
@@ -335,31 +363,46 @@ int be_visitor_args_upcall_ss::visit_sequence (be_sequence *)
int be_visitor_args_upcall_ss::visit_string (be_string *)
{
- TAO_OutStream *os = this->ctx_->stream (); // get the stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
+
switch (this->direction ())
{
case AST_Argument::dir_IN:
if (this->ctx_->state ()
== TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- *os << arg->local_name ();
+ {
+ *os << arg->local_name ();
+ }
else
- *os << arg->local_name () << ".in ()";
+ {
+ *os << arg->local_name () << ".in ()";
+ }
+
break;
case AST_Argument::dir_INOUT:
if (this->ctx_->state ()
== TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- *os << arg->local_name ();
+ {
+ *os << arg->local_name ();
+ }
else
+ {
*os << arg->local_name () << ".inout ()";
+ }
+
break;
case AST_Argument::dir_OUT:
if (this->ctx_->state ()
== TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- *os << arg->local_name ();
+ {
+ *os << arg->local_name ();
+ }
else
- *os << arg->local_name () << ".out ()";
+ {
+ *os << arg->local_name () << ".out ()";
+ }
+
break;
}
return 0;
@@ -367,24 +410,34 @@ int be_visitor_args_upcall_ss::visit_string (be_string *)
int be_visitor_args_upcall_ss::visit_structure (be_structure *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get the stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
+
switch (this->direction ())
{
case AST_Argument::dir_IN:
case AST_Argument::dir_INOUT:
*os << arg->local_name ();
+
break;
case AST_Argument::dir_OUT:
if (node->size_type () == AST_Type::VARIABLE)
- if (this->ctx_->state ()
- == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
- *os << arg->local_name ();
- else
- *os << arg->local_name () << ".out ()";
+ {
+ if (this->ctx_->state ()
+ == TAO_CodeGen::TAO_ARGUMENT_COLLOCATED_UPCALL_SS)
+ {
+ *os << arg->local_name ();
+ }
+ else
+ {
+ *os << arg->local_name () << ".out ()";
+ }
+ }
else
- *os << arg->local_name ();
+ {
+ *os << arg->local_name ();
+ }
+
break;
}
return 0;
@@ -392,9 +445,9 @@ int be_visitor_args_upcall_ss::visit_structure (be_structure *node)
int be_visitor_args_upcall_ss::visit_union (be_union *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get the stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
+
switch (this->direction ())
{
case AST_Argument::dir_IN:
diff --git a/TAO/TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp
index 85af05f93da..b6d69df63d6 100644
--- a/TAO/TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_argument/vardecl_ss.cpp
@@ -28,7 +28,9 @@ ACE_RCSID (be_visitor_argument,
// Visitor to generate code for argument variable declaration
// ************************************************************************
-be_visitor_args_vardecl_ss::be_visitor_args_vardecl_ss (be_visitor_context *ctx)
+be_visitor_args_vardecl_ss::be_visitor_args_vardecl_ss (
+ be_visitor_context *ctx
+ )
: be_visitor_args (ctx)
{
}
@@ -39,10 +41,9 @@ be_visitor_args_vardecl_ss::~be_visitor_args_vardecl_ss (void)
int be_visitor_args_vardecl_ss::visit_argument (be_argument *node)
{
- this->ctx_->node (node); // save the argument node
-
- // retrieve the type
+ this->ctx_->node (node);
be_type *bt = be_type::narrow_from_decl (node->field_type ());
+
if (!bt)
{
ACE_ERROR_RETURN ((LM_ERROR,
@@ -54,7 +55,6 @@ int be_visitor_args_vardecl_ss::visit_argument (be_argument *node)
// Different types have different mappings when used as in/out or
// inout parameters. Let this visitor deal with the type
-
if (bt->accept (this) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
@@ -69,30 +69,35 @@ int be_visitor_args_vardecl_ss::visit_argument (be_argument *node)
int be_visitor_args_vardecl_ss::visit_array (be_array *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
- // if the current type is an alias, use that
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
switch (this->direction ())
{
case AST_Argument::dir_IN:
case AST_Argument::dir_INOUT:
os->indent ();
+
*os << bt->name () << " " << arg->local_name () << ";" << be_nl
<< bt->name () << "_forany _tao_forany_"
<< arg->local_name () << " (" << be_idt << be_idt_nl
<< arg->local_name () << be_uidt_nl
<< ");\n" << be_uidt;
- break;
+ break;
case AST_Argument::dir_OUT:
os->indent ();
+
if (node->size_type () == be_type::VARIABLE)
{
*os << bt->name () << "_var " << arg->local_name ()
@@ -103,22 +108,27 @@ int be_visitor_args_vardecl_ss::visit_array (be_array *node)
*os << bt->name () << " " << arg->local_name ()
<< ";\n\n";
}
+
break;
}
+
return 0;
}
int be_visitor_args_vardecl_ss::visit_enum (be_enum *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
- // if the current type is an alias, use that
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
switch (this->direction ())
{
@@ -126,172 +136,220 @@ int be_visitor_args_vardecl_ss::visit_enum (be_enum *node)
case AST_Argument::dir_INOUT:
case AST_Argument::dir_OUT:
os->indent ();
+
*os << bt->name () << " " << arg->local_name () << ";\n";
+
break;
}
+
return 0;
}
int be_visitor_args_vardecl_ss::visit_interface (be_interface *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
- // if the current type is an alias, use that
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
switch (this->direction ())
{
case AST_Argument::dir_IN:
case AST_Argument::dir_INOUT:
os->indent ();
+
*os << bt->name () << "_var " << arg->local_name () << ";\n";
+
break;
case AST_Argument::dir_OUT:
os->indent ();
+
*os << bt->name () << "_var "
<< arg->local_name () << ";\n";
+
break;
}
+
return 0;
}
int be_visitor_args_vardecl_ss::visit_interface_fwd (be_interface_fwd *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
- // if the current type is an alias, use that
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
switch (this->direction ())
{
case AST_Argument::dir_IN:
case AST_Argument::dir_INOUT:
os->indent ();
+
*os << bt->name () << "_var " << arg->local_name () << ";\n";
+
break;
case AST_Argument::dir_OUT:
os->indent ();
+
*os << bt->name () << "_var "
<< arg->local_name () << ";\n";
+
break;
}
+
return 0;
}
int be_visitor_args_vardecl_ss::visit_valuetype (be_valuetype *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
- // if the current type is an alias, use that
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
switch (this->direction ())
{
case AST_Argument::dir_IN:
case AST_Argument::dir_INOUT:
os->indent ();
+
*os << bt->name () << "_var " << arg->local_name () << ";\n";
+
break;
case AST_Argument::dir_OUT:
os->indent ();
+
*os << bt->name () << "_var "
<< arg->local_name () << ";\n";
+
break;
}
+
return 0;
}
int be_visitor_args_vardecl_ss::visit_valuetype_fwd (be_valuetype_fwd *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
- // if the current type is an alias, use that
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
switch (this->direction ())
{
case AST_Argument::dir_IN:
case AST_Argument::dir_INOUT:
os->indent ();
+
*os << bt->name () << "_var " << arg->local_name () << ";\n";
+
break;
case AST_Argument::dir_OUT:
os->indent ();
+
*os << bt->name () << "_var "
<< arg->local_name () << ";\n";
+
break;
}
+
return 0;
}
int be_visitor_args_vardecl_ss::visit_predefined_type (be_predefined_type *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
- // if the current type is an alias, use that
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
- // check if the type is an any
- if (node->pt () == AST_PredefinedType::PT_any)
+ AST_PredefinedType::PredefinedType pt = node->pt ();
+
+ if (pt == AST_PredefinedType::PT_any)
{
switch (this->direction ())
{
case AST_Argument::dir_IN:
case AST_Argument::dir_INOUT:
os->indent ();
+
*os << bt->name () << " " << arg->local_name () << ";\n";
+
break;
case AST_Argument::dir_OUT:
os->indent ();
+
*os << bt->name () << "_var "
<< arg->local_name () << ";\n";
+
break;
- } // end switch direction
- } // end of if
- else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object
+ }
+ }
+ else if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
switch (this->direction ())
{
case AST_Argument::dir_IN:
case AST_Argument::dir_INOUT:
os->indent ();
+
*os << bt->name () << "_var " << arg->local_name ()
+
<< ";\n";
break;
case AST_Argument::dir_OUT:
os->indent ();
+
*os << bt->name () << "_var "
<< arg->local_name () << ";\n";
+
break;
- } // end switch direction
- } // end else if
- else // simple predefined types
+ }
+ }
+ else
{
switch (this->direction ())
{
@@ -299,47 +357,57 @@ int be_visitor_args_vardecl_ss::visit_predefined_type (be_predefined_type *node)
case AST_Argument::dir_INOUT:
case AST_Argument::dir_OUT:
os->indent ();
+
*os << bt->name () << " " << arg->local_name () << ";\n";
+
break;
- } // end switch direction
- } // end of else
+ }
+ }
return 0;
}
int be_visitor_args_vardecl_ss::visit_sequence (be_sequence *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
- // if the current type is an alias, use that
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
switch (this->direction ())
{
case AST_Argument::dir_IN:
case AST_Argument::dir_INOUT:
os->indent ();
+
*os << bt->name () << " " << arg->local_name () << ";\n";
+
break;
case AST_Argument::dir_OUT:
os->indent ();
+
*os << bt->name () << "_var "
<< arg->local_name () << ";" << be_nl;
+
break;
}
+
return 0;
}
int be_visitor_args_vardecl_ss::visit_string (be_string *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
+
switch (this->direction ())
{
case AST_Argument::dir_IN:
@@ -370,65 +438,80 @@ int be_visitor_args_vardecl_ss::visit_string (be_string *node)
break;
}
+
return 0;
}
int be_visitor_args_vardecl_ss::visit_structure (be_structure *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
- // if the current type is an alias, use that
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
switch (this->direction ())
{
case AST_Argument::dir_IN:
case AST_Argument::dir_INOUT:
os->indent ();
+
*os << bt->name () << " " << arg->local_name () << ";\n";
+
break;
case AST_Argument::dir_OUT:
os->indent ();
- // check if it is variable sized
+
if (node->size_type () == be_type::VARIABLE)
{
*os << bt->name () << "_var "
<< arg->local_name () << ";\n";
}
else
- *os << bt->name () << " " << arg->local_name () << ";\n";
+ {
+ *os << bt->name () << " " << arg->local_name () << ";\n";
+ }
+
break;
}
+
return 0;
}
int be_visitor_args_vardecl_ss::visit_union (be_union *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
- be_argument *arg = this->ctx_->be_node_as_argument (); // get the argument
- // node
- // if the current type is an alias, use that
+ TAO_OutStream *os = this->ctx_->stream ();
+ be_argument *arg = this->ctx_->be_node_as_argument ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
switch (this->direction ())
{
case AST_Argument::dir_IN:
case AST_Argument::dir_INOUT:
os->indent ();
+
*os << bt->name () << " " << arg->local_name () << ";\n";
+
break;
case AST_Argument::dir_OUT:
os->indent ();
- // check if it is variable sized
+
if (node->size_type () == be_type::VARIABLE)
{
*os << bt->name () << "_var "
@@ -436,15 +519,20 @@ int be_visitor_args_vardecl_ss::visit_union (be_union *node)
}
else
- *os << bt->name () << " " << arg->local_name () << ";\n";
+ {
+ *os << bt->name () << " " << arg->local_name () << ";\n";
+ }
+
break;
}
+
return 0;
}
int be_visitor_args_vardecl_ss::visit_typedef (be_typedef *node)
{
this->ctx_->alias (node);
+
if (node->primitive_base_type ()->accept (this) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
@@ -453,6 +541,7 @@ int be_visitor_args_vardecl_ss::visit_typedef (be_typedef *node)
"accept on primitive type failed\n"),
-1);
}
+
this->ctx_->alias (0);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_array/array.cpp b/TAO/TAO_IDL/be/be_visitor_array/array.cpp
index 9ec78dae4b0..541b5a0bbc1 100644
--- a/TAO/TAO_IDL/be/be_visitor_array/array.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_array/array.cpp
@@ -38,7 +38,7 @@ be_visitor_array::~be_visitor_array (void)
int be_visitor_array::visit_array (be_array *)
{
- // must be overloaded by derived visitors
+ // Must be overloaded by derived visitors.
return -1;
}
@@ -55,14 +55,23 @@ be_visitor_array::visit_interface (be_interface *node)
be_type *bt;
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
if (this->ctx_->state () == TAO_CodeGen::TAO_ARRAY_CH)
- *os << bt->nested_type_name (this->ctx_->scope (), "_var");
+ {
+ *os << bt->nested_type_name (this->ctx_->scope (), "_var");
+ }
else
- *os << bt->name () << "_var";
+ {
+ *os << bt->name () << "_var";
+ }
+
return 0;
}
@@ -73,14 +82,23 @@ be_visitor_array::visit_interface_fwd (be_interface_fwd *node)
be_type *bt;
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
if (this->ctx_->state () == TAO_CodeGen::TAO_ARRAY_CH)
- *os << bt->nested_type_name (this->ctx_->scope (), "_var");
+ {
+ *os << bt->nested_type_name (this->ctx_->scope (), "_var");
+ }
else
- *os << bt->name () << "_var";
+ {
+ *os << bt->name () << "_var";
+ }
+
return 0;
}
@@ -88,10 +106,18 @@ int
be_visitor_array::visit_predefined_type (be_predefined_type *node)
{
TAO_OutStream *os = this->ctx_->stream ();
- if (node->pt () == AST_PredefinedType::PT_pseudo)
- *os << node->name () << "_var";
+ AST_PredefinedType::PredefinedType pt = node->pt ();
+
+ if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
+ {
+ *os << node->name () << "_var";
+ }
else
- *os << node->name ();
+ {
+ *os << node->name ();
+ }
+
return 0;
}
@@ -134,7 +160,6 @@ int
be_visitor_array::visit_typedef (be_typedef *node)
{
int result = this->visit_node (node);
-
TAO_OutStream *os = this->ctx_->stream ();
AST_Decl::NodeType nt = node->primitive_base_type ()->node_type ();
@@ -154,13 +179,22 @@ be_visitor_array::visit_node (be_type *node)
be_type *bt;
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
if (this->ctx_->state () == TAO_CodeGen::TAO_ARRAY_CH)
- *os << bt->nested_type_name (this->ctx_->scope ());
+ {
+ *os << bt->nested_type_name (this->ctx_->scope ());
+ }
else
- *os << bt->name ();
+ {
+ *os << bt->name ();
+ }
+
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp
index 2aae6ace5cb..7c0c52c16dd 100644
--- a/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_array/cdr_op_ci.cpp
@@ -98,8 +98,8 @@ be_visitor_array_cdr_op_ci::visit_array (be_array *node)
// full_name with or without the underscore and use it later on.
char fname [NAMEBUFSIZE]; // to hold the full and
- // Save the node's local name and full name in a buffer for quick use later
- // on.
+ // Save the node's local name and full name in a buffer for quick use
+ // later on.
ACE_OS::memset (fname, '\0', NAMEBUFSIZE);
if (this->ctx_->tdef ())
{
@@ -108,18 +108,24 @@ be_visitor_array_cdr_op_ci::visit_array (be_array *node)
else
{
// For anonymous arrays ...
- // we have to generate a name for us that has an underscope prepended to
- // our local name. This needs to be inserted after the parents's name.
+ // We have to generate a name for us that has an underscope prepended
+ // to our local name. This needs to be inserted after the parents's
+ // name.
if (node->is_nested ())
{
- be_decl *parent = be_scope::narrow_from_scope (node->defined_in ())->decl ();
- ACE_OS::sprintf (fname, "%s::_%s", parent->full_name (),
+ be_decl *parent =
+ be_scope::narrow_from_scope (node->defined_in ())->decl ();
+ ACE_OS::sprintf (fname,
+ "%s::_%s",
+ parent->full_name (),
node->local_name ()->get_string ());
}
else
{
- ACE_OS::sprintf (fname, "_%s", node->full_name ());
+ ACE_OS::sprintf (fname,
+ "_%s",
+ node->full_name ());
}
}
@@ -196,6 +202,7 @@ be_visitor_array_cdr_op_ci::visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
case AST_PredefinedType::PT_any:
// Let the helper handle this.
return this->visit_node (node);
@@ -204,8 +211,8 @@ be_visitor_array_cdr_op_ci::visit_predefined_type (be_predefined_type *node)
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_array_cdr_op_ci::"
"visit_predefined_type - "
- "Bad primitive type\n"
- ), -1);
+ "Bad primitive type\n"),
+ -1);
default:
// All other primitive types. Handle them as shown below.
break;
@@ -213,8 +220,8 @@ be_visitor_array_cdr_op_ci::visit_predefined_type (be_predefined_type *node)
// We get here if the "type" of individual elements of the array is a
// primitive type. In this case, we treat the array as a single dimensional
- // array (even though it was multi-dimensional), and pass the total length of
- // the array as a cross product of the dimensions.
+ // array (even though it was multi-dimensional), and pass the total length
+ // of the array as a cross product of the dimensions.
unsigned long i;
@@ -386,8 +393,8 @@ be_visitor_array_cdr_op_ci::visit_predefined_type (be_predefined_type *node)
-1);
}
- // Generate a product of all the dimensions. This will be the total length of
- // the "unfolded" single dimensional array.
+ // Generate a product of all the dimensions. This will be the total length
+ // of the "unfolded" single dimensional array.
for (i = 0; i < array->n_dims (); i++)
{
// Retrieve the ith dimension value.
@@ -403,8 +410,10 @@ be_visitor_array_cdr_op_ci::visit_predefined_type (be_predefined_type *node)
}
if (i != 0)
- // Do not generate the multiplication operator the first time in.
- *os << "*";
+ {
+ // Do not generate the multiplication operator the first time in.
+ *os << "*";
+ }
if (expr->ev ()->et == AST_Expression::EV_ulong)
{
// Generate a loop for each dimension.
@@ -419,6 +428,7 @@ be_visitor_array_cdr_op_ci::visit_predefined_type (be_predefined_type *node)
-1);
}
}
+
*os << ");" << be_uidt_nl;
return 0;
@@ -511,7 +521,8 @@ be_visitor_array_cdr_op_ci::visit_node (be_type *bt)
if (expr->ev ()->et == AST_Expression::EV_ulong)
{
// Generate a loop for each dimension.
- *os << be_nl << "for (CORBA::ULong i" << i << " = 0; i" << i << " < "
+ *os << be_nl << "for (CORBA::ULong i" << i
+ << " = 0; i" << i << " < "
<< expr->ev ()->u.ulval << " && _tao_marshal_flag; i" << i
<< "++)" << be_idt_nl;
}
@@ -584,7 +595,10 @@ be_visitor_array_cdr_op_ci::visit_node (be_type *bt)
-1);
}
- if (pt->pt () == AST_PredefinedType::PT_pseudo)
+ AST_PredefinedType::PredefinedType pdt = pt->pt ();
+
+ if (pdt == AST_PredefinedType::PT_pseudo
+ || pdt == AST_PredefinedType::PT_object)
{
*os << ".out ()";
}
@@ -654,7 +668,10 @@ be_visitor_array_cdr_op_ci::visit_node (be_type *bt)
-1);
}
- if (pt->pt () == AST_PredefinedType::PT_pseudo)
+ AST_PredefinedType::PredefinedType pdt = pt->pt ();
+
+ if (pdt == AST_PredefinedType::PT_pseudo
+ || pdt == AST_PredefinedType::PT_object)
{
*os << ".in ()";
}
diff --git a/TAO/TAO_IDL/be/be_visitor_constant/constant_ch.cpp b/TAO/TAO_IDL/be/be_visitor_constant/constant_ch.cpp
index 308e48b5efb..46f0663604b 100644
--- a/TAO/TAO_IDL/be/be_visitor_constant/constant_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_constant/constant_ch.cpp
@@ -50,7 +50,7 @@ be_visitor_constant_ch::visit_constant (be_constant *node)
if (be_global->gen_inline_constants ())
{
- if (node->et () == AST_Expression::EV_any)
+ if (node->et () == AST_Expression::EV_enum)
{
*os << node->enum_full_name ();
}
@@ -81,7 +81,7 @@ be_visitor_constant_ch::visit_constant (be_constant *node)
*os << "const ";
- if (node->et () == AST_Expression::EV_any)
+ if (node->et () == AST_Expression::EV_enum)
{
*os << node->enum_full_name ();
}
diff --git a/TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp b/TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp
index 4e82116ac96..1a17a450edc 100644
--- a/TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp
@@ -67,7 +67,7 @@ be_visitor_constant_cs::visit_constant (be_constant *node)
*os << "TAO_NAMESPACE_DEFINE (const ";
- if (node->et () == AST_Expression::EV_any)
+ if (node->et () == AST_Expression::EV_enum)
{
*os << node->enum_full_name ();
}
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp
index 4116997ba8e..d8840fba38d 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception/any_op_cs.cpp
@@ -29,8 +29,9 @@ ACE_RCSID (be_visitor_exception,
// stubs file
// ***************************************************************************
-be_visitor_exception_any_op_cs::be_visitor_exception_any_op_cs
-(be_visitor_context *ctx)
+be_visitor_exception_any_op_cs::be_visitor_exception_any_op_cs (
+ be_visitor_context *ctx
+ )
: be_visitor_scope (ctx)
{
}
@@ -42,10 +43,10 @@ be_visitor_exception_any_op_cs::~be_visitor_exception_any_op_cs (void)
int
be_visitor_exception_any_op_cs::visit_exception (be_exception *node)
{
- if (node->cli_stub_any_op_gen () ||
- node->imported () ||
- node->is_local ())
- return 0;
+ if (node->cli_stub_any_op_gen () || node->imported () || node->is_local ())
+ {
+ return 0;
+ }
TAO_OutStream *os = this->ctx_->stream ();
@@ -151,7 +152,8 @@ be_visitor_exception_any_op_cs::visit_exception (be_exception *node)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_exception::visit_exception - "
- "codegen for scope failed\n"), -1);
+ "codegen for scope failed\n"),
+ -1);
}
node->cli_stub_any_op_gen (1);
@@ -161,17 +163,17 @@ be_visitor_exception_any_op_cs::visit_exception (be_exception *node)
int
be_visitor_exception_any_op_cs::visit_field (be_field *node)
{
- be_type *bt; // field's type
+ be_type *bt;
- // first generate the type information
+ // First generate the type information.
bt = be_type::narrow_from_decl (node->field_type ());
if (!bt)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_exception_any_op_cs::"
"visit_field - "
- "Bad field type\n"
- ), -1);
+ "Bad field type\n"),
+ -1);
}
if (bt->accept (this) == -1)
@@ -179,8 +181,9 @@ be_visitor_exception_any_op_cs::visit_field (be_field *node)
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_exception_any_op_cs::"
"visit_field - "
- "codegen for field type failed\n"
- ), -1);
+ "codegen for field type failed\n"),
+ -1);
}
+
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_ch.cpp b/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_ch.cpp
index 5cb6bd85a6b..4fb5a4f291f 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_ch.cpp
@@ -59,15 +59,16 @@ be_visitor_exception_cdr_op_ch::visit_exception (be_exception *node)
<< node->name () << " &);\n";
- // set the substate as generating code for the types defined in our scope
+ // Set the substate as generating code for the types defined in our scope.
this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_SCOPE);
- // all we have to do is to visit the scope and generate code
+
if (this->visit_scope (node) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_exception_cdr_op_ch::"
"visit_exception - "
- "codegen for scope failed\n"), -1);
+ "codegen for scope failed\n"),
+ -1);
}
*os << be_nl;
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_ci.cpp
index e123054e480..c8824a9c064 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_ci.cpp
@@ -55,15 +55,16 @@ be_visitor_exception_cdr_op_ci::visit_exception (be_exception *node)
// because the inlined code for our children must be available before we use
// it in our parent
- // set the substate as generating code for the types defined in our scope
+ // Set the substate as generating code for the types defined in our scope.
this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_SCOPE);
- // all we have to do is to visit the scope and generate code
+
if (this->visit_scope (node) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_exception_cdr_op_ci"
"::visit_exception - "
- "codegen for scope failed\n"), -1);
+ "codegen for scope failed\n"),
+ -1);
}
// set the sub state as generating code for the output operator
@@ -74,9 +75,8 @@ be_visitor_exception_cdr_op_ci::visit_exception (be_exception *node)
// do we have any members?
if (node->nmembers () > 0)
{
- be_visitor_context* new_ctx =
- new be_visitor_context (*this->ctx_);
- be_visitor_cdr_op_field_decl field_decl (new_ctx);
+ be_visitor_context new_ctx (*this->ctx_);
+ be_visitor_cdr_op_field_decl field_decl (&new_ctx);
field_decl.visit_scope (node);
// some members
@@ -86,14 +86,15 @@ be_visitor_exception_cdr_op_ci::visit_exception (be_exception *node)
<< "// now marshal the members (if any)" << be_nl
<< "if (" << be_idt_nl;
- // all we have to do is to visit the scope and generate code
if (this->visit_scope (node) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_exception_cdr_op_ci::"
"visit_exception - "
- "codegen for scope failed\n"), -1);
+ "codegen for scope failed\n"),
+ -1);
}
+
*os << be_uidt_nl << ")"
<< be_idt_nl
<< "return 1;" << be_uidt_nl
@@ -105,17 +106,19 @@ be_visitor_exception_cdr_op_ci::visit_exception (be_exception *node)
}
else
{
- // no members
+ // No members.
*os << "// first marshal the repository ID" << be_nl
<< "if (strm << _tao_aggregate._id ())" << be_idt_nl
<< "return 1;" << be_uidt_nl
<< "else" << be_idt_nl
<< "return 0;" << be_uidt << be_uidt_nl;
}
+
*os << "}\n\n";
- // set the substate as generating code for the input operator
+ // Set the substate as generating code for the input operator.
this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_INPUT);
+
*os << "ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &";
if (node->nmembers () > 0)
@@ -137,25 +140,24 @@ be_visitor_exception_cdr_op_ci::visit_exception (be_exception *node)
// caller, and they invoke this method only to demarshal the
// members. While the marshaling method encodes both...
- // do we have any members?
+ // Do we have any members?
if (node->nmembers () > 0)
{
- be_visitor_context* new_ctx =
- new be_visitor_context (*this->ctx_);
- be_visitor_cdr_op_field_decl field_decl (new_ctx);
+ be_visitor_context new_ctx (*this->ctx_);
+ be_visitor_cdr_op_field_decl field_decl (&new_ctx);
field_decl.visit_scope (node);
- // some members
+ // Some members.
*os << "// now marshal the members" << be_nl
<< "if (" << be_idt_nl;
- // all we have to do is to visit the scope and generate code
if (this->visit_scope (node) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_exception_cdr_op_ci::"
"visit_exception - "
- "codegen for scope failed\n"), -1);
+ "codegen for scope failed\n"),
+ -1);
}
*os << be_uidt_nl << ")"
<< be_idt_nl
@@ -167,6 +169,7 @@ be_visitor_exception_cdr_op_ci::visit_exception (be_exception *node)
{
*os << "return 1;" << be_uidt_nl;
}
+
*os << "}\n\n";
node->cli_inline_cdr_op_gen (1);
@@ -191,5 +194,6 @@ be_visitor_exception_cdr_op_ci::post_process (be_decl *bd)
break;
};
}
+
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_cs.cpp
index dee2cc2c137..117cb7a9dc5 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception/cdr_op_cs.cpp
@@ -54,7 +54,6 @@ be_visitor_exception_cdr_op_cs::visit_exception (be_exception *node)
-1);
}
-
node->cli_stub_cdr_op_gen (1);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/ctor_assign.cpp b/TAO/TAO_IDL/be/be_visitor_exception/ctor_assign.cpp
index 972f0f96a1b..3ef2190e657 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception/ctor_assign.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception/ctor_assign.cpp
@@ -196,11 +196,12 @@ int be_visitor_exception_ctor_assign::visit_predefined_type (
{
TAO_OutStream *os = this->ctx_->stream ();
be_decl *bd = this->ctx_->node ();
+ AST_PredefinedType::PredefinedType pt = node->pt ();
os->indent ();
// Check if the type is an any.
- if (node->pt () == AST_PredefinedType::PT_any)
+ if (pt == AST_PredefinedType::PT_any)
{
if (this->ctx_->exception ()) // Special constructor.
{
@@ -213,7 +214,8 @@ int be_visitor_exception_ctor_assign::visit_predefined_type (
<< bd->local_name () << ";\n";
}
}
- else if (node->pt () == AST_PredefinedType::PT_pseudo)
+ else if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
if (this->ctx_->exception ()) // Special constructor.
{
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp
index dc391fb8607..3dbfc3d711e 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception/exception_ch.cpp
@@ -137,7 +137,6 @@ int be_visitor_exception_ch::visit_exception (be_exception *node)
}
os->gen_endif ();
-
node->cli_hdr_gen (1);
}
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_ci.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_ci.cpp
index c2c00f93335..dd6ffb31917 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception/exception_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception/exception_ci.cpp
@@ -39,27 +39,30 @@ be_visitor_exception_ci::~be_visitor_exception_ci (void)
// visit the Exception node and its scope
int be_visitor_exception_ci::visit_exception (be_exception *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // output stream
+ TAO_OutStream *os = this->ctx_->stream ();
if (!node->cli_inline_gen () && !node->imported ())
{
os = this->ctx_->stream ();
os->indent ();
+
*os << "// *************************************************************"
<< be_nl;
*os << "// Inline operations for exception " << node->name () << be_nl;
*os << "// *************************************************************\n\n";
- // generate inline code required of any anonymous types of members
+ // Generate inline code required of any anonymous types of members.
if (this->visit_scope (node) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
"(%N:%l) be_visitor_exception::"
"visit_exception -"
- "code for inline failed\n"), -1);
+ "code for inline failed\n"),
+ -1);
}
node->cli_inline_gen (I_TRUE);
}
+
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp
index 39ed433879f..a165fcc200f 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception/exception_cs.cpp
@@ -28,6 +28,7 @@ ACE_RCSID (be_visitor_exception,
// ***************************************************************************
// For client stubs.
// ***************************************************************************
+
be_visitor_exception_cs::be_visitor_exception_cs (be_visitor_context *ctx)
: be_visitor_exception (ctx)
{
diff --git a/TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp b/TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp
index 22b1331222f..3b6c3bcda07 100644
--- a/TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_exception/exception_ctor.cpp
@@ -119,14 +119,17 @@ int be_visitor_exception_ctor::visit_field (be_field *node)
int be_visitor_exception_ctor::visit_array (be_array *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
-
- // set the right type;
+ TAO_OutStream *os = this->ctx_->stream ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
*os << "const ";
@@ -134,10 +137,14 @@ int be_visitor_exception_ctor::visit_array (be_array *node)
if (this->ctx_->state () != TAO_CodeGen::TAO_EXCEPTION_CTOR_CH
&& !tdef)
- *os << this->ctx_->scope ()->full_name () << "::";
+ {
+ *os << this->ctx_->scope ()->full_name () << "::";
+ }
if (!tdef)
- *os << "_";
+ {
+ *os << "_";
+ }
*os << bt->nested_type_name (this->ctx_->scope ());
@@ -146,112 +153,163 @@ int be_visitor_exception_ctor::visit_array (be_array *node)
int be_visitor_exception_ctor::visit_enum (be_enum *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
-
- // set the right type;
+ TAO_OutStream *os = this->ctx_->stream ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH)
- *os << bt->nested_type_name (this->ctx_->scope ());
+ {
+ *os << bt->nested_type_name (this->ctx_->scope ());
+ }
else
- *os << bt->name ();
+ {
+ *os << bt->name ();
+ }
+
return 0;
}
int be_visitor_exception_ctor::visit_interface (be_interface *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
-
- // set the right type;
+ TAO_OutStream *os = this->ctx_->stream ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH)
- *os << "const " << bt->nested_type_name (this->ctx_->scope (), "_ptr ");
+ {
+ *os << "const " << bt->nested_type_name (this->ctx_->scope (), "_ptr ");
+ }
else
- *os << "const " << bt->name () << "_ptr ";
+ {
+ *os << "const " << bt->name () << "_ptr ";
+ }
+
return 0;
}
int be_visitor_exception_ctor::visit_interface_fwd (be_interface_fwd *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
-
- // set the right type;
+ TAO_OutStream *os = this->ctx_->stream ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH)
- *os << "const " << bt->nested_type_name (this->ctx_->scope (), "_ptr ");
+ {
+ *os << "const " << bt->nested_type_name (this->ctx_->scope (), "_ptr ");
+ }
else
- *os << "const " << bt->name () << "_ptr ";
+ {
+ *os << "const " << bt->name () << "_ptr ";
+ }
+
return 0;
}
int be_visitor_exception_ctor::visit_predefined_type (be_predefined_type *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
-
- // set the right type;
+ TAO_OutStream *os = this->ctx_->stream ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
+
+ AST_PredefinedType::PredefinedType pt = node->pt ();
- // check if the type is an any
- if (node->pt () == AST_PredefinedType::PT_any)
+ if (pt == AST_PredefinedType::PT_any)
{
if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH)
- *os << "const " << bt->nested_type_name (this->ctx_->scope ());
+ {
+ *os << "const " << bt->nested_type_name (this->ctx_->scope ());
+ }
else
- *os << "const " << bt->name ();
+ {
+ *os << "const " << bt->name () << "_ptr ";
+ }
+
*os << " &";
return 0;
- } // end of if
- else if (node->pt () == AST_PredefinedType::PT_pseudo) // e.g., CORBA::Object
+ }
+ else if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH)
- *os << "const " << bt->nested_type_name (this->ctx_->scope (), "_ptr ");
+ {
+ *os << "const " << bt->nested_type_name (this->ctx_->scope (),
+ "_ptr ");
+ }
else
- *os << "const " << bt->name () << "_ptr ";
- } // end else if
- else // simple predefined types
+ {
+ *os << "const " << bt->name () << "_ptr ";
+ }
+ }
+ else
{
if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH)
- *os << bt->nested_type_name (this->ctx_->scope ());
+ {
+ *os << bt->nested_type_name (this->ctx_->scope ());
+ }
else
- *os << bt->name ();
- } // end of else
+ {
+ *os << bt->name ();
+ }
+ }
return 0;
}
int be_visitor_exception_ctor::visit_sequence (be_sequence *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
-
- // set the right type;
+ TAO_OutStream *os = this->ctx_->stream ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH)
- *os << "const " << bt->nested_type_name (this->ctx_->scope ());
+ {
+ *os << "const " << bt->nested_type_name (this->ctx_->scope ());
+ }
else
- *os << "const " << bt->name ();
+ {
+ *os << "const " << bt->name ();
+ }
+
*os << " &";
return 0;
}
@@ -274,38 +332,54 @@ int be_visitor_exception_ctor::visit_string (be_string *node)
int be_visitor_exception_ctor::visit_structure (be_structure *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
-
- // set the right type;
+ TAO_OutStream *os = this->ctx_->stream ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH)
- *os << "const " << bt->nested_type_name (this->ctx_->scope ());
+ {
+ *os << "const " << bt->nested_type_name (this->ctx_->scope ());
+ }
else
- *os << "const " << bt->name ();
+ {
+ *os << "const " << bt->name ();
+ }
+
*os << " &";
return 0;
}
int be_visitor_exception_ctor::visit_union (be_union *node)
{
- TAO_OutStream *os = this->ctx_->stream (); // get output stream
-
- // set the right type;
+ TAO_OutStream *os = this->ctx_->stream ();
be_type *bt;
+
if (this->ctx_->alias ())
- bt = this->ctx_->alias ();
+ {
+ bt = this->ctx_->alias ();
+ }
else
- bt = node;
+ {
+ bt = node;
+ }
if (this->ctx_->state () == TAO_CodeGen::TAO_EXCEPTION_CTOR_CH)
- *os << "const " << bt->nested_type_name (this->ctx_->scope ());
+ {
+ *os << "const " << bt->nested_type_name (this->ctx_->scope ());
+ }
else
- *os << "const " << bt->name ();
+ {
+ *os << "const " << bt->name ();
+ }
+
*os << " &";
return 0;
}
@@ -313,6 +387,7 @@ int be_visitor_exception_ctor::visit_union (be_union *node)
int be_visitor_exception_ctor::visit_typedef (be_typedef *node)
{
this->ctx_->alias (node);
+
if (node->primitive_base_type ()->accept (this) == -1)
{
ACE_ERROR_RETURN ((LM_ERROR,
@@ -321,6 +396,7 @@ int be_visitor_exception_ctor::visit_typedef (be_typedef *node)
"accept on primitive type failed\n"),
-1);
}
+
this->ctx_->alias (0);
return 0;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp b/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp
index ff4ba91daa7..083cd8b4e8c 100644
--- a/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_field/field_ch.cpp
@@ -323,25 +323,21 @@ be_visitor_field_ch::visit_predefined_type (be_predefined_type *node)
bt = node;
}
- if (node->pt () == AST_PredefinedType::PT_pseudo)
+ if (node->pt () == AST_PredefinedType::PT_object)
{
- // Check if we are dealing with a CORBA::Object,
- if (!ACE_OS::strcmp (node->local_name ()->get_string (), "Object"))
+ *os << bt->name () << "_var";
+ }
+ else if (node->pt () == AST_PredefinedType::PT_pseudo)
+ {
+ // ACE_NESTED_CLASS macro generated by nested_type_name
+ // is not necessary in all cases.
+ if (bt->defined_in ()->scope_node_type () == AST_Decl::NT_interface)
{
- *os << bt->name () << "_var";
+ *os << bt->nested_type_name (this->ctx_->scope (), "_var");
}
else
{
- // ACE_NESTED_CLASS macro generated by nested_type_name
- // is not necessary in all cases.
- if (bt->defined_in ()->scope_node_type () == AST_Decl::NT_interface)
- {
- *os << bt->nested_type_name (this->ctx_->scope (), "_var");
- }
- else
- {
- *os << bt->name () << "_var";
- }
+ *os << bt->name () << "_var";
}
}
else
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/interceptors_info_rettype.cpp b/TAO/TAO_IDL/be/be_visitor_operation/interceptors_info_rettype.cpp
index c0bab945186..5a244b36f95 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/interceptors_info_rettype.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/interceptors_info_rettype.cpp
@@ -157,6 +157,7 @@ be_visitor_operation_interceptors_info_rettype::visit_predefined_type (be_predef
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
*os << bt->name () << "_ptr";
break;
case AST_PredefinedType::PT_any:
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/interceptors_result.cpp b/TAO/TAO_IDL/be/be_visitor_operation/interceptors_result.cpp
index 21c75df5801..817be665329 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/interceptors_result.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/interceptors_result.cpp
@@ -137,6 +137,7 @@ be_visitor_operation_interceptors_result::visit_predefined_type (be_predefined_t
*os << "CORBA::Any::from_octet (this->_result);" << be_nl;
break;
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
case AST_PredefinedType::PT_any:
case AST_PredefinedType::PT_long:
case AST_PredefinedType::PT_ulong:
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp
index f513797124b..ff0c96d5d75 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/rettype.cpp
@@ -162,9 +162,10 @@ be_visitor_operation_rettype::visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
*os << bt->name ();
- // If it's not TCKind, it's either TypeCode or ValueBase.
+ // If it's not TCKind, it's either Object, TypeCode or ValueBase.
if (ACE_OS::strcmp (bt->local_name ()->get_string (), "TCKind") != 0)
{
*os << "_ptr";
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_assign_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_assign_ss.cpp
index c97bc35ab76..073f6dd5d97 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_assign_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/rettype_assign_ss.cpp
@@ -117,6 +117,7 @@ visit_predefined_type (be_predefined_type *node)
case AST_PredefinedType::PT_void:
break;
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
case AST_PredefinedType::PT_any:
default:
*os << "_tao_retval = ";
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_marshal_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_marshal_ss.cpp
index dc949f8286d..5d987d4cf1e 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_marshal_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/rettype_marshal_ss.cpp
@@ -259,6 +259,7 @@ int be_visitor_operation_rettype_marshal_ss::visit_predefined_type (be_predefine
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
*os << "_tao_retval.in ()";
break;
case AST_PredefinedType::PT_any:
@@ -300,6 +301,7 @@ int be_visitor_operation_rettype_marshal_ss::visit_predefined_type (be_predefine
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
*os << "_tao_retval.inout ()";
break;
case AST_PredefinedType::PT_any:
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_return_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_return_cs.cpp
index d5133f22ea9..84e0d9b0de3 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_return_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/rettype_return_cs.cpp
@@ -100,13 +100,16 @@ be_visitor_operation_rettype_return_cs::visit_valuetype_fwd (be_valuetype_fwd *)
}
int
-be_visitor_operation_rettype_return_cs::visit_predefined_type (be_predefined_type *node)
+be_visitor_operation_rettype_return_cs::visit_predefined_type (
+ be_predefined_type *node
+ )
{
TAO_OutStream *os = this->ctx_->stream ();
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
*os << "_tao_retval._retn ()";
break;
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp
index 9cd41f14904..b86e31d3883 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_cs.cpp
@@ -219,6 +219,7 @@ be_visitor_operation_rettype_vardecl_cs::visit_predefined_type (be_predefined_ty
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
*os << bt->name () << "_var _tao_retval ("
<< bt->name () << "::_nil ());";
diff --git a/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp b/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp
index 2fd79a86c57..5f1ae49f1a6 100644
--- a/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_operation/rettype_vardecl_ss.cpp
@@ -138,6 +138,7 @@ visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
*os << bt->name () << "_var _tao_retval;\n";
break;
case AST_PredefinedType::PT_any:
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp
index e180e5f17b1..03c5ebe2613 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/buffer_type.cpp
@@ -69,8 +69,10 @@ int
be_visitor_sequence_buffer_type::visit_predefined_type (be_predefined_type *node)
{
TAO_OutStream *os = this->ctx_->stream ();
+ AST_PredefinedType::PredefinedType pt = node->pt ();
- if (node->pt () == AST_PredefinedType::PT_pseudo)
+ if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
*os << node->name () << "_ptr";
}
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
index 913121af8eb..4d0175a46e3 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/cdr_op_cs.cpp
@@ -146,6 +146,7 @@ be_visitor_sequence_cdr_op_cs::visit_sequence (be_sequence *node)
// Set the sub state as generating code for the input operator.
os->indent ();
this->ctx_->sub_state(TAO_CodeGen::TAO_CDR_INPUT);
+
*os << "CORBA::Boolean operator>> (" << be_idt << be_idt_nl
<< "TAO_InputCDR &strm," << be_nl
<< node->name () << " &_tao_sequence" << be_uidt_nl
@@ -290,6 +291,7 @@ be_visitor_sequence_cdr_op_cs::visit_predefined_type (
switch (node->pt ())
{
+ case AST_PredefinedType::PT_object:
case AST_PredefinedType::PT_pseudo:
case AST_PredefinedType::PT_any:
return this->visit_node (node);
@@ -547,9 +549,9 @@ be_visitor_sequence_cdr_op_cs::visit_node (be_type *bt)
// Initialize a boolean variable.
*os << "CORBA::Boolean _tao_marshal_flag = 1;" << be_nl;
- // we get here if the "type" of individual elements of the sequence is not a
- // primitive type. In this case, we are left with no other alternative but to
- // encode/decode element by element
+ // We get here if the "type" of individual elements of the sequence is not a
+ // primitive type. In this case, we are left with no other alternative but
+ // to encode/decode element by element.
AST_Expression *expr = node->max_size ();
@@ -578,9 +580,9 @@ be_visitor_sequence_cdr_op_cs::visit_node (be_type *bt)
-1);
}
- // If the type was a string, an obj ref, or a pseudo-obj, we are dealing with
- // a manager type and hence we must use the appropriate in () and out ()
- // methods.
+ // If the type was a string, an obj ref, or a pseudo-obj, we are dealing
+ // with a manager type and hence we must use the appropriate in() and
+ // out() methods.
//
switch (this->ctx_->sub_state ())
@@ -633,6 +635,7 @@ be_visitor_sequence_cdr_op_cs::visit_node (be_type *bt)
}
*os << "_free (tmp.inout ());" << be_uidt_nl;
+
break;
case AST_Decl::NT_string:
case AST_Decl::NT_wstring:
@@ -666,19 +669,24 @@ be_visitor_sequence_cdr_op_cs::visit_node (be_type *bt)
*os << "_tao_marshal_flag = (strm >> "
<< "CORBA::Any::to_wstring (_tao_sequence[i].out (), ";
}
- *os << str->max_size ()->ev ()->u.ulval << "));" << be_uidt_nl;
+
+ *os << str->max_size ()->ev ()->u.ulval << "));"
+ << be_uidt_nl;
}
}
break;
case AST_Decl::NT_interface:
case AST_Decl::NT_interface_fwd:
- *os << "_tao_marshal_flag = (strm >> _tao_sequence[i].out ());" << be_uidt_nl;
+ *os << "_tao_marshal_flag = (strm >> _tao_sequence[i].out ());"
+ << be_uidt_nl;
+
break;
case AST_Decl::NT_pre_defined:
{
- // We need to separately handle this case of pseudo objects because
- // they have a _var type.
- be_predefined_type *pt = be_predefined_type::narrow_from_decl (bt);
+ // We need to separately handle this case of pseudo objects
+ // because they have a _var type.
+ be_predefined_type *pt =
+ be_predefined_type::narrow_from_decl (bt);
if (!pt)
{
@@ -689,22 +697,31 @@ be_visitor_sequence_cdr_op_cs::visit_node (be_type *bt)
-1);
}
- if (pt->pt () == AST_PredefinedType::PT_pseudo)
+ AST_PredefinedType::PredefinedType pdt = pt->pt ();
+
+ if (pdt == AST_PredefinedType::PT_pseudo
+ || pdt == AST_PredefinedType::PT_object)
{
*os << "_tao_marshal_flag = (strm >> _tao_sequence[i].out ());"
<< be_uidt_nl;
}
else
{
- *os << "_tao_marshal_flag = (strm >> _tao_sequence[i]);" << be_uidt_nl;
+ *os << "_tao_marshal_flag = (strm >> _tao_sequence[i]);"
+ << be_uidt_nl;
}
}
+
break;
default:
- *os << "_tao_marshal_flag = (strm >> _tao_sequence[i]);" << be_uidt_nl;
+ *os << "_tao_marshal_flag = (strm >> _tao_sequence[i]);"
+ << be_uidt_nl;
+
break;
}
+
*os << "}";
+
break;
case TAO_CodeGen::TAO_CDR_OUTPUT:
switch (bt->node_type ())
@@ -736,16 +753,22 @@ be_visitor_sequence_cdr_op_cs::visit_node (be_type *bt)
// function signature, MSVC++ 5.0 needs the const cast,
// and many other compilers just won't do it.
*os << "#if defined (_MSC_VER) && (_MSC_VER <= 1100)";
+
os->indent ();
+
*os << be_idt << be_idt_nl;
*os << "ACE_const_cast (const " << this->ctx_->node ()->name ()
<< ", _tao_sequence)[i]\n";
*os << "#else";
+
os->indent ();
+
*os << be_nl;
*os << "_tao_sequence[i]\n";
*os << "#endif /* defined (_MSC_VER) && (_MSC_VER <= 1100) */";
+
os->indent ();
+
*os << be_uidt_nl;
*os << ")" << be_uidt << be_uidt_nl;
*os << ");" << be_uidt_nl;
@@ -761,16 +784,19 @@ be_visitor_sequence_cdr_op_cs::visit_node (be_type *bt)
*os << "_forany tmp (tmp_var.inout ());" << be_nl;
*os << "_tao_marshal_flag = (strm << tmp";
+
break;
case AST_Decl::NT_string:
case AST_Decl::NT_wstring:
case AST_Decl::NT_interface:
case AST_Decl::NT_interface_fwd:
*os << "_tao_marshal_flag = (strm << _tao_sequence[i].in ()";
+
break;
case AST_Decl::NT_pre_defined:
{
- be_predefined_type *pt = be_predefined_type::narrow_from_decl (bt);
+ be_predefined_type *pt =
+ be_predefined_type::narrow_from_decl (bt);
if (!pt)
{
@@ -781,7 +807,10 @@ be_visitor_sequence_cdr_op_cs::visit_node (be_type *bt)
-1);
}
- if (pt->pt () == AST_PredefinedType::PT_pseudo)
+ AST_PredefinedType::PredefinedType pdt = pt->pt ();
+
+ if (pdt == AST_PredefinedType::PT_pseudo
+ || pdt == AST_PredefinedType::PT_object)
{
*os << "_tao_marshal_flag = (strm << _tao_sequence[i].in ()";
}
@@ -790,13 +819,17 @@ be_visitor_sequence_cdr_op_cs::visit_node (be_type *bt)
*os << "_tao_marshal_flag = (strm << _tao_sequence[i]";
}
}
+
break;
default:
*os << "_tao_marshal_flag = (strm << _tao_sequence[i]";
+
break;
}
+
*os << ");" << be_uidt_nl
<< "}";
+
break;
default:
ACE_ERROR_RETURN ((LM_ERROR,
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp
index 150b3ea2209..1e80b210750 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/elemtype.cpp
@@ -84,6 +84,7 @@ be_visitor_sequence_elemtype::visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
{
int is_pseudo_object =
ACE_OS::strcmp (node->local_name ()->get_string (),
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp
index af5d0e45be4..b4ecd5ee2cb 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ch.cpp
@@ -101,11 +101,12 @@ be_visitor_sequence_ch::gen_bounded_obj_sequence (be_sequence *node)
*os << "// = Accessors." << be_nl;
be_predefined_type *prim = be_predefined_type::narrow_from_decl (pt);
+
int is_pseudo_object =
pt->node_type () == AST_Decl::NT_pre_defined
- && prim && prim->pt () == AST_PredefinedType::PT_pseudo
- && ACE_OS::strcmp (prim->local_name ()->get_string (),
- "Object") != 0;
+ && prim
+ && prim->pt () == AST_PredefinedType::PT_object;
+
int is_valuetype = 0;
// operator[]
@@ -116,13 +117,19 @@ be_visitor_sequence_ch::gen_bounded_obj_sequence (be_sequence *node)
else
{
be_interface *bf = be_interface::narrow_from_decl (pt);
+
if (bf != 0)
- is_valuetype = bf->is_valuetype ();
+ {
+ is_valuetype = bf->is_valuetype ();
+ }
else
{
be_interface_fwd *bff = be_interface_fwd::narrow_from_decl (pt);
+
if (bff != 0)
- is_valuetype = bff->is_valuetype ();
+ {
+ is_valuetype = bff->is_valuetype ();
+ }
}
if (is_valuetype)
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp
index 589d4358b25..b98f1ef2b0c 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_ci.cpp
@@ -420,9 +420,9 @@ be_visitor_sequence_ci::gen_bounded_obj_sequence (be_sequence *node)
int is_pseudo_object =
pt->node_type () == AST_Decl::NT_pre_defined
- && prim && prim->pt () == AST_PredefinedType::PT_pseudo
- && ACE_OS::strcmp (prim->local_name ()->get_string (),
- "Object") != 0;
+ && prim
+ && prim->pt () == AST_PredefinedType::PT_object;
+
// operator[].
if (is_pseudo_object)
{
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_cs.cpp
index 9aedb1f3020..cc7a8f74a82 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_obj_sequence_cs.cpp
@@ -219,10 +219,9 @@ be_visitor_sequence_cs::gen_bounded_obj_sequence (be_sequence *node)
be_predefined_type *prim = be_predefined_type::narrow_from_decl (pt);
- if ((pt->node_type () != AST_Decl::NT_pre_defined)
+ if (pt->node_type () != AST_Decl::NT_pre_defined
|| (prim
- && (prim->pt () == AST_PredefinedType::PT_pseudo)
- && (!ACE_OS::strcmp (prim->local_name ()->get_string (), "Object"))))
+ && prim->pt () == AST_PredefinedType::PT_object))
{
// Pseudo objects do not require these methods.
*os << "void" << be_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp
index afc53785a3d..8a4c1dd9f63 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_bounded_sequence_ch.cpp
@@ -110,7 +110,9 @@ be_visitor_sequence_ch::gen_bounded_sequence (be_sequence *node)
// operator[]
*os << "const ";
+
bt->accept (&visitor);
+
*os << " &operator[] (CORBA::ULong i) const;" << be_nl << be_nl;
// Static Operations
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp
index 89ed1572fbe..bae4ab0f4c6 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ch.cpp
@@ -105,11 +105,12 @@ be_visitor_sequence_ch::gen_unbounded_obj_sequence (be_sequence *node)
// operator[]
be_predefined_type *prim = be_predefined_type::narrow_from_decl (pt);
+
int is_pseudo_object =
pt->node_type () == AST_Decl::NT_pre_defined
- && prim && prim->pt () == AST_PredefinedType::PT_pseudo
- && ACE_OS::strcmp (prim->local_name ()->get_string (),
- "Object") != 0;
+ && prim
+ && prim->pt () == AST_PredefinedType::PT_object;
+
int is_valuetype = 0;
if (is_pseudo_object)
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp
index f1da3ed2854..92cce284eab 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_ci.cpp
@@ -397,11 +397,12 @@ be_visitor_sequence_ci::gen_unbounded_obj_sequence (be_sequence *node)
// Operator[].
be_predefined_type *prim = be_predefined_type::narrow_from_decl (pt);
+
int is_pseudo_object =
pt->node_type () == AST_Decl::NT_pre_defined
- && prim && prim->pt () == AST_PredefinedType::PT_pseudo
- && ACE_OS::strcmp (prim->local_name ()->get_string (),
- "Object") != 0;
+ && prim
+ && prim->pt () == AST_PredefinedType::PT_object;
+
if (is_pseudo_object)
{
*os << "ACE_INLINE TAO_Pseudo_Object_Manager<";
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_cs.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_cs.cpp
index 712e7dc2b74..7660cfb5a2a 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_obj_sequence_cs.cpp
@@ -289,10 +289,10 @@ be_visitor_sequence_cs::gen_unbounded_obj_sequence (be_sequence *node)
be_predefined_type *prim = be_predefined_type::narrow_from_decl (pt);
- if (! is_valuetype
- && (pt->node_type () != AST_Decl::NT_pre_defined) ||
- (prim && (prim->pt () == AST_PredefinedType::PT_pseudo) &&
- (!ACE_OS::strcmp (prim->local_name ()->get_string (), "Object"))))
+ if (!is_valuetype
+ && (pt->node_type () != AST_Decl::NT_pre_defined)
+ || (prim &&
+ prim->pt () == AST_PredefinedType::PT_object))
{
// Pseudo objects do not require these methods.
*os << "void " << be_nl
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp
index 0e254c20ad9..f66a9d87529 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/gen_unbounded_sequence_ch.cpp
@@ -42,7 +42,7 @@ be_visitor_sequence_ch::gen_unbounded_sequence (be_sequence *node)
{
int status =
this->gen_anonymous_base_type (bt,
- TAO_CodeGen::TAO_SEQUENCE_CH);
+ TAO_CodeGen::TAO_SEQUENCE_CH);
if (status == -1)
{
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
index 81acaff310c..417254f3257 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ch.cpp
@@ -658,7 +658,8 @@ be_visitor_sequence_ch::gen_var_defn (be_sequence *node)
&& nt != AST_Decl::NT_interface
&& nt != AST_Decl::NT_interface_fwd
&& nt != AST_Decl::NT_array
- && pdt != AST_PredefinedType::PT_pseudo)
+ && pdt != AST_PredefinedType::PT_pseudo
+ && pdt != AST_PredefinedType::PT_object)
{
*os << "const ";
diff --git a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp
index 398680b7b7b..ff1196c2cdb 100644
--- a/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_sequence/sequence_ci.cpp
@@ -437,7 +437,8 @@ be_visitor_sequence_ci::gen_var_impl (be_sequence *node)
&& nt != AST_Decl::NT_interface
&& nt != AST_Decl::NT_interface_fwd
&& nt != AST_Decl::NT_array
- && pdt != AST_PredefinedType::PT_pseudo)
+ && pdt != AST_PredefinedType::PT_pseudo
+ && pdt != AST_PredefinedType::PT_object)
{
// Const.
*os << "ACE_INLINE const ";
diff --git a/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp b/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp
index 93cd879d830..47b164b60d5 100644
--- a/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_typecode/typecode_defn.cpp
@@ -2085,7 +2085,7 @@ be_visitor_typecode_defn::gen_encapsulation (be_union_branch *node)
this->tc_offset_ += sizeof (ACE_CDR::ULong);
break;
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
// enum
os->print ("0x%08.8x", (unsigned long)ev->u.eval);
// size of any aligned to 4 bytes
@@ -2168,7 +2168,7 @@ be_visitor_typecode_defn::gen_encapsulation (be_union_branch *node)
this->tc_offset_ += sizeof (ACE_CDR::ULong);
break;
- case AST_Expression::EV_any:
+ case AST_Expression::EV_enum:
// enum
os->print ("0x%08.8x", (unsigned long)dv.u.enum_val);
// size of short/wchar aligned to 4 bytes
diff --git a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp b/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp
index 8380fdbbd6b..13ad7c06f50 100644
--- a/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_typedef/typedef_ch.cpp
@@ -326,8 +326,11 @@ be_visitor_typedef_ch::visit_predefined_type (be_predefined_type *node)
*os << "typedef " << bt->nested_type_name (scope)
<< " " << tdef->nested_type_name (scope) << ";" << be_nl;
- if ((node->pt () == AST_PredefinedType::PT_pseudo) ||
- (node->pt () == AST_PredefinedType::PT_any))
+ AST_PredefinedType::PredefinedType pt = node->pt ();
+
+ if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_any
+ || pt == AST_PredefinedType::PT_object)
{
// Typedef the _ptr and _var.
*os << "typedef " << bt->nested_type_name (scope, "_ptr")
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp
index 14000e5f1e9..cfdca57943c 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_ci.cpp
@@ -390,24 +390,30 @@ be_visitor_union_branch_cdr_op_ci::visit_predefined_type (be_predefined_type *no
-1);
}
+ AST_PredefinedType::PredefinedType pt = node->pt ();
+
// Check what is the code generations substate. Are we generating code for
// the in/out operators for our parent or for us?
switch (this->ctx_->sub_state ())
{
case TAO_CodeGen::TAO_CDR_INPUT:
+ if (pt == AST_PredefinedType::PT_object)
+ {
+ char *local_name = node->local_name ()->get_string ();
+
+ *os << "CORBA::Object_var _tao_union_tmp;" << be_nl;
+
+ *os << "result = strm >> _tao_union_tmp.out ();" << be_nl
+ << "if (result)" << be_idt_nl
+ << "{" << be_idt_nl
+ << "_tao_union." << f->local_name () << " (_tao_union_tmp.in ());";
- if (node->pt () == AST_PredefinedType::PT_pseudo)
+ }
+ else if (pt == AST_PredefinedType::PT_pseudo)
{
char *local_name = node->local_name ()->get_string ();
- if (!ACE_OS::strcmp (local_name, "TypeCode"))
- {
- *os << "CORBA::TypeCode_var _tao_union_tmp;" << be_nl;
- }
- else if (!ACE_OS::strcmp (local_name, "Object"))
- {
- *os << "CORBA::Object_var _tao_union_tmp;" << be_nl;
- }
+ *os << "CORBA::TypeCode_var _tao_union_tmp;" << be_nl;
//@@TODO - case for ValueBase.
@@ -417,7 +423,7 @@ be_visitor_union_branch_cdr_op_ci::visit_predefined_type (be_predefined_type *no
<< "_tao_union." << f->local_name () << " (_tao_union_tmp.in ());";
}
- else if (node->pt () == AST_PredefinedType::PT_char)
+ else if (pt == AST_PredefinedType::PT_char)
{
*os << "CORBA::Char _tao_union_tmp;" << be_nl
<< "CORBA::Any::to_char _tao_union_helper "
@@ -428,7 +434,7 @@ be_visitor_union_branch_cdr_op_ci::visit_predefined_type (be_predefined_type *no
<< "_tao_union." << f->local_name ()
<< " (_tao_union_tmp);";
}
- else if (node->pt () == AST_PredefinedType::PT_wchar)
+ else if (pt == AST_PredefinedType::PT_wchar)
{
*os << "CORBA::WChar _tao_union_tmp;" << be_nl
<< "CORBA::Any::to_wchar _tao_union_helper "
@@ -439,7 +445,7 @@ be_visitor_union_branch_cdr_op_ci::visit_predefined_type (be_predefined_type *no
<< "_tao_union." << f->local_name ()
<< " (_tao_union_tmp);";
}
- else if (node->pt () == AST_PredefinedType::PT_octet)
+ else if (pt == AST_PredefinedType::PT_octet)
{
*os << "CORBA::Octet _tao_union_tmp;" << be_nl
<< "CORBA::Any::to_octet _tao_union_helper "
@@ -450,7 +456,7 @@ be_visitor_union_branch_cdr_op_ci::visit_predefined_type (be_predefined_type *no
<< "_tao_union." << f->local_name ()
<< " (_tao_union_tmp);";
}
- else if (node->pt () == AST_PredefinedType::PT_boolean)
+ else if (pt == AST_PredefinedType::PT_boolean)
{
*os << "CORBA::Boolean _tao_union_tmp;" << be_nl
<< "CORBA::Any::to_boolean _tao_union_helper "
@@ -481,26 +487,27 @@ be_visitor_union_branch_cdr_op_ci::visit_predefined_type (be_predefined_type *no
*os << "result = ";
- if (node->pt () == AST_PredefinedType::PT_pseudo)
+ if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
*os << "strm << _tao_union." << f->local_name () << " ();";
}
- else if (node->pt () == AST_PredefinedType::PT_char)
+ else if (pt == AST_PredefinedType::PT_char)
{
*os << "strm << CORBA::Any::from_char (_tao_union."
<< f->local_name () << " ());";
}
- else if (node->pt () == AST_PredefinedType::PT_wchar)
+ else if (pt == AST_PredefinedType::PT_wchar)
{
*os << "strm << CORBA::Any::from_wchar (_tao_union."
<< f->local_name () << " ());";
}
- else if (node->pt () == AST_PredefinedType::PT_octet)
+ else if (pt == AST_PredefinedType::PT_octet)
{
*os << "strm << CORBA::Any::from_octet (_tao_union."
<< f->local_name () << " ());";
}
- else if (node->pt () == AST_PredefinedType::PT_boolean)
+ else if (pt == AST_PredefinedType::PT_boolean)
{
*os << "strm << CORBA::Any::from_boolean (_tao_union."
<< f->local_name () << " ());";
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/private_ch.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/private_ch.cpp
index 576444cd9e3..9d28f6fb19f 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/private_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/private_ch.cpp
@@ -246,18 +246,15 @@ be_visitor_union_branch_private_ch::visit_predefined_type (
TAO_OutStream *os = this->ctx_->stream ();
- if (node->pt () == AST_PredefinedType::PT_pseudo)
- {
- // Cannot have an object inside of a union.
- // Check if we are dealing with a CORBA::Object
- if (!ACE_OS::strcmp (node->local_name ()->get_string (), "Object"))
- {
- *os << bt->name () << "_var"
- << " *" << ub->local_name () << "_;" << be_nl;
- }
- else
- *os << bt->nested_type_name (bu, "_ptr") << " " << ub->local_name ()
- << "_;" << be_nl;
+ if (node->pt () == AST_PredefinedType::PT_object)
+ {
+ *os << bt->name () << "_var"
+ << " *" << ub->local_name () << "_;" << be_nl;
+ }
+ else if (node->pt () == AST_PredefinedType::PT_pseudo)
+ {
+ *os << bt->nested_type_name (bu, "_ptr") << " " << ub->local_name ()
+ << "_;" << be_nl;
}
else if (node->pt () == AST_PredefinedType::PT_any)
{
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_access_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_access_cs.cpp
index 50cc4d35255..a00102a00bd 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_access_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/public_access_cs.cpp
@@ -289,6 +289,7 @@ be_visitor_union_branch_public_access_cs::visit_predefined_type (be_predefined_t
switch (node->pt ())
{
+ case AST_PredefinedType::PT_object:
case AST_PredefinedType::PT_pseudo:
*os << "ACE_UNUSED_ARG (alloc_flag);" << be_nl
<< "return &this->u_." << ub->local_name () << "_;" << be_uidt_nl;
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp
index ac5a3f9a9a5..c18e04a0dcf 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/public_assign_cs.cpp
@@ -417,36 +417,38 @@ be_visitor_union_branch_public_assign_cs::visit_predefined_type (
// set the discriminant to the appropriate label
switch (node->pt ())
{
- case AST_PredefinedType::PT_pseudo:
- if (!ACE_OS::strcmp (node->local_name ()->get_string (), "Object"))
+ case AST_PredefinedType::PT_object:
+ // So the template will work with the macro.
+ *os << "typedef CORBA::Object_var OBJECT_FIELD;" << be_nl;
+
+ if (this->ctx_->sub_state () == TAO_CodeGen::TAO_UNION_COPY_CONSTRUCTOR)
{
- // So the template will work with the macro.
- *os << "typedef CORBA::Object_var OBJECT_FIELD;" << be_nl;
-
- if (this->ctx_->sub_state () == TAO_CodeGen::TAO_UNION_COPY_CONSTRUCTOR)
- // We are generating the copy constructor.
- *os << "ACE_NEW (" << be_idt << be_idt_nl
- << "this->u_." << ub->local_name () << "_," << be_nl
- << "OBJECT_FIELD (CORBA::Object"
- << "::_duplicate (u.u_." << ub->local_name ()
- << "_->ptr ()))" << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl;
- else
- // We are generating the assignment operator.
- *os << "ACE_NEW_RETURN (" << be_idt << be_idt_nl
- << "this->u_." << ub->local_name () << "_," << be_nl
- << "OBJECT_FIELD (CORBA::Object"
- << "::_duplicate (u.u_." << ub->local_name ()
- << "_->ptr ()))," << be_nl
- << "*this" << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl;
+ // We are generating the copy constructor.
+ *os << "ACE_NEW (" << be_idt << be_idt_nl
+ << "this->u_." << ub->local_name () << "_," << be_nl
+ << "OBJECT_FIELD (CORBA::Object"
+ << "::_duplicate (u.u_." << ub->local_name ()
+ << "_->ptr ()))" << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl;
}
else
{
- *os << "this->u_." << ub->local_name () << "_ = "
- << bt->name () << "::_duplicate (u.u_."
- << ub->local_name () << "_);" << be_uidt_nl;
+ // We are generating the assignment operator.
+ *os << "ACE_NEW_RETURN (" << be_idt << be_idt_nl
+ << "this->u_." << ub->local_name () << "_," << be_nl
+ << "OBJECT_FIELD (CORBA::Object"
+ << "::_duplicate (u.u_." << ub->local_name ()
+ << "_->ptr ()))," << be_nl
+ << "*this" << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl;
}
+
+ break;
+ case AST_PredefinedType::PT_pseudo:
+ *os << "this->u_." << ub->local_name () << "_ = "
+ << bt->name () << "::_duplicate (u.u_."
+ << ub->local_name () << "_);" << be_uidt_nl;
+
break;
case AST_PredefinedType::PT_any:
if (this->ctx_->sub_state () == TAO_CodeGen::TAO_UNION_COPY_CONSTRUCTOR)
@@ -480,6 +482,7 @@ be_visitor_union_branch_public_assign_cs::visit_predefined_type (
<< ");" << be_uidt << be_uidt_nl
<< "}" << be_uidt << be_uidt_nl;
}
+
break;
case AST_PredefinedType::PT_void:
break;
@@ -487,6 +490,7 @@ be_visitor_union_branch_public_assign_cs::visit_predefined_type (
*os << "// set the value" << be_nl
<< "this->u_." << ub->local_name () << "_ = "
<< "u.u_." << ub->local_name () << "_;" << be_uidt_nl;
+
break;
}
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_ch.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_ch.cpp
index 924b53a1d32..01d92e916d0 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/public_ch.cpp
@@ -386,6 +386,7 @@ be_visitor_union_branch_public_ch::visit_predefined_type (be_predefined_type *no
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
*os << "void " << ub->local_name () << " ("
<< bt->nested_type_name (bu, "_ptr") << ");" << be_nl;
*os << bt->nested_type_name (bu, "_ptr") << " " << ub->local_name ()
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp
index f9dec8b9596..54878d4986d 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/public_ci.cpp
@@ -521,7 +521,10 @@ be_visitor_union_branch_public_ci::visit_predefined_type (
<< "ACE_INLINE void" << be_nl
<< bu->name () << "::" << ub->local_name () << " (" << bt->name ();
- if (node->pt () == AST_PredefinedType::PT_pseudo)
+ AST_PredefinedType::PredefinedType pt = node->pt ();
+
+ if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
*os << "_ptr";
}
@@ -553,66 +556,67 @@ be_visitor_union_branch_public_ci::visit_predefined_type (
*os << ";" << be_nl;
- switch (node->pt ())
+ switch (pt)
{
- case AST_PredefinedType::PT_pseudo:
- if (!ACE_OS::strcmp (node->local_name ()->get_string (), "Object"))
- {
- *os << "typedef CORBA::Object_var OBJECT_FIELD;" << be_nl
- << "ACE_NEW (" << be_idt << be_idt_nl
- << "this->u_." << ub->local_name () << "_," << be_nl
- << "OBJECT_FIELD (CORBA::Object::_duplicate (val))"
- << be_uidt_nl
- << ");" << be_uidt << be_uidt_nl;
- }
- else
- {
- *os << "this->u_." << ub->local_name () << "_ = "
- << bt->name () << "::_duplicate (val);" << be_uidt_nl;
- }
+ case AST_PredefinedType::PT_object:
+ *os << "typedef CORBA::Object_var OBJECT_FIELD;" << be_nl
+ << "ACE_NEW (" << be_idt << be_idt_nl
+ << "this->u_." << ub->local_name () << "_," << be_nl
+ << "OBJECT_FIELD (CORBA::Object::_duplicate (val))"
+ << be_uidt_nl
+ << ");" << be_uidt << be_uidt_nl;
+
break;
+ case AST_PredefinedType::PT_pseudo:
+ *os << "this->u_." << ub->local_name () << "_ = "
+ << bt->name () << "::_duplicate (val);" << be_uidt_nl;
+ break;
case AST_PredefinedType::PT_any:
*os << "ACE_NEW (" << be_idt << be_idt_nl
<< "this->u_." << ub->local_name ()
<< "_," << be_nl
<< bt->name () << " (val)" << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl;
- break;
+ break;
case AST_PredefinedType::PT_void:
break;
-
default:
*os << "// Set the value." << be_nl
<< "this->u_." << ub->local_name ()
<< "_ = val;" << be_uidt_nl;
+
+ break;
}
*os << "}" << be_nl << be_nl;
- switch (node->pt ())
+ switch (pt)
{
- case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
// Get method.
*os << "// Retrieve the member." << be_nl
<< "ACE_INLINE " << bt->name () << "_ptr" << be_nl
<< bu->name () << "::" << ub->local_name ()
<< " (void) const" << be_nl
<< "{" << be_idt_nl;
+ *os << "return this->u_." << ub->local_name ()
+ << "_->ptr ();" << be_uidt_nl;
+ *os << "}\n\n";
- if (!ACE_OS::strcmp (bt->local_name ()->get_string (), "Object"))
- {
- *os << "return this->u_." << ub->local_name ()
- << "_->ptr ();" << be_uidt_nl;
- }
- else
- {
- *os << "return this->u_." << ub->local_name ()
- << "_;" << be_uidt_nl;
- }
-
+ break;
+ case AST_PredefinedType::PT_pseudo:
+ // Get method.
+ *os << "// Retrieve the member." << be_nl
+ << "ACE_INLINE " << bt->name () << "_ptr" << be_nl
+ << bu->name () << "::" << ub->local_name ()
+ << " (void) const" << be_nl
+ << "{" << be_idt_nl;
+ *os << "return this->u_." << ub->local_name ()
+ << "_;" << be_uidt_nl;
*os << "}\n\n";
+
break;
case AST_PredefinedType::PT_any:
// Get method with read-only access.
@@ -644,6 +648,8 @@ be_visitor_union_branch_public_ci::visit_predefined_type (
<< "{" << be_idt_nl
<< "return this->u_." << ub->local_name () << "_;" << be_uidt_nl
<< "}\n\n";
+
+ break;
}
return 0;
diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/public_reset_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/public_reset_cs.cpp
index 86152e03313..25dc98b62ac 100644
--- a/TAO/TAO_IDL/be/be_visitor_union_branch/public_reset_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_union_branch/public_reset_cs.cpp
@@ -261,18 +261,17 @@ be_visitor_union_branch_public_reset_cs::visit_predefined_type (
switch (node->pt ())
{
- case AST_PredefinedType::PT_pseudo:
- if (!ACE_OS::strcmp (node->local_name ()->get_string (), "Object"))
- {
- *os << "delete this->u_."
- << ub->local_name () << "_;" << be_nl;
- }
- else
- {
- *os << "CORBA::release (this->u_."
- << ub->local_name () << "_);" << be_nl;
- }
+ case AST_PredefinedType::PT_object:
+ *os << "delete this->u_."
+ << ub->local_name () << "_;" << be_nl;
+ *os << "this->u_." << ub->local_name ()
+ << "_ = 0;" << be_nl
+ << "break;" << be_uidt_nl;
+ break;
+ case AST_PredefinedType::PT_pseudo:
+ *os << "CORBA::release (this->u_."
+ << ub->local_name () << "_);" << be_nl;
*os << "this->u_." << ub->local_name ()
<< "_ = 0;" << be_nl
<< "break;" << be_uidt_nl;
@@ -290,6 +289,8 @@ be_visitor_union_branch_public_reset_cs::visit_predefined_type (
break;
default:
*os << "break;" << be_uidt_nl;
+
+ break;
}
return 0;
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_ci.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_ci.cpp
index 9b52fb60117..d77e0de7886 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_ci.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_ci.cpp
@@ -420,32 +420,35 @@ be_visitor_valuetype_field_cdr_ci::visit_predefined_type (be_predefined_type *no
-1);
}
+ AST_PredefinedType::PredefinedType pt = node->pt ();
+
// Check what is the code generations substate. Are we generating code for
// the in/out operators for our parent or for us?
switch (this->ctx_->sub_state ())
{
case TAO_CodeGen::TAO_CDR_INPUT:
- if (node->pt () == AST_PredefinedType::PT_pseudo)
+ if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
*os << "(strm >> " << pre_ << f->local_name () << post_
<< ".out ())";
}
- else if (node->pt () == AST_PredefinedType::PT_char)
+ else if (pt == AST_PredefinedType::PT_char)
{
*os << "(strm >> CORBA::Any::to_char (" << pre_
<< f->local_name () << post_ << "))";
}
- else if (node->pt () == AST_PredefinedType::PT_wchar)
+ else if (pt == AST_PredefinedType::PT_wchar)
{
*os << "(strm >> CORBA::Any::to_wchar (" << pre_
<< f->local_name () << post_ << "))";
}
- else if (node->pt () == AST_PredefinedType::PT_octet)
+ else if (pt == AST_PredefinedType::PT_octet)
{
*os << "(strm >> CORBA::Any::to_octet (" << pre_
<< f->local_name () << post_ << "))";
}
- else if (node->pt () == AST_PredefinedType::PT_boolean)
+ else if (pt == AST_PredefinedType::PT_boolean)
{
*os << "(strm >> CORBA::Any::to_boolean (" << pre_
<< f->local_name () << post_ << "))";
@@ -456,27 +459,28 @@ be_visitor_valuetype_field_cdr_ci::visit_predefined_type (be_predefined_type *no
}
break;
case TAO_CodeGen::TAO_CDR_OUTPUT:
- if (node->pt () == AST_PredefinedType::PT_pseudo)
+ if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
*os << "(strm << " << pre_ << f->local_name ()
<< post_ << ".in ())";
}
- else if (node->pt () == AST_PredefinedType::PT_char)
+ else if (pt == AST_PredefinedType::PT_char)
{
*os << "(strm << CORBA::Any::from_char (" << pre_
<< f->local_name () << post_ << "))";
}
- else if (node->pt () == AST_PredefinedType::PT_wchar)
+ else if (pt == AST_PredefinedType::PT_wchar)
{
*os << "(strm << CORBA::Any::from_wchar (" << pre_
<< f->local_name () << post_ << "))";
}
- else if (node->pt () == AST_PredefinedType::PT_octet)
+ else if (pt == AST_PredefinedType::PT_octet)
{
*os << "(strm << CORBA::Any::from_octet (" << pre_
<< f->local_name () << post_ << "))";
}
- else if (node->pt () == AST_PredefinedType::PT_boolean)
+ else if (pt == AST_PredefinedType::PT_boolean)
{
*os << "(strm << CORBA::Any::from_boolean (" << pre_
<< f->local_name () << post_ << "))";
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/field_ch.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/field_ch.cpp
index d77d20a368a..989b1338838 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/field_ch.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/field_ch.cpp
@@ -399,6 +399,7 @@ be_visitor_valuetype_field_ch::visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
// Set method.
*os << pre_op () << "void " << ub->local_name () << " ("
<< bt->name () << "_ptr)"
diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/field_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/field_cs.cpp
index e73fbb825c3..df9181d1f36 100644
--- a/TAO/TAO_IDL/be/be_visitor_valuetype/field_cs.cpp
+++ b/TAO/TAO_IDL/be/be_visitor_valuetype/field_cs.cpp
@@ -622,7 +622,10 @@ be_visitor_valuetype_field_cs::visit_predefined_type (be_predefined_type *node)
*os << "::" << ub->local_name ()
<< " (" << bt->name ();
- if (node->pt () == AST_PredefinedType::PT_pseudo)
+ AST_PredefinedType::PredefinedType pt = node->pt ();
+
+ if (pt == AST_PredefinedType::PT_pseudo
+ || pt == AST_PredefinedType::PT_object)
{
*os << "_ptr";
}
@@ -630,30 +633,32 @@ be_visitor_valuetype_field_cs::visit_predefined_type (be_predefined_type *node)
*os << " val)" << be_nl
<< "{" << be_idt_nl;
- switch (node->pt ())
+ switch (pt)
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
*os << "this->" << bu->field_pd_prefix () << ub->local_name ()
<< bu->field_pd_postfix () << " = "
<< bt->name () << "::_duplicate (val);" << be_uidt_nl;
- break;
+ break;
case AST_PredefinedType::PT_any:
*os << "ACE_NEW (" << be_idt << be_idt_nl
<< "this->" << bu->field_pd_prefix () << ub->local_name ()
<< bu->field_pd_postfix () << "," << be_nl
<< bt->name () << " (val)" << be_uidt_nl
<< ");" << be_uidt << be_uidt_nl;
- break;
+ break;
case AST_PredefinedType::PT_void:
break;
-
default:
*os << "// Set the value." << be_nl
<< "this->" << bu->field_pd_prefix () << ub->local_name ()
<< bu->field_pd_postfix ()
<< " = val;" << be_uidt_nl;
+
+ break;
}
*os << "}" << be_nl;
@@ -661,6 +666,7 @@ be_visitor_valuetype_field_cs::visit_predefined_type (be_predefined_type *node)
switch (node->pt ())
{
case AST_PredefinedType::PT_pseudo:
+ case AST_PredefinedType::PT_object:
*os << "// Retrieve the member" << be_nl
<< this->pre_op () << bt->name () << "_ptr" << be_nl;
@@ -675,6 +681,7 @@ be_visitor_valuetype_field_cs::visit_predefined_type (be_predefined_type *node)
<< bu->field_pd_postfix ()
<< ";" << be_uidt_nl
<< "}\n\n";
+
break;
case AST_PredefinedType::PT_any:
*os << "// Retrieve the member." << be_nl
@@ -706,6 +713,7 @@ be_visitor_valuetype_field_cs::visit_predefined_type (be_predefined_type *node)
<< bu->field_pd_postfix ()
<< ";" << be_uidt_nl
<< "}\n\n";
+
break;
case AST_PredefinedType::PT_void:
break;
@@ -724,6 +732,8 @@ be_visitor_valuetype_field_cs::visit_predefined_type (be_predefined_type *node)
<< bu->field_pd_postfix ()
<< ";" << be_uidt_nl
<< "}\n\n";
+
+ break;
}
return 0;
diff --git a/TAO/TAO_IDL/fe/fe_init.cpp b/TAO/TAO_IDL/fe/fe_init.cpp
index c6c88a51602..6c5014e1f86 100644
--- a/TAO/TAO_IDL/fe/fe_init.cpp
+++ b/TAO/TAO_IDL/fe/fe_init.cpp
@@ -215,7 +215,7 @@ fe_populate_global_scope (AST_Module *m)
UTL_ScopedName Object_name (&Object_id, 0);
pdt =
idl_global->gen ()->create_predefined_type (
- AST_PredefinedType::PT_pseudo,
+ AST_PredefinedType::PT_object,
&Object_name
);
m->fe_add_predefined_type (pdt);
diff --git a/TAO/TAO_IDL/fe/idl.ll b/TAO/TAO_IDL/fe/idl.ll
index 51e9286f93a..d046489db50 100644
--- a/TAO/TAO_IDL/fe/idl.ll
+++ b/TAO/TAO_IDL/fe/idl.ll
@@ -152,6 +152,7 @@ NL [\r?\n]
%%
any return IDL_ANY;
+Object return IDL_OBJECT;
module return IDL_MODULE;
raises return IDL_RAISES;
readonly return IDL_READONLY;
diff --git a/TAO/TAO_IDL/fe/idl.yy b/TAO/TAO_IDL/fe/idl.yy
index 226a06e85b4..27f5d493517 100644
--- a/TAO/TAO_IDL/fe/idl.yy
+++ b/TAO/TAO_IDL/fe/idl.yy
@@ -28,21 +28,21 @@ This license is effective until terminated by Sun for failure to comply
with this license. Upon termination, you shall destroy or return all code
and documentation for the Interface Definition Language CFE.
-IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
-IDL_ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED AS IS WITH NO WARRANTIES OF
+ANY KIND INCLUDING THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS
FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR ARISING FROM A COURSE OF
DEALING, USAGE OR TRADE PRACTICE.
-IDL_INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
-IDL_ANY OBLIGATION ON THE PART OF Sun OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES
-TO ASSIST IDL_IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
+INTERFACE DEFINITION LANGUAGE CFE IS PROVIDED WITH NO SUPPORT AND WITHOUT
+ANY OBLIGATION ON THE PART OF Sun OR ANY OF ITS SUBSIDIARIES OR AFFILIATES
+TO ASSIST IN ITS USE, CORRECTION, MODIFICATION OR ENHANCEMENT.
-SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
-RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR IDL_ANY PATENTS BY
-IDL_INTERFACE DEFINITION LANGUAGE CFE OR IDL_ANY PART THEREOF.
+SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES SHALL HAVE NO LIABILITY WITH
+RESPECT TO THE INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY
+INTERFACE DEFINITION LANGUAGE CFE OR ANY PART THEREOF.
-IDL_IN NO EVENT WILL SUN OR IDL_ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
-IDL_ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
+IN NO EVENT WILL SUN OR ANY OF ITS SUBSIDIARIES OR AFFILIATES BE LIABLE FOR
+ANY LOST REVENUE OR PROFITS OR OTHER SPECIAL, INDIRECT AND CONSEQUENTIAL
DAMAGES, EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Use, duplication, or disclosure by the government is subject to
@@ -175,6 +175,7 @@ extern int yyleng;
%token IDL_BOOLEAN
%token IDL_FIXED
%token IDL_ANY
+%token IDL_OBJECT
%token IDL_STRUCT
%token IDL_UNION
%token IDL_SWITCH
@@ -276,8 +277,8 @@ extern int yyleng;
%type <ffval> element_spec
%type <etval> const_type integer_type char_type boolean_type
-%type <etval> floating_pt_type any_type fixed_type signed_int
-%type <etval> unsigned_int base_type_spec octet_type
+%type <etval> floating_pt_type fixed_type any_type signed_int
+%type <etval> unsigned_int base_type_spec octet_type object_type
%type <dival> direction
@@ -1288,7 +1289,7 @@ const_type
if (d == 0)
{
- $$ = AST_Expression::EV_any;
+ $$ = AST_Expression::EV_enum;
}
else if (d->node_type () == AST_Decl::NT_pre_defined)
{
@@ -1300,7 +1301,7 @@ const_type
}
else
{
- $$ = AST_Expression::EV_any;
+ $$ = AST_Expression::EV_enum;
}
}
else if (d->node_type () == AST_Decl::NT_string)
@@ -1313,12 +1314,12 @@ const_type
}
else
{
- $$ = AST_Expression::EV_any;
+ $$ = AST_Expression::EV_enum;
}
}
else
{
- $$ = AST_Expression::EV_any;
+ $$ = AST_Expression::EV_enum;
}
}
;
@@ -1802,6 +1803,7 @@ base_type_spec
| octet_type
| fixed_type
| any_type
+ | object_type
;
template_type_spec
@@ -2068,6 +2070,14 @@ any_type
}
;
+object_type
+ : IDL_OBJECT
+ {
+// object_type : IDL_OBJECT
+ $$ = AST_Expression::EV_object;
+ }
+ ;
+
struct_decl :
IDL_STRUCT
{
@@ -2333,7 +2343,10 @@ switch_type_spec :
integer_type
{
// switch_type_spec : integer_type
- $$ = idl_global->scopes ().bottom ()->lookup_primitive_type ($1);
+ $$ =
+ idl_global->scopes ().bottom ()->lookup_primitive_type (
+ $1
+ );
}
| char_type
{
@@ -2354,12 +2367,18 @@ switch_type_spec :
// | octet_type
/* octets are not allowed. */
idl_global->err ()->error0 (UTL_Error::EIDL_DISC_TYPE);
- $$ = idl_global->scopes ().bottom ()->lookup_primitive_type ($1);
+ $$ =
+ idl_global->scopes ().bottom ()->lookup_primitive_type (
+ $1
+ );
}
| boolean_type
{
// | boolean_type
- $$ = idl_global->scopes ().bottom ()->lookup_primitive_type ($1);
+ $$ =
+ idl_global->scopes ().bottom ()->lookup_primitive_type (
+ $1
+ );
}
| enum_type
| scoped_name
@@ -3658,7 +3677,10 @@ param_type_spec
: base_type_spec
{
// param_type_spec : base_type_spec
- $$ = idl_global->scopes ().bottom ()->lookup_primitive_type ($1);
+ $$ =
+ idl_global->scopes ().bottom ()->lookup_primitive_type (
+ $1
+ );
}
| string_type_spec
| wstring_type_spec
@@ -3678,7 +3700,7 @@ param_type_spec
if (d == 0)
{
- idl_global->err ()->lookup_error (tao_yyvsp[0].idlist);
+ idl_global->err ()->lookup_error ($1);
}
else
{
diff --git a/TAO/TAO_IDL/fe/lex.yy.cpp b/TAO/TAO_IDL/fe/lex.yy.cpp
index cb53f61dffc..8ad58b2eacb 100644
--- a/TAO/TAO_IDL/fe/lex.yy.cpp
+++ b/TAO/TAO_IDL/fe/lex.yy.cpp
@@ -281,69 +281,70 @@ static void tao_yy_fatal_error TAO_YY_PROTO(( tao_yyconst char msg[] ));
tao_yy_flex_strncpy( tao_yytext, tao_yytext_ptr, tao_yyleng + 1 ); \
tao_yy_c_buf_p = tao_yy_cp;
-#define TAO_YY_NUM_RULES 103
-#define TAO_YY_END_OF_BUFFER 104
-static tao_yyconst short int tao_yy_accept[538] =
+#define TAO_YY_NUM_RULES 104
+#define TAO_YY_END_OF_BUFFER 105
+static tao_yyconst short int tao_yy_accept[544] =
{ 0,
- 100, 100, 104, 102, 100, 101, 101, 102, 102, 102,
- 102, 102, 75, 71, 102, 102, 102, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 102, 101, 100, 0, 76, 0, 0, 0, 0,
- 74, 70, 68, 99, 0, 68, 75, 0, 0, 0,
- 71, 66, 64, 65, 67, 67, 0, 0, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 61,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
-
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 0, 94, 0, 0, 0,
- 0, 0, 0, 0, 0, 78, 0, 78, 0, 0,
- 74, 0, 70, 0, 68, 0, 98, 98, 68, 0,
- 69, 73, 67, 0, 77, 0, 0, 0, 67, 67,
- 1, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 62, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
-
- 67, 67, 0, 0, 0, 0, 0, 0, 0, 81,
- 79, 0, 0, 72, 0, 68, 69, 67, 0, 82,
- 0, 58, 67, 67, 67, 19, 26, 67, 67, 67,
- 67, 67, 67, 67, 12, 67, 67, 67, 67, 67,
- 67, 67, 47, 67, 67, 67, 67, 23, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 56, 67, 30, 67, 67, 0, 0, 0, 0,
- 0, 0, 0, 95, 0, 0, 0, 0, 0, 0,
- 79, 0, 80, 0, 59, 0, 0, 67, 67, 67,
-
- 67, 9, 67, 67, 67, 67, 67, 43, 67, 67,
- 67, 67, 17, 21, 67, 67, 60, 67, 32, 67,
- 67, 67, 67, 29, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 24, 67, 67, 67, 67, 67, 67,
- 67, 67, 16, 67, 67, 27, 67, 90, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 83, 0, 67, 67, 67, 67, 67, 67, 34, 67,
- 22, 67, 67, 67, 45, 67, 48, 67, 67, 2,
- 67, 31, 63, 67, 67, 67, 37, 67, 3, 67,
- 67, 67, 13, 11, 67, 18, 67, 67, 54, 67,
-
- 67, 67, 67, 0, 88, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
- 67, 28, 67, 67, 7, 20, 67, 67, 35, 67,
- 67, 57, 67, 67, 36, 67, 67, 67, 67, 67,
- 67, 67, 10, 67, 67, 67, 14, 0, 0, 86,
- 86, 0, 0, 92, 0, 0, 91, 0, 0, 0,
- 0, 0, 0, 0, 33, 67, 67, 42, 67, 67,
- 67, 67, 49, 67, 51, 67, 4, 15, 67, 38,
- 67, 67, 25, 67, 0, 96, 96, 0, 0, 0,
- 0, 89, 0, 0, 0, 0, 0, 0, 0, 5,
-
- 41, 44, 6, 46, 8, 67, 52, 53, 67, 67,
- 40, 0, 84, 84, 0, 0, 87, 87, 0, 0,
- 0, 0, 50, 67, 55, 0, 97, 97, 0, 0,
- 0, 39, 93, 0, 85, 85, 0
+ 101, 101, 105, 103, 101, 102, 102, 103, 103, 103,
+ 103, 103, 76, 72, 103, 103, 103, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 103, 102, 101, 0, 77, 0, 0, 0,
+ 0, 75, 71, 69, 100, 0, 69, 76, 0, 0,
+ 0, 72, 67, 65, 66, 68, 68, 0, 0, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 62, 68, 68, 68, 68, 68, 68, 68, 68,
+
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 0, 95, 0,
+ 0, 0, 0, 0, 0, 0, 0, 79, 0, 79,
+ 0, 0, 75, 0, 71, 0, 69, 0, 99, 99,
+ 69, 0, 70, 74, 68, 0, 78, 0, 0, 0,
+ 68, 68, 68, 1, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 63, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+
+ 68, 68, 68, 68, 68, 0, 0, 0, 0, 0,
+ 0, 0, 82, 80, 0, 0, 73, 0, 69, 70,
+ 68, 0, 83, 0, 68, 59, 68, 68, 68, 20,
+ 27, 68, 68, 68, 68, 68, 68, 68, 13, 68,
+ 68, 68, 68, 68, 68, 68, 48, 68, 68, 68,
+ 68, 24, 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68, 68, 68,
+ 68, 68, 68, 68, 68, 57, 68, 31, 68, 68,
+ 0, 0, 0, 0, 0, 0, 0, 96, 0, 0,
+ 0, 0, 0, 0, 80, 0, 81, 0, 60, 0,
+
+ 0, 68, 68, 68, 68, 68, 10, 68, 68, 68,
+ 68, 68, 44, 68, 68, 68, 68, 18, 22, 68,
+ 68, 61, 68, 33, 68, 68, 68, 68, 30, 68,
+ 68, 68, 68, 68, 68, 68, 68, 68, 25, 68,
+ 68, 68, 68, 68, 68, 68, 68, 17, 68, 68,
+ 28, 68, 91, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 84, 0, 2, 68, 68,
+ 68, 68, 68, 68, 35, 68, 23, 68, 68, 68,
+ 46, 68, 49, 68, 68, 3, 68, 32, 64, 68,
+ 68, 68, 38, 68, 4, 68, 68, 68, 14, 12,
+
+ 68, 19, 68, 68, 55, 68, 68, 68, 68, 0,
+ 89, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 68, 68, 29, 68, 68,
+ 8, 21, 68, 68, 36, 68, 68, 58, 68, 68,
+ 37, 68, 68, 68, 68, 68, 68, 68, 11, 68,
+ 68, 68, 15, 0, 0, 87, 87, 0, 0, 93,
+ 0, 0, 92, 0, 0, 0, 0, 0, 0, 0,
+ 34, 68, 68, 43, 68, 68, 68, 68, 50, 68,
+ 52, 68, 5, 16, 68, 39, 68, 68, 26, 68,
+ 0, 97, 97, 0, 0, 0, 0, 90, 0, 0,
+
+ 0, 0, 0, 0, 0, 6, 42, 45, 7, 47,
+ 9, 68, 53, 54, 68, 68, 41, 0, 85, 85,
+ 0, 0, 88, 88, 0, 0, 0, 0, 51, 68,
+ 56, 0, 98, 98, 0, 0, 0, 40, 94, 0,
+ 86, 86, 0
} ;
static tao_yyconst int tao_yy_ec[256] =
@@ -355,13 +356,13 @@ static tao_yyconst int tao_yy_ec[256] =
1, 9, 10, 1, 11, 12, 13, 14, 15, 15,
15, 15, 15, 15, 15, 16, 16, 17, 1, 18,
19, 20, 21, 1, 22, 23, 23, 23, 24, 25,
- 26, 26, 26, 26, 26, 27, 26, 26, 26, 26,
- 26, 28, 29, 30, 31, 26, 26, 32, 26, 26,
- 1, 33, 1, 1, 26, 1, 34, 35, 36, 37,
+ 26, 26, 26, 26, 26, 27, 26, 26, 28, 26,
+ 26, 29, 30, 31, 32, 26, 26, 33, 26, 26,
+ 1, 34, 1, 1, 26, 1, 35, 36, 37, 38,
- 38, 39, 40, 41, 42, 26, 43, 44, 45, 46,
- 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
- 57, 26, 1, 1, 1, 1, 1, 1, 1, 1,
+ 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
+ 59, 26, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -378,390 +379,392 @@ static tao_yyconst int tao_yy_ec[256] =
1, 1, 1, 1, 1
} ;
-static tao_yyconst int tao_yy_meta[58] =
+static tao_yyconst int tao_yy_meta[60] =
{ 0,
1, 1, 2, 1, 1, 3, 1, 4, 1, 1,
1, 1, 1, 5, 5, 5, 1, 1, 1, 1,
3, 5, 5, 5, 5, 6, 6, 6, 6, 6,
- 6, 6, 3, 7, 7, 5, 5, 5, 7, 6,
- 6, 6, 6, 6, 6, 8, 6, 6, 6, 8,
- 6, 8, 6, 8, 6, 8, 6
+ 6, 6, 6, 3, 7, 7, 5, 5, 5, 7,
+ 6, 6, 6, 6, 6, 6, 6, 8, 6, 6,
+ 6, 8, 6, 8, 6, 8, 6, 8, 6
} ;
-static tao_yyconst short int tao_yy_base[565] =
+static tao_yyconst short int tao_yy_base[571] =
{ 0,
- 0, 51, 1014, 1015, 57, 1015, 1015, 54, 980, 49,
- 52, 60, 62, 67, 995, 993, 990, 0, 987, 82,
- 980, 49, 960, 51, 33, 57, 55, 968, 958, 61,
- 957, 62, 969, 74, 64, 74, 78, 71, 24, 88,
- 87, 137, 981, 124, 126, 1015, 0, 993, 135, 130,
- 148, 154, 191, 1015, 133, 141, 159, 184, 179, 0,
- 209, 1015, 1015, 1015, 0, 973, 128, 966, 967, 946,
- 939, 943, 947, 942, 958, 79, 940, 951, 936, 946,
- 934, 948, 949, 948, 131, 936, 930, 936, 932, 162,
- 165, 933, 941, 933, 924, 923, 936, 921, 170, 937,
-
- 929, 936, 161, 922, 918, 919, 924, 912, 916, 177,
- 925, 918, 919, 919, 907, 914, 1015, 159, 234, 915,
- 919, 913, 904, 934, 220, 1015, 944, 943, 226, 942,
- 230, 0, 245, 256, 1015, 259, 1015, 261, 0, 259,
- 262, 0, 920, 225, 1015, 895, 939, 174, 922, 893,
- 0, 894, 899, 904, 891, 892, 96, 887, 904, 902,
- 884, 890, 888, 895, 880, 894, 892, 895, 878, 889,
- 879, 872, 886, 889, 882, 887, 867, 867, 876, 879,
- 861, 0, 198, 861, 870, 862, 875, 858, 860, 859,
- 237, 860, 855, 860, 867, 857, 861, 851, 848, 863,
-
- 865, 848, 891, 890, 851, 856, 847, 858, 305, 1015,
- 1015, 277, 883, 0, 279, 288, 1015, 866, 0, 1015,
- 0, 0, 839, 846, 849, 0, 0, 839, 244, 847,
- 837, 830, 838, 830, 0, 828, 831, 831, 839, 839,
- 823, 840, 0, 823, 820, 821, 826, 0, 829, 824,
- 825, 812, 813, 830, 829, 828, 819, 818, 821, 811,
- 819, 822, 803, 808, 817, 805, 815, 814, 263, 803,
- 808, 0, 809, 0, 796, 803, 838, 313, 805, 796,
- 803, 800, 795, 1015, 278, 325, 796, 800, 794, 785,
- 1015, 826, 1015, 825, 0, 348, 824, 797, 795, 795,
-
- 782, 0, 782, 770, 780, 780, 785, 0, 770, 769,
- 770, 769, 0, 0, 776, 765, 0, 777, 0, 777,
- 776, 765, 774, 0, 754, 760, 757, 771, 200, 756,
- 760, 759, 762, 0, 763, 750, 751, 759, 765, 760,
- 760, 746, 0, 749, 742, 0, 747, 1015, 353, 331,
- 740, 374, 746, 784, 783, 687, 681, 661, 669, 377,
- 1015, 692, 661, 632, 636, 635, 624, 594, 0, 590,
- 0, 584, 586, 560, 0, 564, 0, 580, 562, 0,
- 567, 0, 0, 552, 570, 569, 0, 565, 0, 561,
- 568, 552, 0, 0, 550, 0, 544, 551, 0, 550,
-
- 548, 527, 542, 403, 1015, 418, 321, 333, 426, 441,
- 541, 555, 356, 516, 504, 510, 500, 449, 530, 476,
- 474, 0, 468, 462, 0, 0, 456, 450, 0, 457,
- 446, 0, 432, 426, 0, 416, 420, 397, 414, 400,
- 386, 396, 0, 390, 389, 377, 0, 445, 406, 1015,
- 432, 447, 473, 1015, 398, 343, 1015, 487, 373, 351,
- 491, 351, 317, 372, 0, 328, 313, 0, 314, 305,
- 292, 299, 0, 293, 0, 263, 0, 0, 261, 0,
- 264, 256, 0, 250, 477, 1015, 496, 280, 506, 508,
- 516, 1015, 520, 512, 392, 537, 541, 544, 247, 0,
-
- 0, 0, 0, 0, 0, 199, 0, 0, 188, 164,
- 0, 541, 1015, 560, 562, 564, 1015, 566, 568, 196,
- 182, 393, 0, 146, 0, 570, 1015, 576, 87, 589,
- 591, 0, 1015, 595, 1015, 597, 1015, 618, 626, 630,
- 636, 644, 652, 656, 663, 671, 676, 679, 686, 691,
- 694, 697, 701, 708, 713, 720, 725, 732, 740, 748,
- 756, 764, 772, 780
+ 0, 53, 1021, 1022, 59, 1022, 1022, 56, 986, 51,
+ 54, 62, 64, 69, 1002, 1000, 997, 0, 994, 81,
+ 979, 985, 46, 964, 56, 47, 54, 71, 973, 962,
+ 25, 961, 60, 974, 70, 61, 84, 82, 40, 78,
+ 85, 90, 142, 987, 127, 127, 1022, 0, 999, 140,
+ 126, 150, 155, 195, 1022, 147, 161, 188, 201, 222,
+ 0, 230, 1022, 1022, 1022, 0, 979, 146, 971, 960,
+ 971, 949, 942, 946, 950, 945, 962, 112, 943, 955,
+ 939, 950, 937, 952, 953, 952, 80, 939, 933, 939,
+ 935, 81, 147, 936, 945, 936, 927, 926, 940, 924,
+
+ 129, 941, 933, 940, 136, 925, 921, 922, 928, 915,
+ 919, 138, 929, 921, 923, 923, 910, 917, 1022, 147,
+ 244, 919, 923, 917, 907, 939, 180, 1022, 949, 948,
+ 191, 947, 252, 0, 258, 241, 1022, 258, 1022, 274,
+ 0, 214, 269, 0, 924, 190, 1022, 898, 944, 231,
+ 912, 926, 895, 0, 896, 901, 907, 893, 894, 227,
+ 889, 907, 905, 886, 892, 890, 898, 882, 897, 895,
+ 898, 880, 892, 881, 874, 889, 892, 885, 890, 869,
+ 869, 879, 882, 863, 0, 242, 863, 872, 864, 878,
+ 860, 862, 861, 188, 862, 857, 862, 870, 859, 864,
+
+ 853, 850, 866, 868, 850, 895, 894, 853, 859, 849,
+ 861, 314, 1022, 1022, 285, 887, 0, 287, 296, 1022,
+ 870, 0, 1022, 0, 856, 0, 840, 848, 851, 0,
+ 0, 840, 233, 849, 838, 831, 839, 831, 0, 829,
+ 832, 832, 841, 841, 824, 842, 0, 824, 821, 822,
+ 827, 0, 831, 825, 827, 813, 814, 832, 831, 830,
+ 821, 820, 823, 812, 821, 824, 804, 809, 819, 806,
+ 817, 816, 270, 804, 810, 0, 811, 0, 797, 805,
+ 841, 301, 807, 797, 805, 802, 796, 1022, 217, 329,
+ 798, 802, 796, 786, 1022, 829, 1022, 828, 0, 359,
+
+ 827, 780, 798, 796, 796, 782, 0, 782, 770, 780,
+ 780, 786, 0, 770, 769, 770, 769, 0, 0, 777,
+ 765, 0, 778, 0, 778, 777, 765, 775, 0, 754,
+ 760, 757, 772, 287, 756, 760, 759, 763, 0, 764,
+ 750, 751, 760, 766, 761, 761, 746, 0, 749, 742,
+ 0, 747, 1022, 364, 216, 740, 347, 746, 786, 785,
+ 744, 750, 740, 752, 386, 1022, 778, 0, 748, 729,
+ 735, 743, 742, 726, 0, 725, 0, 719, 677, 649,
+ 0, 643, 0, 657, 636, 0, 640, 0, 0, 615,
+ 632, 623, 0, 609, 0, 589, 594, 577, 0, 0,
+
+ 563, 0, 552, 564, 0, 564, 562, 541, 558, 413,
+ 1022, 428, 334, 248, 436, 451, 563, 591, 367, 557,
+ 547, 555, 552, 459, 583, 528, 526, 0, 530, 523,
+ 0, 0, 507, 505, 0, 505, 499, 0, 496, 484,
+ 0, 465, 466, 426, 439, 429, 395, 405, 0, 399,
+ 397, 364, 0, 455, 355, 1022, 383, 386, 458, 1022,
+ 407, 346, 1022, 486, 351, 358, 501, 345, 371, 383,
+ 0, 308, 292, 0, 302, 291, 278, 288, 0, 287,
+ 0, 272, 0, 0, 261, 0, 271, 249, 0, 251,
+ 416, 1022, 483, 269, 489, 505, 509, 1022, 517, 524,
+
+ 401, 532, 537, 431, 236, 0, 0, 0, 0, 0,
+ 0, 167, 0, 0, 161, 143, 0, 537, 1022, 546,
+ 556, 552, 1022, 558, 560, 191, 143, 475, 0, 65,
+ 0, 562, 1022, 565, 71, 571, 581, 0, 1022, 584,
+ 1022, 586, 1022, 607, 615, 619, 625, 633, 641, 645,
+ 652, 660, 665, 668, 675, 680, 683, 686, 690, 697,
+ 702, 709, 714, 721, 729, 737, 745, 753, 761, 769
} ;
-static tao_yyconst short int tao_yy_def[565] =
+static tao_yyconst short int tao_yy_def[571] =
{ 0,
- 537, 1, 537, 537, 537, 537, 537, 538, 539, 537,
- 537, 537, 537, 537, 537, 537, 537, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 537, 537, 537, 538, 537, 541, 537, 542, 537,
- 537, 537, 537, 537, 543, 53, 537, 537, 537, 544,
- 537, 537, 537, 537, 540, 540, 545, 546, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 42, 537, 42, 537, 537,
- 537, 537, 537, 537, 538, 537, 537, 537, 537, 547,
- 537, 548, 537, 537, 537, 543, 537, 543, 56, 537,
- 537, 544, 540, 545, 537, 537, 537, 537, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-
- 540, 540, 549, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 550, 548, 537, 537, 537, 540, 551, 537,
- 552, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 549, 537, 537, 537,
- 537, 537, 209, 537, 209, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 540, 545, 553, 540, 540, 540,
-
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 537, 537, 537,
- 537, 537, 537, 554, 537, 537, 537, 537, 537, 296,
- 537, 555, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
-
- 540, 540, 540, 537, 537, 537, 556, 537, 537, 537,
- 537, 554, 537, 537, 537, 537, 537, 296, 557, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 537, 556, 537,
- 556, 558, 537, 537, 559, 537, 537, 537, 537, 537,
- 537, 537, 545, 537, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 540, 540, 540, 558, 537, 558, 559, 537, 560,
- 537, 537, 537, 561, 537, 537, 537, 537, 537, 540,
-
- 540, 540, 540, 540, 540, 540, 540, 540, 540, 540,
- 540, 560, 537, 560, 537, 561, 537, 561, 562, 563,
- 537, 537, 540, 540, 540, 562, 537, 562, 563, 537,
- 564, 540, 537, 564, 537, 564, 0, 537, 537, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 537
+ 543, 1, 543, 543, 543, 543, 543, 544, 545, 543,
+ 543, 543, 543, 543, 543, 543, 543, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 543, 543, 543, 544, 543, 547, 543, 548,
+ 543, 543, 543, 543, 543, 549, 54, 543, 543, 543,
+ 550, 543, 543, 543, 543, 546, 546, 551, 552, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 43, 543, 43,
+ 543, 543, 543, 543, 543, 543, 544, 543, 543, 543,
+ 543, 553, 543, 554, 543, 543, 543, 549, 543, 549,
+ 57, 543, 543, 550, 546, 551, 543, 543, 543, 543,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+
+ 546, 546, 546, 546, 546, 555, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 556, 554, 543, 543, 543,
+ 546, 557, 543, 558, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 555, 543, 543, 543, 543, 543, 212, 543, 212, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 546, 551,
+
+ 559, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 543, 543, 543, 543, 543, 543, 560, 543,
+ 543, 543, 543, 543, 300, 543, 561, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 543,
+ 543, 543, 562, 543, 543, 543, 543, 560, 543, 543,
+ 543, 543, 543, 300, 563, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 543, 562, 543, 562, 564, 543, 543,
+ 565, 543, 543, 543, 543, 543, 543, 543, 551, 543,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
+ 564, 543, 564, 565, 543, 566, 543, 543, 543, 567,
+
+ 543, 543, 543, 543, 543, 546, 546, 546, 546, 546,
+ 546, 546, 546, 546, 546, 546, 546, 566, 543, 566,
+ 543, 567, 543, 567, 568, 569, 543, 543, 546, 546,
+ 546, 568, 543, 568, 569, 543, 570, 546, 543, 570,
+ 543, 570, 0, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543
} ;
-static tao_yyconst short int tao_yy_nxt[1073] =
+static tao_yyconst short int tao_yy_nxt[1082] =
{ 0,
4, 5, 6, 7, 5, 8, 4, 9, 4, 4,
10, 11, 12, 13, 14, 14, 15, 16, 4, 17,
- 7, 18, 18, 18, 19, 18, 20, 18, 18, 21,
- 18, 18, 4, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 18, 31, 32, 33, 34, 35, 18, 36,
- 37, 38, 39, 40, 41, 18, 18, 42, 44, 46,
- 50, 44, 51, 52, 52, 53, 53, 53, 54, 110,
- 78, 43, 55, 56, 111, 57, 57, 58, 56, 79,
- 61, 61, 61, 70, 74, 59, 47, 67, 84, 68,
- 59, 75, 530, 60, 71, 92, 85, 76, 86, 59,
-
- 72, 80, 81, 77, 59, 89, 90, 101, 93, 96,
- 82, 102, 83, 99, 94, 103, 100, 60, 104, 97,
- 108, 112, 114, 156, 157, 44, 98, 109, 44, 105,
- 106, 46, 107, 145, 113, 137, 138, 115, 116, 117,
- 117, 118, 128, 53, 53, 53, 229, 230, 129, 129,
- 119, 119, 119, 138, 139, 139, 139, 117, 47, 56,
- 146, 131, 131, 58, 203, 56, 130, 133, 133, 133,
- 56, 59, 57, 57, 58, 120, 166, 59, 121, 132,
- 122, 220, 59, 532, 123, 59, 167, 520, 140, 140,
- 130, 59, 141, 141, 141, 56, 59, 58, 58, 58,
-
- 174, 530, 537, 132, 53, 53, 53, 59, 172, 188,
- 175, 183, 189, 173, 134, 135, 184, 135, 196, 525,
- 56, 59, 61, 61, 61, 46, 221, 197, 134, 135,
- 145, 524, 59, 211, 135, 387, 117, 117, 204, 212,
- 212, 56, 255, 131, 131, 58, 59, 119, 119, 119,
- 388, 256, 47, 59, 117, 523, 56, 146, 133, 133,
- 133, 137, 138, 137, 138, 215, 215, 59, 59, 216,
- 216, 216, 141, 141, 141, 141, 141, 141, 264, 138,
- 522, 138, 59, 354, 291, 489, 217, 511, 217, 265,
- 292, 292, 216, 216, 216, 302, 303, 510, 509, 340,
-
- 217, 216, 216, 216, 341, 217, 283, 284, 284, 285,
- 342, 508, 135, 507, 135, 348, 348, 349, 286, 286,
- 286, 537, 145, 450, 451, 284, 135, 284, 284, 355,
- 506, 135, 407, 348, 452, 407, 505, 452, 286, 286,
- 286, 451, 504, 287, 490, 284, 288, 490, 289, 146,
- 503, 502, 290, 145, 404, 405, 405, 404, 457, 457,
- 458, 360, 360, 360, 501, 500, 406, 406, 406, 360,
- 360, 360, 360, 405, 494, 409, 457, 494, 409, 361,
- 146, 360, 360, 360, 360, 360, 360, 410, 410, 410,
- 418, 418, 418, 519, 531, 499, 519, 531, 418, 418,
-
- 418, 418, 495, 489, 404, 405, 405, 404, 450, 451,
- 418, 418, 418, 418, 418, 418, 448, 448, 448, 404,
- 405, 405, 404, 405, 484, 483, 451, 409, 482, 481,
- 409, 406, 406, 406, 450, 451, 480, 479, 405, 410,
- 410, 410, 453, 454, 454, 453, 455, 405, 405, 486,
- 487, 478, 451, 477, 410, 410, 410, 476, 448, 448,
- 448, 454, 463, 463, 463, 405, 475, 487, 474, 473,
- 463, 463, 463, 463, 453, 454, 454, 453, 455, 486,
- 487, 472, 463, 463, 463, 463, 463, 463, 491, 492,
- 492, 491, 496, 454, 471, 497, 470, 487, 486, 487,
-
- 493, 493, 493, 469, 498, 498, 498, 492, 454, 454,
- 513, 514, 468, 467, 517, 518, 487, 491, 492, 492,
- 491, 491, 492, 492, 491, 466, 454, 465, 514, 515,
- 515, 515, 518, 493, 493, 493, 492, 361, 496, 462,
- 492, 497, 496, 513, 514, 497, 520, 461, 521, 460,
- 498, 498, 498, 459, 498, 498, 498, 498, 498, 498,
- 413, 514, 513, 514, 492, 492, 517, 518, 517, 518,
- 527, 528, 527, 528, 456, 515, 515, 515, 527, 528,
- 514, 447, 492, 446, 518, 445, 518, 444, 528, 443,
- 528, 533, 533, 535, 536, 442, 528, 535, 536, 535,
-
- 536, 441, 440, 439, 438, 437, 436, 435, 434, 533,
- 433, 536, 432, 431, 430, 536, 429, 536, 45, 45,
- 45, 45, 45, 45, 45, 45, 48, 428, 48, 48,
- 48, 48, 48, 48, 65, 65, 65, 65, 125, 125,
- 427, 426, 125, 125, 127, 425, 127, 127, 127, 127,
- 127, 127, 136, 136, 136, 136, 136, 136, 136, 136,
- 142, 424, 142, 144, 144, 144, 144, 144, 144, 144,
- 144, 147, 423, 147, 147, 147, 147, 147, 147, 213,
- 213, 422, 213, 214, 421, 214, 277, 277, 277, 277,
- 277, 277, 277, 277, 294, 294, 420, 294, 296, 361,
-
- 296, 297, 417, 297, 362, 362, 416, 362, 412, 412,
- 412, 412, 412, 412, 412, 412, 419, 419, 415, 419,
- 449, 449, 449, 449, 449, 449, 449, 449, 464, 464,
- 414, 464, 485, 485, 485, 485, 485, 485, 485, 485,
- 488, 488, 488, 488, 488, 488, 488, 488, 512, 512,
- 512, 512, 512, 512, 512, 512, 516, 516, 516, 516,
- 516, 516, 516, 516, 526, 526, 526, 526, 526, 526,
- 526, 526, 529, 529, 529, 529, 529, 529, 529, 529,
- 534, 534, 534, 534, 534, 534, 534, 534, 354, 413,
- 411, 408, 403, 402, 401, 400, 399, 398, 397, 396,
-
- 395, 394, 393, 392, 391, 390, 389, 386, 385, 384,
- 383, 382, 381, 380, 379, 378, 377, 376, 375, 374,
- 373, 372, 371, 370, 369, 368, 367, 366, 365, 364,
- 363, 361, 293, 291, 359, 358, 357, 356, 537, 353,
- 352, 351, 350, 278, 347, 346, 345, 344, 343, 339,
- 338, 337, 336, 335, 334, 333, 332, 331, 330, 329,
- 328, 327, 326, 325, 324, 323, 322, 321, 320, 319,
- 318, 317, 316, 315, 314, 313, 312, 311, 310, 309,
- 308, 307, 306, 305, 304, 301, 300, 299, 298, 295,
- 293, 282, 281, 280, 279, 203, 278, 276, 275, 274,
-
- 273, 272, 271, 270, 269, 268, 267, 266, 263, 262,
- 261, 260, 259, 258, 257, 254, 253, 252, 251, 250,
- 249, 248, 247, 246, 245, 244, 243, 242, 241, 240,
- 239, 238, 237, 236, 235, 234, 233, 232, 231, 228,
- 227, 226, 225, 224, 223, 222, 220, 219, 218, 210,
- 210, 210, 209, 208, 207, 206, 205, 537, 202, 201,
- 200, 199, 198, 195, 194, 193, 192, 191, 190, 187,
- 186, 185, 182, 181, 180, 179, 178, 177, 176, 171,
- 170, 169, 168, 165, 164, 163, 162, 161, 160, 159,
- 158, 155, 154, 153, 152, 151, 150, 149, 148, 143,
-
- 126, 124, 95, 91, 88, 87, 73, 69, 66, 64,
- 63, 62, 49, 537, 3, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537
+ 7, 18, 18, 18, 19, 18, 20, 21, 18, 18,
+ 22, 18, 18, 4, 23, 24, 25, 26, 27, 28,
+ 29, 30, 31, 18, 18, 32, 33, 34, 35, 36,
+ 18, 37, 38, 39, 40, 41, 42, 18, 18, 43,
+ 45, 47, 51, 45, 52, 53, 53, 54, 54, 54,
+ 55, 91, 92, 44, 56, 57, 536, 58, 58, 59,
+ 57, 72, 62, 62, 62, 80, 68, 60, 69, 48,
+ 76, 110, 60, 73, 94, 81, 61, 77, 111, 74,
+
+ 82, 83, 60, 538, 78, 86, 98, 60, 95, 84,
+ 79, 85, 101, 87, 96, 102, 88, 99, 103, 114,
+ 105, 61, 104, 106, 100, 112, 116, 169, 45, 175,
+ 113, 45, 47, 115, 176, 107, 108, 170, 109, 54,
+ 54, 54, 117, 118, 119, 119, 120, 130, 526, 139,
+ 140, 147, 206, 131, 131, 121, 121, 121, 159, 160,
+ 48, 57, 119, 133, 133, 59, 57, 140, 135, 135,
+ 135, 186, 132, 60, 141, 141, 141, 187, 60, 148,
+ 199, 122, 134, 177, 123, 47, 191, 124, 60, 192,
+ 200, 125, 543, 60, 178, 147, 536, 132, 214, 57,
+
+ 531, 58, 58, 59, 215, 215, 530, 134, 54, 54,
+ 54, 60, 57, 48, 59, 59, 59, 413, 136, 137,
+ 413, 137, 359, 148, 60, 529, 60, 143, 143, 143,
+ 268, 142, 142, 136, 137, 143, 143, 143, 223, 60,
+ 137, 57, 269, 62, 62, 62, 119, 119, 207, 458,
+ 218, 218, 458, 60, 219, 219, 219, 121, 121, 121,
+ 139, 140, 543, 57, 119, 133, 133, 59, 60, 57,
+ 528, 135, 135, 135, 495, 60, 139, 140, 140, 233,
+ 234, 60, 143, 143, 143, 224, 307, 308, 259, 517,
+ 60, 516, 295, 220, 140, 220, 60, 260, 296, 296,
+
+ 219, 219, 219, 353, 353, 354, 515, 345, 220, 219,
+ 219, 219, 346, 514, 220, 287, 288, 288, 289, 347,
+ 137, 353, 137, 393, 513, 512, 511, 290, 290, 290,
+ 510, 288, 288, 360, 288, 137, 456, 457, 509, 394,
+ 508, 137, 290, 290, 290, 507, 506, 496, 415, 288,
+ 496, 415, 500, 291, 457, 500, 292, 456, 457, 293,
+ 416, 416, 416, 294, 147, 410, 411, 411, 410, 463,
+ 463, 464, 365, 365, 365, 457, 147, 412, 412, 412,
+ 365, 365, 365, 365, 411, 456, 457, 463, 492, 493,
+ 366, 505, 148, 365, 365, 365, 365, 365, 365, 424,
+
+ 424, 424, 525, 457, 148, 525, 493, 424, 424, 424,
+ 424, 501, 495, 490, 410, 411, 411, 410, 492, 493,
+ 424, 424, 424, 424, 424, 424, 454, 454, 454, 410,
+ 411, 411, 410, 411, 489, 527, 493, 415, 488, 487,
+ 415, 412, 412, 412, 504, 504, 504, 486, 411, 416,
+ 416, 416, 459, 460, 460, 459, 461, 411, 411, 459,
+ 460, 460, 459, 461, 416, 416, 416, 485, 454, 454,
+ 454, 460, 469, 469, 469, 411, 537, 484, 460, 537,
+ 469, 469, 469, 469, 483, 492, 493, 497, 498, 498,
+ 497, 460, 460, 469, 469, 469, 469, 469, 469, 499,
+
+ 499, 499, 502, 493, 482, 503, 498, 519, 520, 460,
+ 497, 498, 498, 497, 504, 504, 504, 481, 497, 498,
+ 498, 497, 521, 521, 521, 520, 523, 524, 480, 498,
+ 499, 499, 499, 502, 479, 478, 503, 498, 502, 519,
+ 520, 503, 526, 477, 524, 504, 504, 504, 519, 520,
+ 504, 504, 504, 476, 523, 524, 475, 520, 498, 498,
+ 523, 524, 533, 534, 533, 534, 520, 533, 534, 521,
+ 521, 521, 524, 539, 539, 474, 498, 473, 524, 472,
+ 534, 471, 534, 541, 542, 534, 541, 542, 541, 542,
+ 366, 539, 468, 467, 466, 465, 419, 462, 453, 452,
+
+ 451, 542, 450, 449, 542, 448, 542, 46, 46, 46,
+ 46, 46, 46, 46, 46, 49, 447, 49, 49, 49,
+ 49, 49, 49, 66, 66, 66, 66, 127, 127, 446,
+ 445, 127, 127, 129, 444, 129, 129, 129, 129, 129,
+ 129, 138, 138, 138, 138, 138, 138, 138, 138, 144,
+ 443, 144, 146, 146, 146, 146, 146, 146, 146, 146,
+ 149, 442, 149, 149, 149, 149, 149, 149, 216, 216,
+ 441, 216, 217, 440, 217, 281, 281, 281, 281, 281,
+ 281, 281, 281, 298, 298, 439, 298, 300, 438, 300,
+ 301, 437, 301, 367, 367, 436, 367, 418, 418, 418,
+
+ 418, 418, 418, 418, 418, 425, 425, 435, 425, 455,
+ 455, 455, 455, 455, 455, 455, 455, 470, 470, 434,
+ 470, 491, 491, 491, 491, 491, 491, 491, 491, 494,
+ 494, 494, 494, 494, 494, 494, 494, 518, 518, 518,
+ 518, 518, 518, 518, 518, 522, 522, 522, 522, 522,
+ 522, 522, 522, 532, 532, 532, 532, 532, 532, 532,
+ 532, 535, 535, 535, 535, 535, 535, 535, 535, 540,
+ 540, 540, 540, 540, 540, 540, 540, 433, 432, 431,
+ 430, 429, 428, 427, 426, 366, 423, 422, 421, 420,
+ 359, 419, 417, 414, 409, 408, 407, 406, 405, 404,
+
+ 403, 402, 401, 400, 399, 398, 397, 396, 395, 392,
+ 391, 390, 389, 388, 387, 386, 385, 384, 383, 382,
+ 381, 380, 379, 378, 377, 376, 375, 374, 373, 372,
+ 371, 370, 369, 368, 366, 297, 295, 364, 363, 362,
+ 361, 543, 358, 357, 356, 355, 282, 352, 351, 350,
+ 349, 348, 344, 343, 342, 341, 340, 339, 338, 337,
+ 336, 335, 334, 333, 332, 331, 330, 329, 328, 327,
+ 326, 325, 324, 323, 322, 321, 320, 319, 318, 317,
+ 316, 315, 314, 313, 312, 311, 310, 309, 306, 305,
+ 304, 303, 302, 299, 297, 286, 285, 284, 283, 206,
+
+ 282, 280, 279, 278, 277, 276, 275, 274, 273, 272,
+ 271, 270, 267, 266, 265, 264, 263, 262, 261, 258,
+ 257, 256, 255, 254, 253, 252, 251, 250, 249, 248,
+ 247, 246, 245, 244, 243, 242, 241, 240, 239, 238,
+ 237, 236, 235, 232, 231, 230, 229, 228, 227, 226,
+ 225, 223, 222, 221, 213, 213, 213, 212, 211, 210,
+ 209, 208, 543, 205, 204, 203, 202, 201, 198, 197,
+ 196, 195, 194, 193, 190, 189, 188, 185, 184, 183,
+ 182, 181, 180, 179, 174, 173, 172, 171, 168, 167,
+ 166, 165, 164, 163, 162, 161, 158, 157, 156, 155,
+
+ 154, 153, 152, 151, 150, 145, 128, 126, 97, 93,
+ 90, 89, 75, 71, 70, 67, 65, 64, 63, 50,
+ 543, 3, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543
} ;
-static tao_yyconst short int tao_yy_chk[1073] =
+static tao_yyconst short int tao_yy_chk[1082] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 2, 5, 8,
- 10, 5, 10, 10, 10, 11, 11, 11, 12, 39,
- 25, 2, 12, 13, 39, 13, 13, 13, 14, 25,
- 14, 14, 14, 22, 24, 13, 8, 20, 27, 20,
- 14, 24, 529, 13, 22, 32, 27, 24, 27, 13,
-
- 22, 26, 26, 24, 14, 30, 30, 36, 32, 34,
- 26, 36, 26, 35, 32, 37, 35, 13, 37, 34,
- 38, 40, 41, 76, 76, 44, 34, 38, 44, 37,
- 37, 45, 37, 67, 40, 55, 55, 41, 42, 42,
- 42, 42, 49, 50, 50, 50, 157, 157, 49, 49,
- 42, 42, 42, 55, 56, 56, 56, 42, 45, 51,
- 67, 51, 51, 51, 118, 52, 49, 52, 52, 52,
- 57, 51, 57, 57, 57, 42, 85, 52, 42, 51,
- 42, 148, 57, 524, 42, 51, 85, 521, 59, 59,
- 49, 52, 59, 59, 59, 58, 57, 58, 58, 58,
-
- 91, 520, 118, 51, 53, 53, 53, 58, 90, 103,
- 91, 99, 103, 90, 53, 53, 99, 53, 110, 510,
- 61, 58, 61, 61, 61, 125, 148, 110, 53, 53,
- 144, 509, 61, 129, 53, 329, 119, 119, 119, 129,
- 129, 131, 183, 131, 131, 131, 61, 119, 119, 119,
- 329, 183, 125, 131, 119, 506, 133, 144, 133, 133,
- 133, 136, 136, 138, 138, 134, 134, 131, 133, 134,
- 134, 134, 140, 140, 140, 141, 141, 141, 191, 136,
- 499, 138, 133, 285, 212, 488, 141, 484, 141, 191,
- 212, 212, 215, 215, 215, 229, 229, 482, 481, 269,
-
- 141, 216, 216, 216, 269, 141, 209, 209, 209, 209,
- 269, 479, 216, 476, 216, 278, 278, 278, 209, 209,
- 209, 285, 463, 407, 407, 209, 216, 286, 286, 286,
- 474, 216, 350, 278, 408, 350, 472, 408, 286, 286,
- 286, 407, 471, 209, 456, 286, 209, 456, 209, 463,
- 470, 469, 209, 296, 349, 349, 349, 349, 413, 413,
- 413, 296, 296, 296, 467, 466, 349, 349, 349, 296,
- 296, 296, 296, 349, 459, 352, 413, 459, 352, 464,
- 296, 296, 296, 296, 296, 296, 296, 352, 352, 352,
- 360, 360, 360, 495, 522, 462, 495, 522, 360, 360,
-
- 360, 360, 460, 455, 404, 404, 404, 404, 449, 449,
- 360, 360, 360, 360, 360, 360, 404, 404, 404, 406,
- 406, 406, 406, 404, 446, 445, 449, 409, 444, 442,
- 409, 406, 406, 406, 451, 451, 441, 440, 406, 409,
- 409, 409, 410, 410, 410, 410, 410, 448, 448, 452,
- 452, 439, 451, 438, 410, 410, 410, 437, 448, 448,
- 448, 410, 418, 418, 418, 448, 436, 452, 434, 433,
- 418, 418, 418, 418, 453, 453, 453, 453, 453, 485,
- 485, 431, 418, 418, 418, 418, 418, 418, 458, 458,
- 458, 458, 461, 453, 430, 461, 428, 485, 487, 487,
-
- 458, 458, 458, 427, 461, 461, 461, 458, 489, 489,
- 490, 490, 424, 423, 494, 494, 487, 491, 491, 491,
- 491, 493, 493, 493, 493, 421, 489, 420, 490, 491,
- 491, 491, 494, 493, 493, 493, 491, 419, 496, 417,
- 493, 496, 497, 512, 512, 497, 497, 416, 498, 415,
- 496, 496, 496, 414, 497, 497, 497, 498, 498, 498,
- 412, 512, 514, 514, 515, 515, 516, 516, 518, 518,
- 519, 519, 526, 526, 411, 515, 515, 515, 528, 528,
- 514, 403, 515, 402, 516, 401, 518, 400, 519, 398,
- 526, 530, 530, 531, 531, 397, 528, 534, 534, 536,
-
- 536, 395, 392, 391, 390, 388, 386, 385, 384, 530,
- 381, 531, 379, 378, 376, 534, 374, 536, 538, 538,
- 538, 538, 538, 538, 538, 538, 539, 373, 539, 539,
- 539, 539, 539, 539, 540, 540, 540, 540, 541, 541,
- 372, 370, 541, 541, 542, 368, 542, 542, 542, 542,
- 542, 542, 543, 543, 543, 543, 543, 543, 543, 543,
- 544, 367, 544, 545, 545, 545, 545, 545, 545, 545,
- 545, 546, 366, 546, 546, 546, 546, 546, 546, 547,
- 547, 365, 547, 548, 364, 548, 549, 549, 549, 549,
- 549, 549, 549, 549, 550, 550, 363, 550, 551, 362,
-
- 551, 552, 359, 552, 553, 553, 358, 553, 554, 554,
- 554, 554, 554, 554, 554, 554, 555, 555, 357, 555,
- 556, 556, 556, 556, 556, 556, 556, 556, 557, 557,
- 356, 557, 558, 558, 558, 558, 558, 558, 558, 558,
- 559, 559, 559, 559, 559, 559, 559, 559, 560, 560,
- 560, 560, 560, 560, 560, 560, 561, 561, 561, 561,
- 561, 561, 561, 561, 562, 562, 562, 562, 562, 562,
- 562, 562, 563, 563, 563, 563, 563, 563, 563, 563,
- 564, 564, 564, 564, 564, 564, 564, 564, 355, 354,
- 353, 351, 347, 345, 344, 342, 341, 340, 339, 338,
-
- 337, 336, 335, 333, 332, 331, 330, 328, 327, 326,
- 325, 323, 322, 321, 320, 318, 316, 315, 312, 311,
- 310, 309, 307, 306, 305, 304, 303, 301, 300, 299,
- 298, 297, 294, 292, 290, 289, 288, 287, 283, 282,
- 281, 280, 279, 277, 276, 275, 273, 271, 270, 268,
- 267, 266, 265, 264, 263, 262, 261, 260, 259, 258,
- 257, 256, 255, 254, 253, 252, 251, 250, 249, 247,
- 246, 245, 244, 242, 241, 240, 239, 238, 237, 236,
- 234, 233, 232, 231, 230, 228, 225, 224, 223, 218,
- 213, 208, 207, 206, 205, 204, 203, 202, 201, 200,
-
- 199, 198, 197, 196, 195, 194, 193, 192, 190, 189,
- 188, 187, 186, 185, 184, 181, 180, 179, 178, 177,
- 176, 175, 174, 173, 172, 171, 170, 169, 168, 167,
- 166, 165, 164, 163, 162, 161, 160, 159, 158, 156,
- 155, 154, 153, 152, 150, 149, 147, 146, 143, 130,
- 128, 127, 124, 123, 122, 121, 120, 116, 115, 114,
- 113, 112, 111, 109, 108, 107, 106, 105, 104, 102,
- 101, 100, 98, 97, 96, 95, 94, 93, 92, 89,
- 88, 87, 86, 84, 83, 82, 81, 80, 79, 78,
- 77, 75, 74, 73, 72, 71, 70, 69, 68, 66,
-
- 48, 43, 33, 31, 29, 28, 23, 21, 19, 17,
- 16, 15, 9, 3, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537, 537, 537, 537, 537, 537, 537, 537, 537,
- 537, 537
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
+ 5, 8, 10, 5, 10, 10, 10, 11, 11, 11,
+ 12, 31, 31, 2, 12, 13, 535, 13, 13, 13,
+ 14, 23, 14, 14, 14, 26, 20, 13, 20, 8,
+ 25, 39, 14, 23, 33, 26, 13, 25, 39, 23,
+
+ 27, 27, 13, 530, 25, 28, 35, 14, 33, 27,
+ 25, 27, 36, 28, 33, 36, 28, 35, 37, 41,
+ 38, 13, 37, 38, 35, 40, 42, 87, 45, 92,
+ 40, 45, 46, 41, 92, 38, 38, 87, 38, 51,
+ 51, 51, 42, 43, 43, 43, 43, 50, 527, 56,
+ 56, 68, 120, 50, 50, 43, 43, 43, 78, 78,
+ 46, 52, 43, 52, 52, 52, 53, 56, 53, 53,
+ 53, 101, 50, 52, 57, 57, 57, 101, 53, 68,
+ 112, 43, 52, 93, 43, 127, 105, 43, 52, 105,
+ 112, 43, 120, 53, 93, 146, 526, 50, 131, 58,
+
+ 516, 58, 58, 58, 131, 131, 515, 52, 54, 54,
+ 54, 58, 59, 127, 59, 59, 59, 355, 54, 54,
+ 355, 54, 289, 146, 59, 512, 58, 142, 142, 142,
+ 194, 60, 60, 54, 54, 60, 60, 60, 150, 59,
+ 54, 62, 194, 62, 62, 62, 121, 121, 121, 414,
+ 136, 136, 414, 62, 136, 136, 136, 121, 121, 121,
+ 138, 138, 289, 133, 121, 133, 133, 133, 62, 135,
+ 505, 135, 135, 135, 494, 133, 140, 140, 138, 160,
+ 160, 135, 143, 143, 143, 150, 233, 233, 186, 490,
+ 133, 488, 215, 143, 140, 143, 135, 186, 215, 215,
+
+ 218, 218, 218, 282, 282, 282, 487, 273, 143, 219,
+ 219, 219, 273, 485, 143, 212, 212, 212, 212, 273,
+ 219, 282, 219, 334, 482, 480, 478, 212, 212, 212,
+ 477, 290, 290, 290, 212, 219, 413, 413, 476, 334,
+ 475, 219, 290, 290, 290, 473, 472, 462, 357, 290,
+ 462, 357, 465, 212, 413, 465, 212, 455, 455, 212,
+ 357, 357, 357, 212, 300, 354, 354, 354, 354, 419,
+ 419, 419, 300, 300, 300, 455, 469, 354, 354, 354,
+ 300, 300, 300, 300, 354, 457, 457, 419, 458, 458,
+ 470, 468, 300, 300, 300, 300, 300, 300, 300, 365,
+
+ 365, 365, 501, 457, 469, 501, 458, 365, 365, 365,
+ 365, 466, 461, 452, 410, 410, 410, 410, 491, 491,
+ 365, 365, 365, 365, 365, 365, 410, 410, 410, 412,
+ 412, 412, 412, 410, 451, 504, 491, 415, 450, 448,
+ 415, 412, 412, 412, 504, 504, 504, 447, 412, 415,
+ 415, 415, 416, 416, 416, 416, 416, 454, 454, 459,
+ 459, 459, 459, 459, 416, 416, 416, 446, 454, 454,
+ 454, 416, 424, 424, 424, 454, 528, 445, 459, 528,
+ 424, 424, 424, 424, 444, 493, 493, 464, 464, 464,
+ 464, 495, 495, 424, 424, 424, 424, 424, 424, 464,
+
+ 464, 464, 467, 493, 443, 467, 464, 496, 496, 495,
+ 497, 497, 497, 497, 467, 467, 467, 442, 499, 499,
+ 499, 499, 497, 497, 497, 496, 500, 500, 440, 497,
+ 499, 499, 499, 502, 439, 437, 502, 499, 503, 518,
+ 518, 503, 503, 436, 500, 502, 502, 502, 520, 520,
+ 503, 503, 503, 434, 522, 522, 433, 518, 521, 521,
+ 524, 524, 525, 525, 532, 532, 520, 534, 534, 521,
+ 521, 521, 522, 536, 536, 430, 521, 429, 524, 427,
+ 525, 426, 532, 537, 537, 534, 540, 540, 542, 542,
+ 425, 536, 423, 422, 421, 420, 418, 417, 409, 408,
+
+ 407, 537, 406, 404, 540, 403, 542, 544, 544, 544,
+ 544, 544, 544, 544, 544, 545, 401, 545, 545, 545,
+ 545, 545, 545, 546, 546, 546, 546, 547, 547, 398,
+ 397, 547, 547, 548, 396, 548, 548, 548, 548, 548,
+ 548, 549, 549, 549, 549, 549, 549, 549, 549, 550,
+ 394, 550, 551, 551, 551, 551, 551, 551, 551, 551,
+ 552, 392, 552, 552, 552, 552, 552, 552, 553, 553,
+ 391, 553, 554, 390, 554, 555, 555, 555, 555, 555,
+ 555, 555, 555, 556, 556, 387, 556, 557, 385, 557,
+ 558, 384, 558, 559, 559, 382, 559, 560, 560, 560,
+
+ 560, 560, 560, 560, 560, 561, 561, 380, 561, 562,
+ 562, 562, 562, 562, 562, 562, 562, 563, 563, 379,
+ 563, 564, 564, 564, 564, 564, 564, 564, 564, 565,
+ 565, 565, 565, 565, 565, 565, 565, 566, 566, 566,
+ 566, 566, 566, 566, 566, 567, 567, 567, 567, 567,
+ 567, 567, 567, 568, 568, 568, 568, 568, 568, 568,
+ 568, 569, 569, 569, 569, 569, 569, 569, 569, 570,
+ 570, 570, 570, 570, 570, 570, 570, 378, 376, 374,
+ 373, 372, 371, 370, 369, 367, 364, 363, 362, 361,
+ 360, 359, 358, 356, 352, 350, 349, 347, 346, 345,
+
+ 344, 343, 342, 341, 340, 338, 337, 336, 335, 333,
+ 332, 331, 330, 328, 327, 326, 325, 323, 321, 320,
+ 317, 316, 315, 314, 312, 311, 310, 309, 308, 306,
+ 305, 304, 303, 302, 301, 298, 296, 294, 293, 292,
+ 291, 287, 286, 285, 284, 283, 281, 280, 279, 277,
+ 275, 274, 272, 271, 270, 269, 268, 267, 266, 265,
+ 264, 263, 262, 261, 260, 259, 258, 257, 256, 255,
+ 254, 253, 251, 250, 249, 248, 246, 245, 244, 243,
+ 242, 241, 240, 238, 237, 236, 235, 234, 232, 229,
+ 228, 227, 225, 221, 216, 211, 210, 209, 208, 207,
+
+ 206, 205, 204, 203, 202, 201, 200, 199, 198, 197,
+ 196, 195, 193, 192, 191, 190, 189, 188, 187, 184,
+ 183, 182, 181, 180, 179, 178, 177, 176, 175, 174,
+ 173, 172, 171, 170, 169, 168, 167, 166, 165, 164,
+ 163, 162, 161, 159, 158, 157, 156, 155, 153, 152,
+ 151, 149, 148, 145, 132, 130, 129, 126, 125, 124,
+ 123, 122, 118, 117, 116, 115, 114, 113, 111, 110,
+ 109, 108, 107, 106, 104, 103, 102, 100, 99, 98,
+ 97, 96, 95, 94, 91, 90, 89, 88, 86, 85,
+ 84, 83, 82, 81, 80, 79, 77, 76, 75, 74,
+
+ 73, 72, 71, 70, 69, 67, 49, 44, 34, 32,
+ 30, 29, 24, 22, 21, 19, 17, 16, 15, 9,
+ 3, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543, 543, 543, 543, 543, 543, 543, 543, 543, 543,
+ 543
} ;
static tao_yy_state_type tao_yy_last_accepting_state;
@@ -781,7 +784,7 @@ static char *tao_yy_last_accepting_cpos;
char tao_yytext[TAO_YYLMAX];
char *tao_yytext_ptr;
#define INITIAL 0
-/* $Id: idl.ll,v 1.60 2002/01/31 19:27:19 parsons Exp $
+/* $Id: idl.ll,v 1.60.4.2 2002/03/15 22:08:28 parsons Exp $
COPYRIGHT
@@ -1130,13 +1133,13 @@ tao_yy_match:
while ( tao_yy_chk[tao_yy_base[tao_yy_current_state] + tao_yy_c] != tao_yy_current_state )
{
tao_yy_current_state = (int) tao_yy_def[tao_yy_current_state];
- if ( tao_yy_current_state >= 538 )
+ if ( tao_yy_current_state >= 544 )
tao_yy_c = tao_yy_meta[(unsigned int) tao_yy_c];
}
tao_yy_current_state = tao_yy_nxt[tao_yy_base[tao_yy_current_state] + (unsigned int) tao_yy_c];
++tao_yy_cp;
}
- while ( tao_yy_base[tao_yy_current_state] != 1015 );
+ while ( tao_yy_base[tao_yy_current_state] != 1022 );
tao_yy_find_action:
tao_yy_act = tao_yy_accept[tao_yy_current_state];
@@ -1168,268 +1171,272 @@ return IDL_ANY;
TAO_YY_BREAK
case 2:
TAO_YY_RULE_SETUP
-return IDL_MODULE;
+return IDL_OBJECT;
TAO_YY_BREAK
case 3:
TAO_YY_RULE_SETUP
-return IDL_RAISES;
+return IDL_MODULE;
TAO_YY_BREAK
case 4:
TAO_YY_RULE_SETUP
-return IDL_READONLY;
+return IDL_RAISES;
TAO_YY_BREAK
case 5:
TAO_YY_RULE_SETUP
-return IDL_ATTRIBUTE;
+return IDL_READONLY;
TAO_YY_BREAK
case 6:
TAO_YY_RULE_SETUP
-return IDL_EXCEPTION;
+return IDL_ATTRIBUTE;
TAO_YY_BREAK
case 7:
TAO_YY_RULE_SETUP
-return IDL_CONTEXT;
+return IDL_EXCEPTION;
TAO_YY_BREAK
case 8:
TAO_YY_RULE_SETUP
-return IDL_INTERFACE;
+return IDL_CONTEXT;
TAO_YY_BREAK
case 9:
TAO_YY_RULE_SETUP
-return IDL_CONST;
+return IDL_INTERFACE;
TAO_YY_BREAK
case 10:
TAO_YY_RULE_SETUP
-return IDL_TYPEDEF;
+return IDL_CONST;
TAO_YY_BREAK
case 11:
TAO_YY_RULE_SETUP
-return IDL_STRUCT;
+return IDL_TYPEDEF;
TAO_YY_BREAK
case 12:
TAO_YY_RULE_SETUP
-return IDL_ENUM;
+return IDL_STRUCT;
TAO_YY_BREAK
case 13:
TAO_YY_RULE_SETUP
-return IDL_STRING;
+return IDL_ENUM;
TAO_YY_BREAK
case 14:
TAO_YY_RULE_SETUP
-return IDL_WSTRING;
+return IDL_STRING;
TAO_YY_BREAK
case 15:
TAO_YY_RULE_SETUP
-return IDL_SEQUENCE;
+return IDL_WSTRING;
TAO_YY_BREAK
case 16:
TAO_YY_RULE_SETUP
-return IDL_UNION;
+return IDL_SEQUENCE;
TAO_YY_BREAK
case 17:
TAO_YY_RULE_SETUP
-return IDL_FIXED;
+return IDL_UNION;
TAO_YY_BREAK
case 18:
TAO_YY_RULE_SETUP
-return IDL_SWITCH;
+return IDL_FIXED;
TAO_YY_BREAK
case 19:
TAO_YY_RULE_SETUP
-return IDL_CASE;
+return IDL_SWITCH;
TAO_YY_BREAK
case 20:
TAO_YY_RULE_SETUP
-return IDL_DEFAULT;
+return IDL_CASE;
TAO_YY_BREAK
case 21:
TAO_YY_RULE_SETUP
-return IDL_FLOAT;
+return IDL_DEFAULT;
TAO_YY_BREAK
case 22:
TAO_YY_RULE_SETUP
-return IDL_DOUBLE;
+return IDL_FLOAT;
TAO_YY_BREAK
case 23:
TAO_YY_RULE_SETUP
-return IDL_LONG;
+return IDL_DOUBLE;
TAO_YY_BREAK
case 24:
TAO_YY_RULE_SETUP
-return IDL_SHORT;
+return IDL_LONG;
TAO_YY_BREAK
case 25:
TAO_YY_RULE_SETUP
-return IDL_UNSIGNED;
+return IDL_SHORT;
TAO_YY_BREAK
case 26:
TAO_YY_RULE_SETUP
-return IDL_CHAR;
+return IDL_UNSIGNED;
TAO_YY_BREAK
case 27:
TAO_YY_RULE_SETUP
-return IDL_WCHAR;
+return IDL_CHAR;
TAO_YY_BREAK
case 28:
TAO_YY_RULE_SETUP
-return IDL_BOOLEAN;
+return IDL_WCHAR;
TAO_YY_BREAK
case 29:
TAO_YY_RULE_SETUP
-return IDL_OCTET;
+return IDL_BOOLEAN;
TAO_YY_BREAK
case 30:
TAO_YY_RULE_SETUP
-return IDL_VOID;
+return IDL_OCTET;
TAO_YY_BREAK
case 31:
TAO_YY_RULE_SETUP
-return IDL_NATIVE;
+return IDL_VOID;
TAO_YY_BREAK
case 32:
TAO_YY_RULE_SETUP
-return IDL_LOCAL;
+return IDL_NATIVE;
TAO_YY_BREAK
case 33:
TAO_YY_RULE_SETUP
-return scan_obv_token (IDL_ABSTRACT);
+return IDL_LOCAL;
TAO_YY_BREAK
case 34:
TAO_YY_RULE_SETUP
-return scan_obv_token (IDL_CUSTOM);
+return scan_obv_token (IDL_ABSTRACT);
TAO_YY_BREAK
case 35:
TAO_YY_RULE_SETUP
-return scan_obv_token (IDL_FACTORY);
+return scan_obv_token (IDL_CUSTOM);
TAO_YY_BREAK
case 36:
TAO_YY_RULE_SETUP
-return scan_obv_token (IDL_PRIVATE);
+return scan_obv_token (IDL_FACTORY);
TAO_YY_BREAK
case 37:
TAO_YY_RULE_SETUP
-return scan_obv_token (IDL_PUBLIC);
+return scan_obv_token (IDL_PRIVATE);
TAO_YY_BREAK
case 38:
TAO_YY_RULE_SETUP
-return scan_obv_token (IDL_SUPPORTS);
+return scan_obv_token (IDL_PUBLIC);
TAO_YY_BREAK
case 39:
TAO_YY_RULE_SETUP
-return scan_obv_token (IDL_TRUNCATABLE);
+return scan_obv_token (IDL_SUPPORTS);
TAO_YY_BREAK
case 40:
TAO_YY_RULE_SETUP
-return scan_obv_token (IDL_VALUETYPE);
+return scan_obv_token (IDL_TRUNCATABLE);
TAO_YY_BREAK
case 41:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_COMPONENT);
+return scan_obv_token (IDL_VALUETYPE);
TAO_YY_BREAK
case 42:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_CONSUMES);
+return scan_ccm_token (IDL_COMPONENT);
TAO_YY_BREAK
case 43:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_EMITS);
+return scan_ccm_token (IDL_CONSUMES);
TAO_YY_BREAK
case 44:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_EVENTTYPE);
+return scan_ccm_token (IDL_EMITS);
TAO_YY_BREAK
case 45:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_FINDER);
+return scan_ccm_token (IDL_EVENTTYPE);
TAO_YY_BREAK
case 46:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_GETRAISES);
+return scan_ccm_token (IDL_FINDER);
TAO_YY_BREAK
case 47:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_HOME);
+return scan_ccm_token (IDL_GETRAISES);
TAO_YY_BREAK
case 48:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_IMPORT);
+return scan_ccm_token (IDL_HOME);
TAO_YY_BREAK
case 49:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_MULTIPLE);
+return scan_ccm_token (IDL_IMPORT);
TAO_YY_BREAK
case 50:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_PRIMARYKEY);
+return scan_ccm_token (IDL_MULTIPLE);
TAO_YY_BREAK
case 51:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_PROVIDES);
+return scan_ccm_token (IDL_PRIMARYKEY);
TAO_YY_BREAK
case 52:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_PUBLISHES);
+return scan_ccm_token (IDL_PROVIDES);
TAO_YY_BREAK
case 53:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_SETRAISES);
+return scan_ccm_token (IDL_PUBLISHES);
TAO_YY_BREAK
case 54:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_TYPEID);
+return scan_ccm_token (IDL_SETRAISES);
TAO_YY_BREAK
case 55:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_TYPEPREFIX);
+return scan_ccm_token (IDL_TYPEID);
TAO_YY_BREAK
case 56:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_USES);
+return scan_ccm_token (IDL_TYPEPREFIX);
TAO_YY_BREAK
case 57:
TAO_YY_RULE_SETUP
-return scan_ccm_token (IDL_MANAGES);
+return scan_ccm_token (IDL_USES);
TAO_YY_BREAK
case 58:
TAO_YY_RULE_SETUP
-return IDL_TRUETOK;
+return scan_ccm_token (IDL_MANAGES);
TAO_YY_BREAK
case 59:
TAO_YY_RULE_SETUP
-return IDL_FALSETOK;
+return IDL_TRUETOK;
TAO_YY_BREAK
case 60:
TAO_YY_RULE_SETUP
-return IDL_INOUT;
+return IDL_FALSETOK;
TAO_YY_BREAK
case 61:
TAO_YY_RULE_SETUP
-return IDL_IN;
+return IDL_INOUT;
TAO_YY_BREAK
case 62:
TAO_YY_RULE_SETUP
-return IDL_OUT;
+return IDL_IN;
TAO_YY_BREAK
case 63:
TAO_YY_RULE_SETUP
-return IDL_ONEWAY;
+return IDL_OUT;
TAO_YY_BREAK
case 64:
TAO_YY_RULE_SETUP
-return IDL_LEFT_SHIFT;
+return IDL_ONEWAY;
TAO_YY_BREAK
case 65:
TAO_YY_RULE_SETUP
-return IDL_RIGHT_SHIFT;
+return IDL_LEFT_SHIFT;
TAO_YY_BREAK
case 66:
TAO_YY_RULE_SETUP
+return IDL_RIGHT_SHIFT;
+ TAO_YY_BREAK
+case 67:
+TAO_YY_RULE_SETUP
{
tao_yylval.strval = (char *) "::";
return IDL_SCOPE_DELIMITOR;
}
TAO_YY_BREAK
-case 67:
+case 68:
TAO_YY_RULE_SETUP
{
// Make sure that this identifier is not a C++ keyword. If it is,
@@ -1444,70 +1451,68 @@ TAO_YY_RULE_SETUP
if (entry)
tao_yylval.strval = ACE_OS::strdup (entry->mapping_);
else
- {
tao_yylval.strval = ACE_OS::strdup (ace_tao_yytext);
- }
return IDENTIFIER;
}
TAO_YY_BREAK
-case 68:
+case 69:
TAO_YY_RULE_SETUP
{
tao_yylval.dval = idl_atof(ace_tao_yytext);
return IDL_FLOATING_PT_LITERAL;
}
TAO_YY_BREAK
-case 69:
+case 70:
TAO_YY_RULE_SETUP
{
tao_yylval.dval = idl_atof(ace_tao_yytext);
return IDL_FLOATING_PT_LITERAL;
}
TAO_YY_BREAK
-case 70:
+case 71:
TAO_YY_RULE_SETUP
{
tao_yylval.ival = idl_atoi(ace_tao_yytext, 10);
return IDL_INTEGER_LITERAL;
}
TAO_YY_BREAK
-case 71:
+case 72:
TAO_YY_RULE_SETUP
{
tao_yylval.uival = idl_atoui(ace_tao_yytext, 10);
return IDL_UINTEGER_LITERAL;
}
TAO_YY_BREAK
-case 72:
+case 73:
TAO_YY_RULE_SETUP
{
tao_yylval.ival = idl_atoi(ace_tao_yytext, 16);
return IDL_INTEGER_LITERAL;
}
TAO_YY_BREAK
-case 73:
+case 74:
TAO_YY_RULE_SETUP
{
tao_yylval.uival = idl_atoui(ace_tao_yytext, 16);
return IDL_UINTEGER_LITERAL;
}
TAO_YY_BREAK
-case 74:
+case 75:
TAO_YY_RULE_SETUP
{
tao_yylval.ival = idl_atoi(ace_tao_yytext, 8);
return IDL_INTEGER_LITERAL;
}
TAO_YY_BREAK
-case 75:
+case 76:
TAO_YY_RULE_SETUP
{
tao_yylval.uival = idl_atoui(ace_tao_yytext, 8);
return IDL_UINTEGER_LITERAL;
}
TAO_YY_BREAK
-case 76:
+case 77:
TAO_YY_RULE_SETUP
{
/* Skip the quotes */
@@ -1517,7 +1522,7 @@ TAO_YY_RULE_SETUP
return IDL_STRING_LITERAL;
}
TAO_YY_BREAK
-case 77:
+case 78:
TAO_YY_RULE_SETUP
{
/* Skip the bookends */
@@ -1527,14 +1532,14 @@ TAO_YY_RULE_SETUP
return IDL_WSTRING_LITERAL;
}
TAO_YY_BREAK
-case 78:
+case 79:
TAO_YY_RULE_SETUP
{
tao_yylval.cval = ace_tao_yytext [1];
return IDL_CHARACTER_LITERAL;
}
TAO_YY_BREAK
-case 79:
+case 80:
TAO_YY_RULE_SETUP
{
// octal character constant
@@ -1542,7 +1547,7 @@ TAO_YY_RULE_SETUP
return IDL_CHARACTER_LITERAL;
}
TAO_YY_BREAK
-case 80:
+case 81:
TAO_YY_RULE_SETUP
{
// hexadecimal character constant
@@ -1550,14 +1555,14 @@ TAO_YY_RULE_SETUP
return IDL_CHARACTER_LITERAL;
}
TAO_YY_BREAK
-case 81:
+case 82:
TAO_YY_RULE_SETUP
{
tao_yylval.cval = idl_escape_reader(ace_tao_yytext + 1);
return IDL_CHARACTER_LITERAL;
}
TAO_YY_BREAK
-case 82:
+case 83:
TAO_YY_RULE_SETUP
{
// wide character constant
@@ -1565,7 +1570,7 @@ TAO_YY_RULE_SETUP
return IDL_WCHAR_LITERAL;
}
TAO_YY_BREAK
-case 83:
+case 84:
TAO_YY_RULE_SETUP
{
// hexadecimal wide character constant
@@ -1573,65 +1578,65 @@ TAO_YY_RULE_SETUP
return IDL_WCHAR_LITERAL;
}
TAO_YY_BREAK
-case 84:
case 85:
+case 86:
TAO_YY_RULE_SETUP
{/* remember pragma */
idl_global->set_lineno(idl_global->lineno() + 1);
idl_store_pragma(ace_tao_yytext);
}
break;
-case 86:
case 87:
+case 88:
TAO_YY_RULE_SETUP
{/* ignore file */
idl_global->set_lineno(idl_global->lineno() + 1);
}
TAO_YY_BREAK
-case 88:
case 89:
+case 90:
TAO_YY_RULE_SETUP
{
idl_parse_line_and_file(ace_tao_yytext);
}
TAO_YY_BREAK
-case 90:
case 91:
+case 92:
TAO_YY_RULE_SETUP
{
idl_parse_line_and_file(ace_tao_yytext);
}
break;
-case 92:
case 93:
+case 94:
TAO_YY_RULE_SETUP
{
idl_parse_line_and_file(ace_tao_yytext);
}
break;
-case 94:
case 95:
+case 96:
TAO_YY_RULE_SETUP
{
idl_parse_line_and_file(ace_tao_yytext);
}
break;
-case 96:
case 97:
+case 98:
TAO_YY_RULE_SETUP
{
/* ignore cpp ident */
idl_global->set_lineno(idl_global->lineno() + 1);
}
break;
-case 98:
+case 99:
TAO_YY_RULE_SETUP
{
/* ignore comments */
idl_global->set_lineno(idl_global->lineno() + 1);
}
break;
-case 99:
+case 100:
TAO_YY_RULE_SETUP
{
for(;;) {
@@ -1648,21 +1653,21 @@ TAO_YY_RULE_SETUP
}
}
break;
-case 100:
+case 101:
TAO_YY_RULE_SETUP
;
break;
-case 101:
+case 102:
TAO_YY_RULE_SETUP
{
idl_global->set_lineno(idl_global->lineno() + 1);
}
break;
-case 102:
+case 103:
TAO_YY_RULE_SETUP
return ace_tao_yytext [0];
break;
-case 103:
+case 104:
TAO_YY_RULE_SETUP
TAO_YY_ECHO;
break;
@@ -1958,7 +1963,7 @@ static tao_yy_state_type tao_yy_get_previous_state()
while ( tao_yy_chk[tao_yy_base[tao_yy_current_state] + tao_yy_c] != tao_yy_current_state )
{
tao_yy_current_state = (int) tao_yy_def[tao_yy_current_state];
- if ( tao_yy_current_state >= 538 )
+ if ( tao_yy_current_state >= 544 )
tao_yy_c = tao_yy_meta[(unsigned int) tao_yy_c];
}
tao_yy_current_state = tao_yy_nxt[tao_yy_base[tao_yy_current_state] + (unsigned int) tao_yy_c];
@@ -1993,11 +1998,11 @@ tao_yy_state_type tao_yy_current_state;
while ( tao_yy_chk[tao_yy_base[tao_yy_current_state] + tao_yy_c] != tao_yy_current_state )
{
tao_yy_current_state = (int) tao_yy_def[tao_yy_current_state];
- if ( tao_yy_current_state >= 538 )
+ if ( tao_yy_current_state >= 544 )
tao_yy_c = tao_yy_meta[(unsigned int) tao_yy_c];
}
tao_yy_current_state = tao_yy_nxt[tao_yy_base[tao_yy_current_state] + (unsigned int) tao_yy_c];
- tao_yy_is_jam = (tao_yy_current_state == 537);
+ tao_yy_is_jam = (tao_yy_current_state == 543);
return tao_yy_is_jam ? 0 : tao_yy_current_state;
}
diff --git a/TAO/TAO_IDL/fe/lex.yy.cpp.diff b/TAO/TAO_IDL/fe/lex.yy.cpp.diff
index 7097049493c..953b9c5927b 100644
--- a/TAO/TAO_IDL/fe/lex.yy.cpp.diff
+++ b/TAO/TAO_IDL/fe/lex.yy.cpp.diff
@@ -16,107 +16,107 @@
+ register char *tao_yy_cp = 0, *tao_yy_bp = 0;
register int tao_yy_act;
-@@ -1568,7 +1568,7 @@
+@@ -1585,7 +1585,7 @@
idl_global->set_lineno(idl_global->lineno() + 1);
idl_store_pragma(ace_tao_yytext);
}
- TAO_YY_BREAK
+ break;
- case 86:
case 87:
+ case 88:
-@@ -1575,7 +1575,7 @@
+@@ -1592,7 +1592,7 @@
{/* ignore file */
idl_global->set_lineno(idl_global->lineno() + 1);
}
- TAO_YY_BREAK
+ break;
-case 88:
case 89:
+case 90:
TAO_YY_RULE_SETUP
{
idl_parse_line_and_file(ace_tao_yytext);
}
- TAO_YY_BREAK
+ break;
- case 90:
case 91:
+ case 92:
-@@ -1588,7 +1588,7 @@
+@@ -1605,7 +1605,7 @@
TAO_YY_RULE_SETUP
{
idl_parse_line_and_file(ace_tao_yytext);
}
- TAO_YY_BREAK
+ break;
- case 92:
case 93:
+ case 94:
-@@ -1595,7 +1595,7 @@
+@@ -1612,7 +1612,7 @@
TAO_YY_RULE_SETUP
{
idl_parse_line_and_file(ace_tao_yytext);
}
- TAO_YY_BREAK
+ break;
- case 94:
case 95:
+ case 96:
-@@ -1602,7 +1602,7 @@
+@@ -1619,7 +1619,7 @@
TAO_YY_RULE_SETUP
{
idl_parse_line_and_file(ace_tao_yytext);
}
- TAO_YY_BREAK
+ break;
- case 96:
case 97:
+ case 98:
-@@ -1611,14 +1611,14 @@
+@@ -1628,14 +1628,14 @@
/* ignore cpp ident */
idl_global->set_lineno(idl_global->lineno() + 1);
}
- TAO_YY_BREAK
+ break;
- case 98:
+ case 99:
TAO_YY_RULE_SETUP
-@@ -1617,7 +1617,7 @@
+@@ -1634,7 +1634,7 @@
{
/* ignore comments */
idl_global->set_lineno(idl_global->lineno() + 1);
}
- TAO_YY_BREAK
+ break;
- case 99:
+ case 100:
TAO_YY_RULE_SETUP
-@@ -1635,25 +1635,25 @@
+@@ -1651,25 +1651,25 @@
}
}
}
- TAO_YY_BREAK
+ break;
- case 100:
+ case 101:
TAO_YY_RULE_SETUP
;
- TAO_YY_BREAK
+ break;
- case 101:
+ case 102:
TAO_YY_RULE_SETUP
{
idl_global->set_lineno(idl_global->lineno() + 1);
}
- TAO_YY_BREAK
+ break;
- case 102:
+ case 103:
TAO_YY_RULE_SETUP
-@@ -1651,7 +1651,7 @@
+@@ -1667,7 +1667,7 @@
return ace_tao_yytext [0];
- TAO_YY_BREAK
+ break;
- case 103:
+ case 104:
TAO_YY_RULE_SETUP
TAO_YY_ECHO;
- TAO_YY_BREAK
diff --git a/TAO/TAO_IDL/fe/y.tab.cpp b/TAO/TAO_IDL/fe/y.tab.cpp
index a6bad14ab4d..c74013ced4b 100644
--- a/TAO/TAO_IDL/fe/y.tab.cpp
+++ b/TAO/TAO_IDL/fe/y.tab.cpp
@@ -95,104 +95,105 @@ typedef union {
#define IDL_BOOLEAN 270
#define IDL_FIXED 271
#define IDL_ANY 272
-#define IDL_STRUCT 273
-#define IDL_UNION 274
-#define IDL_SWITCH 275
-#define IDL_ENUM 276
-#define IDL_SEQUENCE 277
-#define IDL_STRING 278
-#define IDL_WSTRING 279
-#define IDL_EXCEPTION 280
-#define IDL_CASE 281
-#define IDL_DEFAULT 282
-#define IDL_READONLY 283
-#define IDL_ATTRIBUTE 284
-#define IDL_ONEWAY 285
-#define IDL_IDEMPOTENT 286
-#define IDL_VOID 287
-#define IDL_IN 288
-#define IDL_OUT 289
-#define IDL_INOUT 290
-#define IDL_RAISES 291
-#define IDL_CONTEXT 292
-#define IDL_NATIVE 293
-#define IDL_LOCAL 294
-#define IDL_ABSTRACT 295
-#define IDL_CUSTOM 296
-#define IDL_FACTORY 297
-#define IDL_PRIVATE 298
-#define IDL_PUBLIC 299
-#define IDL_SUPPORTS 300
-#define IDL_TRUNCATABLE 301
-#define IDL_VALUETYPE 302
-#define IDL_COMPONENT 303
-#define IDL_CONSUMES 304
-#define IDL_EMITS 305
-#define IDL_EVENTTYPE 306
-#define IDL_FINDER 307
-#define IDL_GETRAISES 308
-#define IDL_HOME 309
-#define IDL_IMPORT 310
-#define IDL_MULTIPLE 311
-#define IDL_PRIMARYKEY 312
-#define IDL_PROVIDES 313
-#define IDL_PUBLISHES 314
-#define IDL_SETRAISES 315
-#define IDL_TYPEID 316
-#define IDL_TYPEPREFIX 317
-#define IDL_USES 318
-#define IDL_MANAGES 319
-#define IDL_INTEGER_LITERAL 320
-#define IDL_UINTEGER_LITERAL 321
-#define IDL_STRING_LITERAL 322
-#define IDL_CHARACTER_LITERAL 323
-#define IDL_FLOATING_PT_LITERAL 324
-#define IDL_TRUETOK 325
-#define IDL_FALSETOK 326
-#define IDL_SCOPE_DELIMITOR 327
-#define IDL_LEFT_SHIFT 328
-#define IDL_RIGHT_SHIFT 329
-#define IDL_WCHAR_LITERAL 330
-#define IDL_WSTRING_LITERAL 331
+#define IDL_OBJECT 273
+#define IDL_STRUCT 274
+#define IDL_UNION 275
+#define IDL_SWITCH 276
+#define IDL_ENUM 277
+#define IDL_SEQUENCE 278
+#define IDL_STRING 279
+#define IDL_WSTRING 280
+#define IDL_EXCEPTION 281
+#define IDL_CASE 282
+#define IDL_DEFAULT 283
+#define IDL_READONLY 284
+#define IDL_ATTRIBUTE 285
+#define IDL_ONEWAY 286
+#define IDL_IDEMPOTENT 287
+#define IDL_VOID 288
+#define IDL_IN 289
+#define IDL_OUT 290
+#define IDL_INOUT 291
+#define IDL_RAISES 292
+#define IDL_CONTEXT 293
+#define IDL_NATIVE 294
+#define IDL_LOCAL 295
+#define IDL_ABSTRACT 296
+#define IDL_CUSTOM 297
+#define IDL_FACTORY 298
+#define IDL_PRIVATE 299
+#define IDL_PUBLIC 300
+#define IDL_SUPPORTS 301
+#define IDL_TRUNCATABLE 302
+#define IDL_VALUETYPE 303
+#define IDL_COMPONENT 304
+#define IDL_CONSUMES 305
+#define IDL_EMITS 306
+#define IDL_EVENTTYPE 307
+#define IDL_FINDER 308
+#define IDL_GETRAISES 309
+#define IDL_HOME 310
+#define IDL_IMPORT 311
+#define IDL_MULTIPLE 312
+#define IDL_PRIMARYKEY 313
+#define IDL_PROVIDES 314
+#define IDL_PUBLISHES 315
+#define IDL_SETRAISES 316
+#define IDL_TYPEID 317
+#define IDL_TYPEPREFIX 318
+#define IDL_USES 319
+#define IDL_MANAGES 320
+#define IDL_INTEGER_LITERAL 321
+#define IDL_UINTEGER_LITERAL 322
+#define IDL_STRING_LITERAL 323
+#define IDL_CHARACTER_LITERAL 324
+#define IDL_FLOATING_PT_LITERAL 325
+#define IDL_TRUETOK 326
+#define IDL_FALSETOK 327
+#define IDL_SCOPE_DELIMITOR 328
+#define IDL_LEFT_SHIFT 329
+#define IDL_RIGHT_SHIFT 330
+#define IDL_WCHAR_LITERAL 331
+#define IDL_WSTRING_LITERAL 332
#define TAO_YYERRCODE 256
short tao_yylhs[] = { -1,
- 0, 74, 74, 76, 75, 78, 75, 80, 75, 82,
- 75, 84, 75, 86, 75, 88, 75, 90, 75, 91,
- 75, 92, 93, 94, 95, 87, 85, 85, 98, 100,
- 101, 96, 102, 68, 33, 33, 33, 103, 22, 22,
- 89, 89, 89, 89, 104, 104, 109, 111, 112, 108,
- 113, 114, 115, 105, 34, 116, 69, 67, 67, 24,
- 24, 106, 106, 107, 110, 110, 117, 117, 117, 122,
- 118, 123, 118, 99, 99, 124, 119, 125, 119, 126,
- 119, 127, 119, 128, 119, 130, 119, 132, 119, 133,
- 119, 20, 134, 21, 21, 16, 135, 16, 136, 16,
- 72, 97, 97, 97, 137, 138, 139, 140, 81, 50,
+ 0, 75, 75, 77, 76, 79, 76, 81, 76, 83,
+ 76, 85, 76, 87, 76, 89, 76, 91, 76, 92,
+ 76, 93, 94, 95, 96, 88, 86, 86, 99, 101,
+ 102, 97, 103, 69, 33, 33, 33, 104, 22, 22,
+ 90, 90, 90, 90, 105, 105, 110, 112, 113, 109,
+ 114, 115, 116, 106, 34, 117, 70, 68, 68, 24,
+ 24, 107, 107, 108, 111, 111, 118, 118, 118, 123,
+ 119, 124, 119, 100, 100, 125, 120, 126, 120, 127,
+ 120, 128, 120, 129, 120, 131, 120, 133, 120, 134,
+ 120, 20, 135, 21, 21, 16, 136, 16, 137, 16,
+ 73, 98, 98, 98, 138, 139, 140, 141, 82, 50,
50, 50, 50, 50, 50, 50, 50, 50, 35, 36,
37, 37, 38, 38, 39, 39, 40, 40, 40, 41,
41, 41, 42, 42, 42, 42, 43, 43, 43, 43,
44, 44, 44, 45, 45, 45, 45, 45, 45, 45,
- 45, 45, 46, 142, 73, 73, 73, 73, 73, 73,
- 144, 141, 1, 1, 2, 2, 2, 59, 59, 59,
- 59, 59, 59, 59, 4, 4, 4, 3, 3, 3,
- 143, 143, 29, 147, 30, 30, 63, 63, 31, 148,
- 32, 32, 64, 65, 51, 51, 57, 57, 57, 58,
- 58, 58, 54, 54, 54, 56, 52, 52, 60, 53,
- 55, 149, 71, 150, 152, 153, 7, 151, 155, 155,
- 156, 154, 157, 158, 121, 159, 121, 160, 70, 161,
- 162, 163, 164, 166, 167, 10, 9, 9, 9, 9,
- 9, 9, 165, 169, 169, 170, 171, 168, 172, 168,
- 27, 28, 28, 173, 48, 174, 175, 48, 176, 49,
- 145, 146, 177, 178, 180, 181, 8, 179, 184, 183,
- 183, 182, 185, 186, 5, 5, 187, 188, 13, 190,
- 191, 6, 6, 189, 193, 194, 14, 14, 192, 195,
- 11, 25, 26, 26, 196, 197, 47, 198, 199, 129,
- 66, 66, 200, 201, 202, 203, 83, 204, 206, 207,
- 208, 131, 62, 62, 62, 12, 12, 209, 211, 120,
- 212, 210, 214, 210, 213, 217, 216, 216, 218, 219,
- 215, 220, 205, 222, 205, 221, 225, 224, 224, 226,
- 227, 223, 15, 15, 15, 15, 61, 61, 61, 228,
- 229, 23, 23, 230, 231, 17, 17, 18, 232, 19,
- 19, 77, 79,
+ 45, 45, 46, 143, 74, 74, 74, 74, 74, 74,
+ 145, 142, 1, 1, 2, 2, 2, 59, 59, 59,
+ 59, 59, 59, 59, 59, 4, 4, 4, 3, 3,
+ 3, 144, 144, 29, 148, 30, 30, 64, 64, 31,
+ 149, 32, 32, 65, 66, 51, 51, 57, 57, 57,
+ 58, 58, 58, 54, 54, 54, 55, 52, 52, 60,
+ 53, 56, 61, 150, 72, 151, 153, 154, 7, 152,
+ 156, 156, 157, 155, 158, 159, 122, 160, 122, 161,
+ 71, 162, 163, 164, 165, 167, 168, 10, 9, 9,
+ 9, 9, 9, 9, 166, 170, 170, 171, 172, 169,
+ 173, 169, 27, 28, 28, 174, 48, 175, 176, 48,
+ 177, 49, 146, 147, 178, 179, 181, 182, 8, 180,
+ 185, 184, 184, 183, 186, 187, 5, 5, 188, 189,
+ 13, 191, 192, 6, 6, 190, 194, 195, 14, 14,
+ 193, 196, 11, 25, 26, 26, 197, 198, 47, 199,
+ 200, 130, 67, 67, 201, 202, 203, 204, 84, 205,
+ 207, 208, 209, 132, 63, 63, 63, 12, 12, 210,
+ 212, 121, 213, 211, 215, 211, 214, 218, 217, 217,
+ 219, 220, 216, 221, 206, 223, 206, 222, 226, 225,
+ 225, 227, 228, 224, 15, 15, 15, 15, 62, 62,
+ 62, 229, 230, 23, 23, 231, 232, 17, 17, 18,
+ 233, 19, 19, 78, 80,
};
short tao_yylen[] = { 2,
1, 2, 0, 0, 3, 0, 3, 0, 3, 0,
@@ -213,444 +214,461 @@ short tao_yylen[] = { 2,
1, 1, 1, 0, 3, 1, 1, 1, 2, 1,
0, 3, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 2, 0, 4, 0, 1, 1, 2, 0,
- 4, 0, 1, 1, 1, 1, 1, 2, 1, 2,
- 3, 2, 1, 1, 2, 1, 1, 1, 1, 1,
- 1, 0, 3, 0, 0, 0, 7, 2, 2, 0,
- 0, 2, 0, 0, 5, 0, 3, 0, 3, 0,
- 0, 0, 0, 0, 0, 14, 1, 1, 1, 1,
- 1, 1, 2, 2, 0, 0, 0, 5, 0, 3,
- 2, 2, 0, 0, 3, 0, 0, 5, 0, 3,
- 1, 1, 0, 0, 0, 0, 9, 2, 0, 4,
- 0, 1, 0, 0, 6, 2, 0, 0, 5, 0,
- 0, 6, 1, 1, 0, 0, 6, 1, 1, 0,
- 3, 2, 2, 0, 0, 0, 5, 0, 0, 6,
- 1, 0, 0, 0, 0, 0, 9, 0, 0, 0,
- 0, 10, 1, 1, 0, 1, 1, 0, 0, 5,
- 0, 3, 0, 4, 2, 0, 4, 0, 0, 0,
- 5, 0, 3, 0, 4, 2, 0, 4, 0, 0,
- 0, 5, 1, 1, 1, 1, 1, 1, 1, 0,
- 0, 6, 0, 0, 0, 6, 0, 2, 0, 4,
- 0, 3, 3,
+ 1, 1, 1, 2, 0, 4, 0, 1, 1, 2,
+ 0, 4, 0, 1, 1, 1, 1, 1, 2, 1,
+ 2, 3, 2, 1, 1, 2, 1, 1, 1, 1,
+ 1, 1, 1, 0, 3, 0, 0, 0, 7, 2,
+ 2, 0, 0, 2, 0, 0, 5, 0, 3, 0,
+ 3, 0, 0, 0, 0, 0, 0, 14, 1, 1,
+ 1, 1, 1, 1, 2, 2, 0, 0, 0, 5,
+ 0, 3, 2, 2, 0, 0, 3, 0, 0, 5,
+ 0, 3, 1, 1, 0, 0, 0, 0, 9, 2,
+ 0, 4, 0, 1, 0, 0, 6, 2, 0, 0,
+ 5, 0, 0, 6, 1, 1, 0, 0, 6, 1,
+ 1, 0, 3, 2, 2, 0, 0, 0, 5, 0,
+ 0, 6, 1, 0, 0, 0, 0, 0, 9, 0,
+ 0, 0, 0, 10, 1, 1, 0, 1, 1, 0,
+ 0, 5, 0, 3, 0, 4, 2, 0, 4, 0,
+ 0, 0, 5, 0, 3, 0, 4, 2, 0, 4,
+ 0, 0, 0, 5, 1, 1, 1, 1, 1, 1,
+ 1, 0, 0, 6, 0, 0, 0, 6, 0, 2,
+ 0, 4, 0, 3, 3,
};
short tao_yydefred[] = { 3,
- 0, 0, 20, 105, 22, 33, 154, 212, 228, 263,
- 303, 0, 0, 0, 0, 56, 0, 0, 156, 158,
+ 0, 0, 20, 105, 22, 33, 154, 214, 230, 265,
+ 305, 0, 0, 0, 0, 56, 0, 0, 156, 158,
157, 29, 47, 0, 0, 0, 0, 4, 2, 6,
8, 10, 12, 14, 16, 18, 27, 28, 41, 42,
- 43, 44, 46, 160, 181, 182, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 101, 159, 193, 0, 51,
+ 43, 44, 46, 160, 182, 183, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 101, 159, 194, 0, 51,
0, 0, 0, 45, 0, 97, 0, 96, 0, 0,
- 0, 38, 35, 0, 199, 0, 203, 204, 207, 208,
- 209, 210, 206, 211, 277, 284, 289, 58, 64, 163,
- 164, 166, 175, 176, 178, 180, 179, 0, 177, 0,
- 168, 170, 171, 169, 174, 173, 195, 196, 165, 172,
- 0, 0, 214, 0, 0, 230, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 21, 116, 117, 0, 106,
- 110, 111, 113, 114, 115, 112, 23, 34, 161, 155,
- 213, 229, 264, 304, 36, 0, 37, 57, 0, 362,
- 99, 363, 30, 48, 0, 198, 205, 0, 202, 0,
- 273, 276, 0, 280, 285, 0, 215, 5, 7, 9,
- 11, 13, 15, 17, 19, 0, 0, 0, 0, 0,
- 52, 98, 0, 75, 66, 0, 39, 201, 278, 0,
- 0, 55, 0, 0, 231, 221, 107, 24, 194, 162,
- 186, 187, 188, 0, 265, 305, 75, 100, 0, 0,
- 0, 0, 144, 145, 146, 148, 150, 151, 152, 149,
- 147, 0, 0, 0, 0, 0, 153, 0, 0, 0,
- 0, 0, 0, 133, 137, 142, 274, 0, 281, 286,
- 0, 216, 220, 0, 0, 3, 0, 0, 0, 220,
- 0, 90, 301, 313, 314, 0, 0, 76, 78, 80,
- 82, 84, 0, 74, 86, 88, 318, 72, 70, 0,
- 65, 67, 68, 0, 93, 279, 138, 139, 140, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 241, 232, 0, 237, 238, 240,
- 239, 0, 0, 226, 223, 222, 108, 0, 184, 295,
- 291, 294, 272, 266, 271, 0, 0, 0, 317, 344,
- 308, 345, 316, 0, 343, 298, 0, 0, 0, 0,
- 0, 32, 0, 0, 0, 0, 0, 50, 69, 0,
- 143, 0, 0, 0, 0, 0, 0, 0, 134, 135,
- 136, 275, 282, 287, 0, 217, 219, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 54, 91, 0,
- 0, 77, 79, 81, 83, 85, 87, 89, 319, 73,
- 71, 0, 233, 227, 224, 109, 119, 26, 185, 296,
- 293, 267, 269, 307, 309, 299, 0, 0, 0, 0,
- 0, 0, 0, 0, 320, 234, 225, 297, 270, 0,
- 310, 300, 192, 0, 0, 0, 0, 0, 0, 0,
- 322, 329, 0, 328, 249, 256, 254, 246, 253, 235,
- 245, 333, 347, 348, 349, 340, 0, 339, 350, 311,
- 190, 0, 324, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 335, 0, 0, 0, 0, 330, 326, 250,
- 257, 255, 259, 247, 252, 236, 244, 341, 337, 351,
- 354, 312, 191, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 331, 327, 258, 260, 248, 342, 338, 0,
- 355, 352, 0, 361, 0, 0, 356, 359, 0, 360,
+ 0, 38, 35, 0, 200, 0, 204, 205, 208, 209,
+ 210, 211, 207, 212, 213, 279, 286, 291, 58, 64,
+ 163, 164, 166, 176, 177, 179, 181, 180, 0, 178,
+ 0, 168, 170, 171, 169, 173, 174, 196, 197, 165,
+ 172, 175, 0, 0, 216, 0, 0, 232, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 21, 116, 117,
+ 0, 106, 110, 111, 113, 114, 115, 112, 23, 34,
+ 161, 155, 215, 231, 266, 306, 36, 0, 37, 57,
+ 0, 364, 99, 365, 30, 48, 0, 199, 206, 0,
+ 203, 0, 275, 278, 0, 282, 287, 0, 217, 5,
+ 7, 9, 11, 13, 15, 17, 19, 0, 0, 0,
+ 0, 0, 52, 98, 0, 75, 66, 0, 39, 202,
+ 280, 0, 0, 55, 0, 0, 233, 223, 107, 24,
+ 195, 162, 187, 188, 189, 0, 267, 307, 75, 100,
+ 0, 0, 0, 0, 144, 145, 146, 148, 150, 151,
+ 152, 149, 147, 0, 0, 0, 0, 0, 153, 0,
+ 0, 0, 0, 0, 0, 133, 137, 142, 276, 0,
+ 283, 288, 0, 218, 222, 0, 0, 3, 0, 0,
+ 0, 222, 0, 90, 303, 315, 316, 0, 0, 76,
+ 78, 80, 82, 84, 0, 74, 86, 88, 320, 72,
+ 70, 0, 65, 67, 68, 0, 93, 281, 138, 139,
+ 140, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 243, 234, 0, 239,
+ 240, 242, 241, 0, 0, 228, 225, 224, 108, 0,
+ 185, 297, 293, 296, 274, 268, 273, 0, 0, 0,
+ 319, 346, 310, 347, 318, 0, 345, 300, 0, 0,
+ 0, 0, 0, 32, 0, 0, 0, 0, 0, 50,
+ 69, 0, 143, 0, 0, 0, 0, 0, 0, 0,
+ 134, 135, 136, 277, 284, 289, 0, 219, 221, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,
+ 91, 0, 0, 77, 79, 81, 83, 85, 87, 89,
+ 321, 73, 71, 0, 235, 229, 226, 109, 119, 26,
+ 186, 298, 295, 269, 271, 309, 311, 301, 0, 0,
+ 0, 0, 0, 0, 0, 0, 322, 236, 227, 299,
+ 272, 0, 312, 302, 193, 0, 0, 0, 0, 0,
+ 0, 0, 324, 331, 0, 330, 251, 258, 256, 248,
+ 255, 237, 247, 335, 349, 350, 351, 342, 0, 341,
+ 352, 313, 191, 0, 326, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 337, 0, 0, 0, 0, 332,
+ 328, 252, 259, 257, 261, 249, 254, 238, 246, 343,
+ 339, 353, 356, 314, 192, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 333, 329, 260, 262, 250, 344,
+ 340, 0, 357, 354, 0, 363, 0, 0, 358, 361,
+ 0, 362,
};
short tao_yydgoto[] = { 1,
- 305, 90, 91, 92, 93, 94, 95, 96, 296, 97,
- 199, 321, 98, 99, 323, 226, 472, 495, 496, 187,
- 211, 73, 440, 192, 311, 364, 428, 449, 200, 247,
- 412, 420, 22, 23, 386, 227, 228, 229, 230, 231,
- 232, 233, 234, 235, 236, 237, 312, 429, 464, 130,
- 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
- 436, 256, 201, 202, 203, 257, 111, 24, 25, 112,
- 113, 68, 258, 2, 29, 118, 259, 119, 260, 120,
- 261, 121, 262, 122, 34, 123, 35, 124, 36, 125,
- 47, 49, 177, 246, 361, 37, 38, 70, 209, 184,
- 263, 50, 155, 39, 40, 41, 42, 43, 71, 210,
- 185, 270, 146, 207, 317, 65, 271, 272, 264, 274,
- 306, 337, 336, 327, 328, 329, 330, 331, 265, 333,
- 266, 334, 318, 340, 149, 183, 48, 176, 245, 360,
- 140, 51, 44, 178, 45, 46, 362, 457, 52, 117,
- 242, 196, 302, 357, 303, 244, 359, 399, 358, 53,
- 166, 241, 355, 398, 430, 416, 450, 431, 451, 448,
- 478, 445, 447, 446, 476, 477, 54, 179, 314, 249,
- 365, 315, 366, 401, 190, 291, 160, 212, 114, 193,
- 292, 115, 194, 293, 248, 363, 400, 371, 403, 55,
- 180, 250, 367, 370, 411, 402, 419, 456, 335, 405,
- 397, 414, 423, 415, 424, 444, 475, 442, 474, 417,
- 437, 418, 438, 454, 480, 452, 479, 455, 481, 482,
- 493, 499,
+ 307, 91, 92, 93, 94, 95, 96, 97, 298, 98,
+ 201, 323, 99, 100, 325, 228, 474, 497, 498, 189,
+ 213, 73, 442, 194, 313, 366, 430, 451, 202, 249,
+ 414, 422, 22, 23, 388, 229, 230, 231, 232, 233,
+ 234, 235, 236, 237, 238, 239, 314, 431, 466, 132,
+ 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
+ 112, 438, 258, 203, 204, 205, 259, 113, 24, 25,
+ 114, 115, 68, 260, 2, 29, 120, 261, 121, 262,
+ 122, 263, 123, 264, 124, 34, 125, 35, 126, 36,
+ 127, 47, 49, 179, 248, 363, 37, 38, 70, 211,
+ 186, 265, 50, 157, 39, 40, 41, 42, 43, 71,
+ 212, 187, 272, 148, 209, 319, 65, 273, 274, 266,
+ 276, 308, 339, 338, 329, 330, 331, 332, 333, 267,
+ 335, 268, 336, 320, 342, 151, 185, 48, 178, 247,
+ 362, 142, 51, 44, 180, 45, 46, 364, 459, 52,
+ 119, 244, 198, 304, 359, 305, 246, 361, 401, 360,
+ 53, 168, 243, 357, 400, 432, 418, 452, 433, 453,
+ 450, 480, 447, 449, 448, 478, 479, 54, 181, 316,
+ 251, 367, 317, 368, 403, 192, 293, 162, 214, 116,
+ 195, 294, 117, 196, 295, 250, 365, 402, 373, 405,
+ 55, 182, 252, 369, 372, 413, 404, 421, 458, 337,
+ 407, 399, 416, 425, 417, 426, 446, 477, 444, 476,
+ 419, 439, 420, 440, 456, 482, 454, 481, 457, 483,
+ 484, 495, 501,
};
short tao_yysindex[] = { 0,
- 0, 603, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -203, -202, -196, -234, 0, -228, -228, 0, 0,
- 0, 0, 0, 22, 428, -191, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 52, 566, -137, -203,
- 446, -203, -203, -203, -203, 0, 0, 0, 22, 0,
- 22, -175, -175, 0, -203, 0, -159, 0, -155, 56,
- 65, 0, 0, -76, 0, -109, 0, 0, 0, 0,
+ 0, 675, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, -192, -186, -203, -226, 0, -194, -194, 0, 0,
+ 0, 0, 0, 68, 464, -143, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 68, 0, -180,
+ 0, 0, 0, 0, 0, 0, 76, 636, -110, -192,
+ 483, -192, -192, -192, -192, 0, 0, 0, 68, 0,
+ 68, -145, -145, 0, -192, 0, -204, 0, -201, 37,
+ 41, 0, 0, -189, 0, -152, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 22, -191, 0, 100, 131, 0, 78, 148, 158, 184,
- 208, 211, 217, 226, 229, 0, 0, 0, -180, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 126, 0,
+ -161, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 68, -143, 0, 111, 127, 0, 75, 146,
+ 154, 160, 173, 178, 191, 199, 202, 0, 0, 0,
+ -161, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 163, 0, 0,
+ -192, 0, 0, 0, 0, 0, -194, 0, 0, 27,
+ 0, 209, 0, 0, -14, 0, 0, 254, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -192, 169, -192,
+ 189, 190, 0, 0, -192, 0, 0, -161, 0, 0,
+ 0, -24, -194, 0, -24, -24, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 166, 0, 0, -203, 0,
- 0, 0, 0, 0, -228, 0, 0, 28, 0, 232,
- 0, 0, -7, 0, 0, 255, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -203, 186, -203, 187, 188,
- 0, 0, -203, 0, 0, -180, 0, 0, 0, -24,
- -228, 0, -24, -24, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 675, 630,
- 268, 497, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 37, 37, 37, -24, -180, 0, 192, 234, 292,
- -118, 151, -3, 0, 0, 0, 0, -180, 0, 0,
- 584, 0, 0, 403, 270, 0, 289, 245, 81, 0,
- 675, 0, 0, 0, 0, 515, 60, 0, 0, 0,
- 0, 0, 210, 0, 0, 0, 0, 0, 0, 216,
- 0, 0, 0, 286, 0, 0, 0, 0, 0, 305,
- -24, -24, -24, -24, -24, -24, -24, -24, -24, -24,
- 287, 293, 304, 86, 0, 0, -180, 0, 0, 0,
- 0, 248, 0, 0, 0, 0, 0, 603, 0, 0,
- 0, 0, 0, 0, 0, 0, 249, 312, 0, 0,
- 0, 0, 0, -180, 0, 0, 316, 317, 318, 323,
- 328, 0, 329, 335, 94, 403, 403, 0, 0, -228,
- 0, 234, 292, -118, 151, 151, -3, -3, 0, 0,
- 0, 0, 0, 0, 354, 0, 0, 337, -203, -24,
- 272, -203, -24, 245, 276, 358, 278, 0, 0, 147,
- 541, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -180, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 365, 283, 348, 321,
- 81, 371, -203, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 374, 128, -124, 376, -90, 127, 375,
- 0, 0, 379, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 380, 0, 0, 0,
- 0, 541, 0, 378, 364, -24, 368, 446, -59, 307,
- -124, 541, 0, 385, 390, 142, -203, 0, 0, 0,
+ 748, 721, 274, 515, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 38, 38, 38, -24, -161, 0, 172,
+ 236, 295, -199, -8, 144, 0, 0, 0, 0, -161,
+ 0, 0, 655, 0, 0, 445, 273, 0, 291, 245,
+ 80, 0, 748, 0, 0, 0, 0, 582, 53, 0,
+ 0, 0, 0, 0, 214, 0, 0, 0, 0, 0,
+ 0, 216, 0, 0, 0, 288, 0, 0, 0, 0,
+ 0, 307, -24, -24, -24, -24, -24, -24, -24, -24,
+ -24, -24, 293, 294, 305, 95, 0, 0, -161, 0,
+ 0, 0, 0, 243, 0, 0, 0, 0, 0, 675,
+ 0, 0, 0, 0, 0, 0, 0, 0, 248, 313,
+ 0, 0, 0, 0, 0, -161, 0, 0, 316, 318,
+ 319, 322, 323, 0, 325, 326, 129, 445, 445, 0,
+ 0, -194, 0, 236, 295, -199, -8, -8, 144, 144,
+ 0, 0, 0, 0, 0, 0, 342, 0, 0, 330,
+ -192, -24, 267, -192, -24, 245, 271, 347, 272, 0,
+ 0, 141, 617, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -161, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 359, 278,
+ 344, 311, 80, 365, -192, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 366, 119, -120, 368, -43,
+ 114, 367, 0, 0, 372, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 373, 0,
+ 0, 0, 0, 617, 0, 371, 357, -24, 360, 483,
+ -80, 292, -120, 617, 0, 375, 383, 132, -192, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -203, 128, 377, -203, 382, -203, -90,
- -228, 396, 0, 0, 0, 0, 0, 0, 0, 397,
- 0, 0, 120, 0, 402, 400, 0, 0, 125, 0,
+ 0, 0, 0, 0, 0, -192, 119, 369, -192, 374,
+ -192, -43, -194, 384, 0, 0, 0, 0, 0, 0,
+ 0, 385, 0, 0, 105, 0, 390, 388, 0, 0,
+ 113, 0,
};
short tao_yyrindex[] = { 0,
- 0, 448, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -22, -9, 392, 1, 0, 0, 0,
+ 0, 434, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, -25, -10, 378, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 64, 0,
- 69, 32, -23, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 26, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 77,
+ 0, 0, 0, 0, 0, 0, 0, 0, 23, 0,
+ 25, 31, -31, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 8, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- -91, 0, 0, 97, 121, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 196, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 96, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, -91, 0, 0, 117, 133, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 4, 0, 0,
- 0, 0, 326, 0, 0, 0, 0, 0, 0, 0,
+ 181, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, -19, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 97,
+ 0, 0, 0, 0, 317, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 340, 0, 0, 0, 0, 258, 284,
- -26, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 14, 0, 172, 517, 540,
- 246, 57, 24, 0, 0, 0, 0, 333, 0, 0,
- 0, 0, 0, 0, 0, 0, 393, 0, 0, 0,
- 325, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, -19, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 153, 0, 0, 0, 0,
+ 270, 297, -26, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 13, 0, 247,
+ 576, 569, 252, 91, 21, 0, 0, 0, 0, 320,
+ 0, 0, 0, 0, 0, 0, 0, 0, 382, 0,
+ 0, 0, 324, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 413, 0, 0, 416, 0, 0, 0,
- 0, 0, 212, 0, 0, 0, 0, 334, 0, 0,
- 0, 0, 0, 0, 0, 240, 0, 0, 0, 0,
- 0, 0, 0, 201, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 565, 560, 331, 111, 144, 51, 84, 0, 0,
+ 0, 0, 0, 0, 0, 401, 0, 0, 403, 0,
+ 0, 0, 0, 0, 219, 0, 0, 0, 0, 321,
+ 0, 0, 0, 0, 0, 0, 0, 246, 0, 0,
+ 0, 0, 0, 0, 0, 188, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 195, 0, 336, 0, 0, 0, 0,
+ 0, 0, 0, 581, 574, 561, 131, 142, 50, 58,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, -18, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 201, 0, 327, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, -13, 0, 0, 0, 0, 0, -17,
- 0, 0, 0, 0, 0, 0, 0, 0, -29, 401,
+ 0, 0, 0, -18, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, -13, 0, 0, 0, 0,
+ 0, -17, 0, 0, 0, 0, 0, 0, 0, 0,
+ -30, 391, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 422, 0, 0, 0, 0, 469, 0,
- 339, 0, 0, 429, 0, 412, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 410, 0, 0, 0, 0,
+ 550, 0, 328, 0, 0, 413, 0, 396, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 451, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 415, 0, 0,
+ 0, 0,
};
short tao_yygindex[] = { 0,
- -20, 275, 0, 0, 0, -44, 9, 6, 0, 11,
- 0, 0, 0, -42, -268, -15, 0, 0, 0, 13,
- 0, 20, 0, 0, 0, 0, 0, 0, 134, 0,
- 0, 0, 0, 481, 0, -198, 0, 218, 219, 215,
- -32, -41, -39, -89, 0, -119, 136, 82, 0, 0,
- -1, 23, 39, 484, 0, 485, 0, 0, -210, 45,
- 0, 0, -284, -11, 0, 0, 0, 242, 244, 15,
- 18, -12, 5, 288, 0, 0, 7, 0, 10, 0,
- 12, 0, 16, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 350, 0,
- 0, 0, 0, 0, 0, 0, 0, 520, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 330, 0,
- -58, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ -20, 244, 0, 0, 0, -44, 9, 6, 0, 11,
+ 0, 0, 0, -42, -326, -15, 0, 0, 0, -21,
+ 0, 62, 0, 0, 0, 0, 0, 0, 98, 0,
+ 0, 0, 0, 443, 0, -197, 0, 180, 182, 185,
+ -79, -32, -205, 28, 0, -127, 99, 22, 0, 0,
+ -9, -4, -3, 426, 429, 0, 0, 0, -177, -2,
+ 0, 0, 0, -270, -11, 0, 0, 0, 265, 266,
+ 15, 18, -12, 5, 230, 0, 0, 7, 0, 10,
+ 0, 12, 0, 16, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 286,
+ 0, 0, 0, 0, 0, 0, 0, 0, 465, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 289,
+ 0, -54, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 342, 294, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 92, 0, 0,
+ 0, 0, 0, 0, 281, 253, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 47, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 159, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 101, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 89, 0, 0, 0, 0, 0,
- 0, 0, 79, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,
+ 0, 0, 0, 0, 0, 29, 0, 0, 0, 0,
+ 0, 0, 0, 40, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0,
};
-#define TAO_YYTABLESIZE 992
+#define TAO_YYTABLESIZE 1066
short tao_yytable[] = { 58,
- 57, 67, 69, 127, 89, 128, 28, 20, 30, 100,
- 19, 31, 21, 32, 92, 225, 26, 33, 222, 27,
- 223, 95, 94, 332, 95, 94, 280, 321, 56, 353,
- 139, 40, 129, 290, 59, 100, 102, 138, 288, 141,
- 142, 143, 144, 289, 200, 325, 131, 200, 59, 63,
- 141, 141, 148, 56, 141, 141, 141, 6, 141, 261,
- 141, 130, 200, 6, 130, 200, 130, 16, 130, 197,
- 132, 141, 141, 239, 240, 141, 225, 389, 145, 72,
- 147, 130, 130, 116, 197, 130, 133, 197, 131, 59,
- 62, 131, 136, 131, 127, 131, 92, 127, 66, 59,
- 40, 224, 396, 95, 94, 16, 141, 141, 131, 131,
- 126, 161, 131, 59, 127, 127, 130, 130, 127, 137,
- 167, 132, 103, 214, 132, 88, 132, 104, 132, 162,
- 163, 425, 277, 278, 279, 167, 182, 141, 167, 186,
- 283, 132, 132, 131, 131, 132, 151, 130, 128, 127,
- 127, 128, 158, 159, 59, 283, 426, 427, 283, 164,
- 325, 387, 150, 197, 288, 204, 152, 151, 128, 128,
- 208, 151, 128, 458, 131, 238, 132, 132, 153, 288,
- 127, 129, 288, 468, 129, 156, 40, 154, 157, 483,
- 165, 40, 486, 286, 488, 287, 100, 433, 434, 435,
- 167, 129, 129, 128, 128, 129, 168, 132, 40, 284,
- 285, 320, 120, 322, 20, 20, 169, 19, 19, 21,
- 21, 426, 427, 26, 26, 297, 27, 27, 100, 120,
- 120, 325, 56, 120, 128, 292, 129, 129, 292, 298,
- 324, 325, 170, 390, 347, 348, 295, 461, 349, 350,
- 351, 345, 346, 292, 59, 61, 20, 62, 63, 19,
- 200, 21, 353, 299, 120, 26, 171, 129, 27, 172,
- 334, 334, 334, 92, 323, 173, 59, 380, 381, 300,
- 95, 94, 197, 125, 174, 301, 125, 175, 181, 188,
- 59, 189, 191, 56, 195, 213, 214, 215, 216, 217,
- 218, 219, 66, 125, 125, 220, 221, 125, 198, 205,
- 206, 275, 28, 20, 30, 281, 19, 31, 21, 32,
- 100, 100, 26, 33, 382, 27, 320, 282, 322, 283,
- 307, 59, 309, 167, 332, 310, 218, 313, 125, 125,
- 338, 141, 141, 326, 339, 341, 204, 156, 352, 204,
- 379, 130, 130, 283, 353, 324, 213, 214, 215, 216,
- 217, 218, 219, 66, 306, 354, 220, 221, 126, 125,
- 369, 126, 356, 368, 372, 373, 374, 288, 131, 131,
- 193, 375, 31, 193, 127, 127, 376, 377, 126, 126,
- 58, 413, 126, 378, 383, 384, 388, 320, 193, 322,
- 392, 393, 394, 395, 404, 406, 407, 320, 49, 322,
- 410, 132, 132, 408, 421, 422, 432, 439, 441, 443,
- 453, 459, 460, 126, 126, 462, 324, 463, 469, 470,
- 290, 466, 100, 471, 485, 491, 324, 492, 128, 128,
- 487, 494, 497, 498, 58, 473, 500, 1, 61, 53,
- 262, 183, 118, 197, 126, 60, 242, 346, 25, 189,
- 268, 204, 325, 243, 204, 186, 204, 221, 221, 336,
- 357, 129, 129, 221, 221, 221, 221, 221, 221, 221,
- 221, 221, 221, 221, 221, 221, 276, 221, 221, 221,
- 221, 358, 385, 490, 60, 221, 221, 344, 342, 391,
- 343, 221, 221, 221, 221, 221, 221, 221, 221, 221,
- 221, 221, 221, 221, 315, 221, 221, 221, 221, 315,
- 315, 315, 315, 315, 315, 315, 315, 315, 315, 315,
- 465, 134, 135, 308, 64, 315, 315, 243, 221, 273,
- 315, 302, 467, 316, 315, 315, 315, 315, 315, 315,
- 315, 315, 315, 315, 315, 315, 251, 121, 489, 409,
- 0, 315, 315, 484, 0, 0, 221, 302, 0, 0,
- 315, 0, 0, 0, 121, 121, 0, 0, 121, 0,
- 123, 315, 0, 0, 315, 0, 315, 315, 315, 315,
- 315, 315, 315, 315, 315, 315, 315, 123, 123, 0,
- 124, 123, 315, 315, 0, 122, 0, 0, 302, 121,
- 315, 315, 0, 0, 0, 0, 0, 124, 124, 0,
- 0, 124, 122, 122, 0, 0, 122, 0, 0, 0,
- 0, 0, 123, 123, 0, 0, 0, 0, 0, 0,
- 121, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 315, 124, 124, 0, 0, 0, 122, 304, 56,
- 0, 0, 0, 123, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 8, 9, 0, 10, 85,
- 86, 87, 0, 124, 56, 0, 0, 0, 122, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 8, 9, 56, 10, 85, 86, 87, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 8, 9,
- 0, 10, 85, 86, 87, 251, 0, 0, 88, 66,
- 251, 251, 251, 251, 251, 251, 251, 251, 251, 251,
- 251, 251, 251, 0, 251, 251, 251, 251, 0, 0,
- 0, 0, 0, 56, 66, 0, 0, 0, 74, 75,
- 76, 77, 78, 79, 80, 81, 82, 83, 84, 0,
- 0, 56, 66, 85, 86, 87, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, 83, 84, 0, 0, 0,
- 0, 0, 86, 87, 0, 251, 0, 56, 0, 0,
- 0, 319, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 0, 0, 0, 0, 0, 86, 87,
- 0, 0, 56, 66, 0, 0, 0, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 0, 0, 0,
- 56, 66, 0, 86, 87, 294, 75, 76, 0, 0,
- 79, 80, 81, 82, 0, 0, 0, 0, 3, 10,
- 4, 5, 6, 7, 0, 0, 0, 66, 0, 0,
- 0, 0, 0, 0, 0, 8, 9, 0, 10, 0,
- 0, 0, 11, 0, 0, 252, 0, 4, 0, 0,
- 7, 0, 66, 0, 0, 12, 13, 14, 15, 0,
- 0, 0, 8, 9, 16, 10, 0, 0, 0, 11,
- 66, 0, 253, 0, 254, 255, 0, 0, 17, 18,
- 0, 0, 12, 0, 0, 0, 267, 268, 269, 0,
- 252, 0, 4, 0, 0, 7, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 17, 18, 8, 9, 0,
- 10, 0, 0, 0, 11, 0, 0, 253, 0, 254,
- 255, 0, 0, 0, 0, 0, 0, 12, 0, 0,
+ 57, 67, 69, 129, 90, 130, 28, 20, 30, 101,
+ 19, 31, 21, 32, 92, 227, 26, 33, 224, 27,
+ 225, 95, 94, 334, 95, 94, 59, 323, 355, 282,
+ 141, 40, 131, 102, 288, 101, 289, 140, 133, 143,
+ 144, 145, 146, 134, 135, 138, 398, 59, 63, 141,
+ 141, 198, 150, 141, 141, 141, 6, 141, 130, 141,
+ 263, 130, 56, 130, 56, 130, 198, 241, 242, 198,
+ 141, 141, 158, 6, 141, 159, 16, 227, 130, 130,
+ 327, 103, 130, 104, 351, 352, 353, 131, 59, 62,
+ 131, 59, 131, 391, 131, 132, 92, 40, 132, 16,
+ 132, 226, 132, 95, 94, 141, 141, 131, 131, 160,
+ 161, 131, 59, 130, 130, 132, 132, 460, 152, 132,
+ 147, 154, 149, 153, 216, 72, 153, 470, 127, 286,
+ 287, 127, 118, 66, 128, 427, 141, 201, 184, 167,
+ 201, 188, 131, 131, 130, 40, 139, 40, 127, 127,
+ 132, 132, 127, 59, 167, 201, 89, 167, 201, 155,
+ 285, 428, 429, 156, 389, 199, 153, 206, 128, 163,
+ 166, 128, 210, 131, 165, 285, 290, 240, 285, 129,
+ 292, 132, 129, 127, 127, 290, 167, 164, 128, 128,
+ 291, 290, 128, 194, 290, 327, 194, 169, 101, 129,
+ 129, 428, 429, 129, 170, 485, 347, 348, 488, 40,
+ 490, 194, 171, 322, 127, 324, 20, 20, 172, 19,
+ 19, 21, 21, 128, 128, 26, 26, 299, 27, 27,
+ 101, 173, 56, 300, 129, 129, 174, 392, 301, 302,
+ 303, 294, 326, 292, 294, 435, 436, 437, 297, 175,
+ 463, 279, 280, 281, 128, 349, 350, 176, 20, 294,
+ 177, 19, 355, 21, 198, 129, 327, 26, 191, 59,
+ 27, 336, 336, 336, 92, 325, 327, 59, 61, 62,
+ 63, 95, 94, 382, 383, 183, 193, 120, 190, 125,
+ 59, 200, 125, 197, 56, 283, 215, 216, 217, 218,
+ 219, 220, 221, 66, 120, 120, 222, 223, 120, 125,
+ 125, 207, 208, 125, 28, 20, 30, 277, 19, 31,
+ 21, 32, 101, 101, 26, 33, 384, 27, 322, 284,
+ 324, 59, 285, 309, 311, 312, 315, 328, 334, 120,
+ 340, 141, 141, 220, 125, 125, 341, 343, 206, 130,
+ 130, 206, 167, 201, 354, 355, 158, 326, 215, 216,
+ 217, 218, 219, 220, 221, 66, 356, 358, 222, 223,
+ 308, 371, 370, 285, 374, 125, 375, 376, 131, 131,
+ 377, 378, 385, 379, 380, 381, 132, 132, 386, 290,
+ 395, 390, 58, 415, 31, 394, 396, 397, 406, 322,
+ 408, 324, 409, 410, 412, 441, 423, 424, 434, 322,
+ 443, 324, 445, 455, 461, 462, 468, 464, 471, 127,
+ 127, 49, 472, 493, 473, 494, 487, 496, 326, 465,
+ 499, 500, 489, 1, 101, 502, 264, 118, 326, 61,
+ 184, 198, 60, 244, 348, 25, 58, 475, 53, 190,
+ 327, 270, 245, 338, 359, 360, 60, 278, 387, 128,
+ 128, 492, 344, 206, 393, 345, 206, 188, 206, 346,
+ 129, 129, 467, 136, 223, 223, 137, 310, 245, 64,
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
+ 223, 223, 223, 223, 253, 223, 223, 223, 223, 469,
+ 275, 223, 223, 411, 318, 486, 0, 223, 223, 223,
+ 223, 223, 223, 223, 223, 223, 223, 223, 223, 223,
+ 223, 491, 223, 223, 223, 223, 317, 0, 0, 0,
+ 0, 317, 317, 317, 317, 317, 317, 317, 317, 317,
+ 317, 317, 317, 0, 0, 0, 223, 0, 317, 317,
+ 0, 0, 0, 317, 304, 0, 0, 317, 317, 317,
+ 317, 317, 317, 317, 317, 317, 317, 317, 317, 317,
+ 0, 0, 0, 223, 0, 317, 317, 0, 0, 0,
+ 317, 304, 0, 0, 317, 317, 317, 317, 317, 317,
+ 317, 317, 317, 317, 317, 317, 317, 317, 126, 0,
+ 0, 126, 317, 317, 0, 0, 0, 0, 304, 123,
+ 0, 317, 0, 0, 124, 0, 121, 0, 126, 126,
+ 0, 122, 126, 0, 317, 0, 123, 123, 0, 0,
+ 123, 124, 124, 121, 121, 124, 0, 121, 122, 122,
+ 0, 0, 122, 0, 0, 0, 0, 0, 0, 0,
+ 0, 317, 0, 126, 126, 0, 0, 0, 0, 0,
+ 0, 123, 123, 0, 0, 0, 124, 124, 121, 0,
+ 0, 0, 0, 122, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 126, 0, 0, 0, 0, 0,
+ 0, 0, 123, 0, 0, 0, 0, 124, 0, 121,
+ 306, 56, 0, 0, 122, 0, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 8, 9,
+ 56, 10, 86, 87, 88, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, 85, 8, 9, 56,
+ 10, 86, 87, 88, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 8, 9, 0, 10,
+ 86, 87, 88, 0, 0, 89, 0, 0, 0, 0,
+ 0, 56, 66, 0, 0, 0, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 0, 0,
+ 0, 66, 86, 87, 88, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 253, 0, 0, 0,
+ 66, 253, 253, 253, 253, 253, 253, 253, 253, 253,
+ 253, 253, 253, 253, 253, 0, 253, 253, 253, 253,
+ 0, 0, 0, 0, 0, 0, 0, 0, 56, 0,
+ 0, 0, 66, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, 85, 0, 0, 0, 0, 0,
+ 87, 88, 0, 0, 0, 0, 0, 0, 0, 321,
+ 0, 0, 0, 56, 0, 0, 0, 253, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+ 0, 0, 56, 0, 0, 87, 88, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 0, 0, 66,
+ 0, 56, 0, 0, 87, 88, 296, 75, 76, 0,
+ 0, 79, 80, 81, 82, 0, 0, 0, 0, 0,
+ 3, 10, 4, 5, 6, 7, 0, 0, 0, 0,
+ 0, 0, 0, 0, 66, 0, 0, 0, 8, 9,
+ 0, 10, 0, 0, 0, 11, 0, 0, 0, 0,
+ 0, 0, 0, 66, 0, 0, 0, 0, 12, 13,
+ 14, 15, 0, 0, 0, 0, 254, 16, 4, 0,
+ 0, 7, 66, 0, 0, 0, 0, 0, 0, 0,
+ 0, 17, 18, 0, 8, 9, 0, 10, 0, 0,
+ 0, 11, 0, 254, 255, 4, 256, 257, 7, 0,
+ 0, 0, 0, 0, 12, 0, 0, 0, 269, 270,
+ 271, 8, 9, 0, 10, 0, 0, 0, 11, 0,
+ 0, 255, 0, 256, 257, 0, 0, 17, 18, 0,
+ 0, 12, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 17, 18,
+ 0, 0, 0, 0, 17, 18,
};
short tao_yycheck[] = { 12,
12, 17, 18, 48, 25, 48, 2, 2, 2, 25,
2, 2, 2, 2, 41, 40, 2, 2, 43, 2,
- 45, 41, 41, 41, 44, 44, 225, 41, 257, 59,
- 51, 123, 48, 37, 58, 51, 59, 50, 42, 52,
- 53, 54, 55, 47, 41, 256, 48, 44, 58, 59,
- 37, 38, 65, 257, 41, 42, 43, 260, 45, 59,
- 47, 38, 59, 260, 41, 62, 43, 302, 45, 44,
- 48, 58, 59, 193, 194, 62, 40, 362, 59, 58,
- 61, 58, 59, 275, 59, 62, 48, 62, 38, 58,
- 59, 41, 48, 43, 38, 45, 123, 41, 327, 123,
- 123, 126, 371, 123, 123, 302, 93, 94, 58, 59,
- 59, 44, 62, 123, 58, 59, 93, 94, 62, 257,
- 44, 38, 59, 123, 41, 301, 43, 59, 45, 62,
- 111, 256, 222, 223, 224, 59, 149, 124, 62, 155,
- 44, 58, 59, 93, 94, 62, 327, 124, 38, 93,
- 94, 41, 262, 263, 123, 59, 281, 282, 62, 60,
- 371, 360, 322, 176, 44, 178, 322, 327, 58, 59,
- 183, 327, 62, 442, 124, 191, 93, 94, 123, 59,
- 124, 38, 62, 452, 41, 262, 123, 123, 265, 474,
- 60, 123, 477, 43, 479, 45, 212, 288, 289, 290,
- 123, 58, 59, 93, 94, 62, 59, 124, 300, 328,
- 329, 256, 41, 256, 209, 210, 59, 209, 210, 209,
- 210, 281, 282, 209, 210, 241, 209, 210, 244, 58,
- 59, 442, 257, 62, 124, 41, 93, 94, 44, 241,
- 256, 452, 59, 363, 286, 287, 241, 446, 288, 289,
- 290, 284, 285, 59, 13, 14, 251, 14, 15, 251,
- 257, 251, 292, 241, 93, 251, 59, 124, 251, 59,
- 288, 289, 290, 300, 288, 59, 300, 336, 337, 241,
- 300, 300, 257, 38, 59, 241, 41, 59, 123, 262,
- 300, 60, 300, 257, 40, 320, 321, 322, 323, 324,
- 325, 326, 327, 58, 59, 330, 331, 62, 123, 123,
- 123, 44, 308, 308, 308, 124, 308, 308, 308, 308,
- 336, 337, 308, 308, 340, 308, 371, 94, 371, 38,
- 61, 300, 44, 257, 125, 91, 125, 257, 93, 94,
- 125, 328, 329, 284, 59, 41, 359, 262, 62, 362,
- 257, 328, 329, 257, 62, 371, 320, 321, 322, 323,
- 324, 325, 326, 327, 125, 62, 330, 331, 38, 124,
- 59, 41, 125, 125, 59, 59, 59, 257, 328, 329,
- 41, 59, 125, 44, 328, 329, 59, 59, 58, 59,
- 403, 403, 62, 59, 41, 59, 125, 442, 59, 442,
- 125, 44, 125, 257, 40, 123, 59, 452, 125, 452,
- 40, 328, 329, 93, 41, 288, 41, 291, 44, 41,
- 41, 44, 59, 93, 94, 58, 442, 448, 44, 40,
- 91, 125, 448, 292, 58, 40, 452, 41, 328, 329,
- 59, 322, 41, 44, 457, 457, 322, 0, 123, 125,
- 59, 59, 257, 41, 124, 123, 41, 257, 125, 59,
- 125, 474, 41, 125, 477, 481, 479, 256, 257, 41,
- 59, 328, 329, 262, 263, 264, 265, 266, 267, 268,
- 269, 270, 271, 272, 273, 274, 212, 276, 277, 278,
- 279, 41, 359, 481, 14, 256, 257, 283, 281, 364,
- 282, 262, 263, 264, 265, 266, 267, 268, 269, 270,
- 271, 272, 273, 274, 257, 276, 277, 278, 279, 262,
- 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
- 449, 48, 48, 246, 15, 278, 279, 196, 327, 210,
- 257, 284, 451, 250, 287, 262, 263, 264, 265, 266,
- 267, 268, 269, 270, 271, 272, 207, 41, 480, 401,
- -1, 278, 279, 475, -1, -1, 327, 284, -1, -1,
- 287, -1, -1, -1, 58, 59, -1, -1, 62, -1,
- 41, 257, -1, -1, 327, -1, 262, 263, 264, 265,
- 266, 267, 268, 269, 270, 271, 272, 58, 59, -1,
- 41, 62, 278, 279, -1, 41, -1, -1, 284, 93,
- 327, 287, -1, -1, -1, -1, -1, 58, 59, -1,
- -1, 62, 58, 59, -1, -1, 62, -1, -1, -1,
- -1, -1, 93, 94, -1, -1, -1, -1, -1, -1,
- 124, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 327, 93, 94, -1, -1, -1, 93, 256, 257,
- -1, -1, -1, 124, 262, 263, 264, 265, 266, 267,
- 268, 269, 270, 271, 272, 273, 274, -1, 276, 277,
- 278, 279, -1, 124, 257, -1, -1, -1, 124, 262,
- 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
- 273, 274, 257, 276, 277, 278, 279, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- -1, 276, 277, 278, 279, 257, -1, -1, 301, 327,
+ 45, 41, 41, 41, 44, 44, 58, 41, 59, 227,
+ 51, 123, 48, 59, 43, 51, 45, 50, 48, 52,
+ 53, 54, 55, 48, 48, 48, 373, 58, 59, 37,
+ 38, 44, 65, 41, 42, 43, 260, 45, 38, 47,
+ 59, 41, 257, 43, 257, 45, 59, 195, 196, 62,
+ 58, 59, 262, 260, 62, 265, 303, 40, 58, 59,
+ 258, 59, 62, 59, 290, 291, 292, 38, 58, 59,
+ 41, 123, 43, 364, 45, 38, 123, 123, 41, 303,
+ 43, 126, 45, 123, 123, 93, 94, 58, 59, 262,
+ 263, 62, 123, 93, 94, 58, 59, 444, 323, 62,
+ 59, 323, 61, 328, 123, 58, 328, 454, 38, 329,
+ 330, 41, 276, 328, 59, 256, 124, 41, 151, 44,
+ 44, 157, 93, 94, 124, 123, 257, 123, 58, 59,
+ 93, 94, 62, 123, 59, 59, 302, 62, 62, 123,
+ 44, 282, 283, 123, 362, 178, 328, 180, 38, 44,
+ 60, 41, 185, 124, 113, 59, 44, 193, 62, 38,
+ 37, 124, 41, 93, 94, 42, 60, 62, 58, 59,
+ 47, 59, 62, 41, 62, 373, 44, 123, 214, 58,
+ 59, 282, 283, 62, 59, 476, 286, 287, 479, 301,
+ 481, 59, 59, 258, 124, 258, 211, 212, 59, 211,
+ 212, 211, 212, 93, 94, 211, 212, 243, 211, 212,
+ 246, 59, 257, 243, 93, 94, 59, 365, 243, 243,
+ 243, 41, 258, 91, 44, 289, 290, 291, 243, 59,
+ 448, 224, 225, 226, 124, 288, 289, 59, 253, 59,
+ 59, 253, 293, 253, 257, 124, 444, 253, 60, 301,
+ 253, 289, 290, 291, 301, 289, 454, 13, 14, 14,
+ 15, 301, 301, 338, 339, 123, 301, 41, 262, 38,
+ 301, 123, 41, 40, 257, 124, 321, 322, 323, 324,
+ 325, 326, 327, 328, 58, 59, 331, 332, 62, 58,
+ 59, 123, 123, 62, 310, 310, 310, 44, 310, 310,
+ 310, 310, 338, 339, 310, 310, 342, 310, 373, 94,
+ 373, 301, 38, 61, 44, 91, 257, 285, 125, 93,
+ 125, 329, 330, 125, 93, 94, 59, 41, 361, 329,
+ 330, 364, 257, 257, 62, 62, 262, 373, 321, 322,
+ 323, 324, 325, 326, 327, 328, 62, 125, 331, 332,
+ 125, 59, 125, 257, 59, 124, 59, 59, 329, 330,
+ 59, 59, 41, 59, 59, 257, 329, 330, 59, 257,
+ 44, 125, 405, 405, 125, 125, 125, 257, 40, 444,
+ 123, 444, 59, 93, 40, 292, 41, 289, 41, 454,
+ 44, 454, 41, 41, 44, 59, 125, 58, 44, 329,
+ 330, 125, 40, 40, 293, 41, 58, 323, 444, 450,
+ 41, 44, 59, 0, 450, 323, 59, 257, 454, 123,
+ 59, 41, 123, 41, 257, 125, 459, 459, 125, 59,
+ 41, 125, 125, 41, 59, 41, 14, 214, 361, 329,
+ 330, 483, 283, 476, 366, 284, 479, 483, 481, 285,
+ 329, 330, 451, 48, 256, 257, 48, 248, 198, 15,
262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
- 272, 273, 274, -1, 276, 277, 278, 279, -1, -1,
- -1, -1, -1, 257, 327, -1, -1, -1, 262, 263,
- 264, 265, 266, 267, 268, 269, 270, 271, 272, -1,
- -1, 257, 327, 277, 278, 279, 262, 263, 264, 265,
- 266, 267, 268, 269, 270, 271, 272, -1, -1, -1,
- -1, -1, 278, 279, -1, 327, -1, 257, -1, -1,
- -1, 287, 262, 263, 264, 265, 266, 267, 268, 269,
- 270, 271, 272, -1, -1, -1, -1, -1, 278, 279,
- -1, -1, 257, 327, -1, -1, -1, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, -1, -1, -1,
- 257, 327, -1, 278, 279, 262, 263, 264, -1, -1,
- 267, 268, 269, 270, -1, -1, -1, -1, 256, 276,
- 258, 259, 260, 261, -1, -1, -1, 327, -1, -1,
- -1, -1, -1, -1, -1, 273, 274, -1, 276, -1,
- -1, -1, 280, -1, -1, 256, -1, 258, -1, -1,
- 261, -1, 327, -1, -1, 293, 294, 295, 296, -1,
- -1, -1, 273, 274, 302, 276, -1, -1, -1, 280,
- 327, -1, 283, -1, 285, 286, -1, -1, 316, 317,
- -1, -1, 293, -1, -1, -1, 297, 298, 299, -1,
- 256, -1, 258, -1, -1, 261, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 316, 317, 273, 274, -1,
- 276, -1, -1, -1, 280, -1, -1, 283, -1, 285,
- 286, -1, -1, -1, -1, -1, -1, 293, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 272, 273, 274, 275, 209, 277, 278, 279, 280, 453,
+ 212, 256, 257, 403, 252, 477, -1, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
+ 275, 482, 277, 278, 279, 280, 257, -1, -1, -1,
+ -1, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ 271, 272, 273, -1, -1, -1, 328, -1, 279, 280,
+ -1, -1, -1, 257, 285, -1, -1, 288, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ -1, -1, -1, 328, -1, 279, 280, -1, -1, -1,
+ 257, 285, -1, -1, 288, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, 271, 272, 273, 328, 38, -1,
+ -1, 41, 279, 280, -1, -1, -1, -1, 285, 41,
+ -1, 288, -1, -1, 41, -1, 41, -1, 58, 59,
+ -1, 41, 62, -1, 328, -1, 58, 59, -1, -1,
+ 62, 58, 59, 58, 59, 62, -1, 62, 58, 59,
+ -1, -1, 62, -1, -1, -1, -1, -1, -1, -1,
+ -1, 328, -1, 93, 94, -1, -1, -1, -1, -1,
+ -1, 93, 94, -1, -1, -1, 93, 94, 93, -1,
+ -1, -1, -1, 93, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 124, -1, -1, -1, -1, -1,
+ -1, -1, 124, -1, -1, -1, -1, 124, -1, 124,
+ 256, 257, -1, -1, 124, -1, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
+ 257, 277, 278, 279, 280, 262, 263, 264, 265, 266,
+ 267, 268, 269, 270, 271, 272, 273, 274, 275, 257,
+ 277, 278, 279, 280, 262, 263, 264, 265, 266, 267,
+ 268, 269, 270, 271, 272, 273, 274, 275, -1, 277,
+ 278, 279, 280, -1, -1, 302, -1, -1, -1, -1,
+ -1, 257, 328, -1, -1, -1, 262, 263, 264, 265,
+ 266, 267, 268, 269, 270, 271, 272, 273, -1, -1,
+ -1, 328, 278, 279, 280, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 257, -1, -1, -1,
+ 328, 262, 263, 264, 265, 266, 267, 268, 269, 270,
+ 271, 272, 273, 274, 275, -1, 277, 278, 279, 280,
+ -1, -1, -1, -1, -1, -1, -1, -1, 257, -1,
+ -1, -1, 328, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, 271, 272, 273, -1, -1, -1, -1, -1,
+ 279, 280, -1, -1, -1, -1, -1, -1, -1, 288,
+ -1, -1, -1, 257, -1, -1, -1, 328, 262, 263,
+ 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
+ -1, -1, 257, -1, -1, 279, 280, 262, 263, 264,
+ 265, 266, 267, 268, 269, 270, 271, -1, -1, 328,
+ -1, 257, -1, -1, 279, 280, 262, 263, 264, -1,
+ -1, 267, 268, 269, 270, -1, -1, -1, -1, -1,
+ 256, 277, 258, 259, 260, 261, -1, -1, -1, -1,
+ -1, -1, -1, -1, 328, -1, -1, -1, 274, 275,
+ -1, 277, -1, -1, -1, 281, -1, -1, -1, -1,
+ -1, -1, -1, 328, -1, -1, -1, -1, 294, 295,
+ 296, 297, -1, -1, -1, -1, 256, 303, 258, -1,
+ -1, 261, 328, -1, -1, -1, -1, -1, -1, -1,
+ -1, 317, 318, -1, 274, 275, -1, 277, -1, -1,
+ -1, 281, -1, 256, 284, 258, 286, 287, 261, -1,
+ -1, -1, -1, -1, 294, -1, -1, -1, 298, 299,
+ 300, 274, 275, -1, 277, -1, -1, -1, 281, -1,
+ -1, 284, -1, 286, 287, -1, -1, 317, 318, -1,
+ -1, 294, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 316, 317,
+ -1, -1, -1, -1, 317, 318,
};
#define TAO_YYFINAL 1
#ifndef TAO_YYDEBUG
#define TAO_YYDEBUG 0
#endif
-#define TAO_YYMAXTOKEN 331
+#define TAO_YYMAXTOKEN 332
#if TAO_YYDEBUG
const char *tao_yyname[] = {
"end-of-file",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -663,19 +681,19 @@ const char *tao_yyname[] = {
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"IDENTIFIER","IDL_CONST",
"IDL_MODULE","IDL_INTERFACE","IDL_TYPEDEF","IDL_LONG","IDL_SHORT",
"IDL_UNSIGNED","IDL_DOUBLE","IDL_FLOAT","IDL_CHAR","IDL_WCHAR","IDL_OCTET",
-"IDL_BOOLEAN","IDL_FIXED","IDL_ANY","IDL_STRUCT","IDL_UNION","IDL_SWITCH",
-"IDL_ENUM","IDL_SEQUENCE","IDL_STRING","IDL_WSTRING","IDL_EXCEPTION","IDL_CASE",
-"IDL_DEFAULT","IDL_READONLY","IDL_ATTRIBUTE","IDL_ONEWAY","IDL_IDEMPOTENT",
-"IDL_VOID","IDL_IN","IDL_OUT","IDL_INOUT","IDL_RAISES","IDL_CONTEXT",
-"IDL_NATIVE","IDL_LOCAL","IDL_ABSTRACT","IDL_CUSTOM","IDL_FACTORY",
-"IDL_PRIVATE","IDL_PUBLIC","IDL_SUPPORTS","IDL_TRUNCATABLE","IDL_VALUETYPE",
-"IDL_COMPONENT","IDL_CONSUMES","IDL_EMITS","IDL_EVENTTYPE","IDL_FINDER",
-"IDL_GETRAISES","IDL_HOME","IDL_IMPORT","IDL_MULTIPLE","IDL_PRIMARYKEY",
-"IDL_PROVIDES","IDL_PUBLISHES","IDL_SETRAISES","IDL_TYPEID","IDL_TYPEPREFIX",
-"IDL_USES","IDL_MANAGES","IDL_INTEGER_LITERAL","IDL_UINTEGER_LITERAL",
-"IDL_STRING_LITERAL","IDL_CHARACTER_LITERAL","IDL_FLOATING_PT_LITERAL",
-"IDL_TRUETOK","IDL_FALSETOK","IDL_SCOPE_DELIMITOR","IDL_LEFT_SHIFT",
-"IDL_RIGHT_SHIFT","IDL_WCHAR_LITERAL","IDL_WSTRING_LITERAL",
+"IDL_BOOLEAN","IDL_FIXED","IDL_ANY","IDL_OBJECT","IDL_STRUCT","IDL_UNION",
+"IDL_SWITCH","IDL_ENUM","IDL_SEQUENCE","IDL_STRING","IDL_WSTRING",
+"IDL_EXCEPTION","IDL_CASE","IDL_DEFAULT","IDL_READONLY","IDL_ATTRIBUTE",
+"IDL_ONEWAY","IDL_IDEMPOTENT","IDL_VOID","IDL_IN","IDL_OUT","IDL_INOUT",
+"IDL_RAISES","IDL_CONTEXT","IDL_NATIVE","IDL_LOCAL","IDL_ABSTRACT","IDL_CUSTOM",
+"IDL_FACTORY","IDL_PRIVATE","IDL_PUBLIC","IDL_SUPPORTS","IDL_TRUNCATABLE",
+"IDL_VALUETYPE","IDL_COMPONENT","IDL_CONSUMES","IDL_EMITS","IDL_EVENTTYPE",
+"IDL_FINDER","IDL_GETRAISES","IDL_HOME","IDL_IMPORT","IDL_MULTIPLE",
+"IDL_PRIMARYKEY","IDL_PROVIDES","IDL_PUBLISHES","IDL_SETRAISES","IDL_TYPEID",
+"IDL_TYPEPREFIX","IDL_USES","IDL_MANAGES","IDL_INTEGER_LITERAL",
+"IDL_UINTEGER_LITERAL","IDL_STRING_LITERAL","IDL_CHARACTER_LITERAL",
+"IDL_FLOATING_PT_LITERAL","IDL_TRUETOK","IDL_FALSETOK","IDL_SCOPE_DELIMITOR",
+"IDL_LEFT_SHIFT","IDL_RIGHT_SHIFT","IDL_WCHAR_LITERAL","IDL_WSTRING_LITERAL",
};
const char *tao_yyrule[] = {
"$accept : start",
@@ -853,6 +871,7 @@ const char *tao_yyrule[] = {
"base_type_spec : octet_type",
"base_type_spec : fixed_type",
"base_type_spec : any_type",
+"base_type_spec : object_type",
"template_type_spec : sequence_type_spec",
"template_type_spec : string_type_spec",
"template_type_spec : wstring_type_spec",
@@ -890,6 +909,7 @@ const char *tao_yyrule[] = {
"octet_type : IDL_OCTET",
"boolean_type : IDL_BOOLEAN",
"any_type : IDL_ANY",
+"object_type : IDL_OBJECT",
"$$47 :",
"struct_decl : IDL_STRUCT $$47 id",
"$$48 :",
@@ -2348,7 +2368,7 @@ case 118:
if (d == 0)
{
- tao_yyval.etval = AST_Expression::EV_any;
+ tao_yyval.etval = AST_Expression::EV_enum;
}
else if (d->node_type () == AST_Decl::NT_pre_defined)
{
@@ -2360,7 +2380,7 @@ case 118:
}
else
{
- tao_yyval.etval = AST_Expression::EV_any;
+ tao_yyval.etval = AST_Expression::EV_enum;
}
}
else if (d->node_type () == AST_Decl::NT_string)
@@ -2373,12 +2393,12 @@ case 118:
}
else
{
- tao_yyval.etval = AST_Expression::EV_any;
+ tao_yyval.etval = AST_Expression::EV_enum;
}
}
else
{
- tao_yyval.etval = AST_Expression::EV_any;
+ tao_yyval.etval = AST_Expression::EV_enum;
}
}
break;
@@ -2833,7 +2853,7 @@ case 167:
tao_yyval.dcval = d;
}
break;
-case 183:
+case 184:
{
/* at_least_one_declarator : declarator declarators*/
ACE_NEW_RETURN (tao_yyval.dlval,
@@ -2842,13 +2862,13 @@ case 183:
1);
}
break;
-case 184:
+case 185:
{
/* declarators : declarators ','*/
idl_global->set_parse_state (IDL_GlobalData::PS_DeclsCommaSeen);
}
break;
-case 185:
+case 186:
{
/* declarator*/
idl_global->set_parse_state (IDL_GlobalData::PS_DeclsDeclSeen);
@@ -2872,13 +2892,13 @@ case 185:
}
}
break;
-case 186:
+case 187:
{
/* | /* EMPTY * /*/
tao_yyval.dlval = 0;
}
break;
-case 189:
+case 190:
{
/* at_least_one_simple_declarator : simple_declarator simple_declarators*/
ACE_NEW_RETURN (tao_yyval.dlval,
@@ -2887,13 +2907,13 @@ case 189:
1);
}
break;
-case 190:
+case 191:
{
/* simple_declarators : simple_declarators ','*/
idl_global->set_parse_state (IDL_GlobalData::PS_DeclsCommaSeen);
}
break;
-case 191:
+case 192:
{
/* simple_declarator*/
idl_global->set_parse_state (IDL_GlobalData::PS_DeclsDeclSeen);
@@ -2917,13 +2937,13 @@ case 191:
}
}
break;
-case 192:
+case 193:
{
/* | /* EMPTY * /*/
tao_yyval.dlval = 0;
}
break;
-case 193:
+case 194:
{
/* simple_declarator : id*/
UTL_ScopedName *sn = 0;
@@ -2938,7 +2958,7 @@ case 193:
1);
}
break;
-case 194:
+case 195:
{
/* complex_declarator : array_declarator*/
UTL_ScopedName *sn = 0;
@@ -2955,61 +2975,61 @@ case 194:
1);
}
break;
-case 197:
+case 198:
{
/* signed_int : IDL_LONG*/
tao_yyval.etval = AST_Expression::EV_long;
}
break;
-case 198:
+case 199:
{
/* | IDL_LONG IDL_LONG*/
tao_yyval.etval = AST_Expression::EV_longlong;
}
break;
-case 199:
+case 200:
{
/* | IDL_SHORT*/
tao_yyval.etval = AST_Expression::EV_short;
}
break;
-case 200:
+case 201:
{
/* unsigned_int : IDL_UNSIGNED IDL_LONG*/
tao_yyval.etval = AST_Expression::EV_ulong;
}
break;
-case 201:
+case 202:
{
/* | IDL_UNSIGNED IDL_LONG IDL_LONG*/
tao_yyval.etval = AST_Expression::EV_ulonglong;
}
break;
-case 202:
+case 203:
{
/* | IDL_UNSIGNED IDL_SHORT*/
tao_yyval.etval = AST_Expression::EV_ushort;
}
break;
-case 203:
+case 204:
{
/* floating_pt_type : IDL_DOUBLE*/
tao_yyval.etval = AST_Expression::EV_double;
}
break;
-case 204:
+case 205:
{
/* | IDL_FLOAT*/
tao_yyval.etval = AST_Expression::EV_float;
}
break;
-case 205:
+case 206:
{
/* | IDL_LONG IDL_DOUBLE*/
tao_yyval.etval = AST_Expression::EV_longdouble;
}
break;
-case 206:
+case 207:
{
/* fixed_type : IDL_FIXED*/
ACE_DEBUG ((LM_DEBUG,
@@ -3021,50 +3041,56 @@ case 206:
ACE_TEXT (" fixed types yet\n")));
}
break;
-case 207:
+case 208:
{
/* char_type : IDL_CHAR*/
tao_yyval.etval = AST_Expression::EV_char;
}
break;
-case 208:
+case 209:
{
/* | IDL_WCHAR*/
tao_yyval.etval = AST_Expression::EV_wchar;
}
break;
-case 209:
+case 210:
{
/* octet_type : IDL_OCTET*/
tao_yyval.etval = AST_Expression::EV_octet;
}
break;
-case 210:
+case 211:
{
/* boolean_type : IDL_BOOLEAN*/
tao_yyval.etval = AST_Expression::EV_bool;
}
break;
-case 211:
+case 212:
{
/* any_type : IDL_ANY*/
tao_yyval.etval = AST_Expression::EV_any;
}
break;
-case 212:
+case 213:
+{
+/* object_type : IDL_OBJECT*/
+ tao_yyval.etval = AST_Expression::EV_object;
+ }
+break;
+case 214:
{
/* struct_decl : IDL_STRUCT*/
idl_global->set_parse_state (IDL_GlobalData::PS_StructSeen);
}
break;
-case 213:
+case 215:
{
/* id*/
idl_global->set_parse_state (IDL_GlobalData::PS_StructIDSeen);
tao_yyval.idval = tao_yyvsp[0].idval;
}
break;
-case 214:
+case 216:
{
/* struct_type : struct_header*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -3093,19 +3119,19 @@ case 214:
idl_global->scopes ().push (d);
}
break;
-case 215:
+case 217:
{
/* '{'*/
idl_global->set_parse_state (IDL_GlobalData::PS_StructSqSeen);
}
break;
-case 216:
+case 218:
{
/* at_least_one_member*/
idl_global->set_parse_state (IDL_GlobalData::PS_StructBodySeen);
}
break;
-case 217:
+case 219:
{
/* '}'*/
idl_global->set_parse_state (IDL_GlobalData::PS_StructQsSeen);
@@ -3119,26 +3145,26 @@ case 217:
idl_global->scopes ().pop ();
}
break;
-case 221:
+case 223:
{
/* member :*/
/* is $0 to member_i */
tao_yyval.vival = AST_Field::vis_NA;
}
break;
-case 223:
+case 225:
{
/* member_i : type_spec*/
idl_global->set_parse_state (IDL_GlobalData::PS_MemberTypeSeen);
}
break;
-case 224:
+case 226:
{
/* at_least_one_declarator*/
idl_global->set_parse_state (IDL_GlobalData::PS_MemberDeclsSeen);
}
break;
-case 225:
+case 227:
{
/* ';'*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -3193,51 +3219,51 @@ case 225:
}
}
break;
-case 226:
+case 228:
{
/* | error*/
idl_global->err()->syntax_error (idl_global->parse_state ());
}
break;
-case 227:
+case 229:
{
/* ';'*/
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
tao_yyerrok;
}
break;
-case 228:
+case 230:
{
/* union_decl : IDL_UNION*/
idl_global->set_parse_state (IDL_GlobalData::PS_UnionSeen);
}
break;
-case 229:
+case 231:
{
/* id*/
idl_global->set_parse_state (IDL_GlobalData::PS_UnionIDSeen);
tao_yyval.idval = tao_yyvsp[0].idval;
}
break;
-case 230:
+case 232:
{
/* union_type : union_decl IDL_SWITCH*/
idl_global->set_parse_state (IDL_GlobalData::PS_SwitchSeen);
}
break;
-case 231:
+case 233:
{
/* '('*/
idl_global->set_parse_state (IDL_GlobalData::PS_SwitchOpenParSeen);
}
break;
-case 232:
+case 234:
{
/* switch_type_spec*/
idl_global->set_parse_state (IDL_GlobalData::PS_SwitchTypeSeen);
}
break;
-case 233:
+case 235:
{
/* ')'*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -3277,19 +3303,19 @@ case 233:
idl_global->scopes ().push (u);
}
break;
-case 234:
+case 236:
{
/* '{'*/
idl_global->set_parse_state (IDL_GlobalData::PS_UnionSqSeen);
}
break;
-case 235:
+case 237:
{
/* at_least_one_case_branch*/
idl_global->set_parse_state (IDL_GlobalData::PS_UnionBodySeen);
}
break;
-case 236:
+case 238:
{
/* '}'*/
idl_global->set_parse_state (IDL_GlobalData::PS_UnionQsSeen);
@@ -3307,13 +3333,16 @@ case 236:
}
}
break;
-case 237:
+case 239:
{
/* switch_type_spec : integer_type*/
- tao_yyval.dcval = idl_global->scopes ().bottom ()->lookup_primitive_type (tao_yyvsp[0].etval);
+ tao_yyval.dcval =
+ idl_global->scopes ().bottom ()->lookup_primitive_type (
+ tao_yyvsp[0].etval
+ );
}
break;
-case 238:
+case 240:
{
/* | char_type*/
/* wchars are not allowed. */
@@ -3328,21 +3357,27 @@ case 238:
);
}
break;
-case 239:
+case 241:
{
/* | octet_type*/
/* octets are not allowed. */
idl_global->err ()->error0 (UTL_Error::EIDL_DISC_TYPE);
- tao_yyval.dcval = idl_global->scopes ().bottom ()->lookup_primitive_type (tao_yyvsp[0].etval);
+ tao_yyval.dcval =
+ idl_global->scopes ().bottom ()->lookup_primitive_type (
+ tao_yyvsp[0].etval
+ );
}
break;
-case 240:
+case 242:
{
/* | boolean_type*/
- tao_yyval.dcval = idl_global->scopes ().bottom ()->lookup_primitive_type (tao_yyvsp[0].etval);
+ tao_yyval.dcval =
+ idl_global->scopes ().bottom ()->lookup_primitive_type (
+ tao_yyvsp[0].etval
+ );
}
break;
-case 242:
+case 244:
{
/* | enum_type*/
/* | scoped_name*/
@@ -3438,19 +3473,19 @@ case 242:
}
}
break;
-case 246:
+case 248:
{
/* case_branch : at_least_one_case_label*/
idl_global->set_parse_state (IDL_GlobalData::PS_UnionLabelSeen);
}
break;
-case 247:
+case 249:
{
/* element_spec*/
idl_global->set_parse_state (IDL_GlobalData::PS_UnionElemSeen);
}
break;
-case 248:
+case 250:
{
/* ';'*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -3476,20 +3511,20 @@ case 248:
}
}
break;
-case 249:
+case 251:
{
/* | error*/
idl_global->err()->syntax_error (idl_global->parse_state());
}
break;
-case 250:
+case 252:
{
/* ';'*/
idl_global->set_parse_state (IDL_GlobalData::PS_NoState);
tao_yyerrok;
}
break;
-case 251:
+case 253:
{
/* at_least_one_case_label : case_label case_labels*/
ACE_NEW_RETURN (tao_yyval.llval,
@@ -3498,7 +3533,7 @@ case 251:
1);
}
break;
-case 252:
+case 254:
{
/* case_labels : case_labels case_label*/
if (tao_yyvsp[-1].llval == 0)
@@ -3520,19 +3555,19 @@ case 252:
}
}
break;
-case 253:
+case 255:
{
/* | /* EMPTY * /*/
tao_yyval.llval = 0;
}
break;
-case 254:
+case 256:
{
/* case_label : IDL_DEFAULT*/
idl_global->set_parse_state (IDL_GlobalData::PS_DefaultSeen);
}
break;
-case 255:
+case 257:
{
/* ':'*/
idl_global->set_parse_state (IDL_GlobalData::PS_LabelColonSeen);
@@ -3543,18 +3578,18 @@ case 255:
);
}
break;
-case 256:
+case 258:
{
/* | IDL_CASE*/
idl_global->set_parse_state (IDL_GlobalData::PS_CaseSeen);
}
break;
-case 257:
+case 259:
{
idl_global->set_parse_state (IDL_GlobalData::PS_LabelExprSeen);
}
break;
-case 258:
+case 260:
{
/* const_expr*/
idl_global->set_parse_state (IDL_GlobalData::PS_LabelColonSeen);
@@ -3565,13 +3600,13 @@ case 258:
);
}
break;
-case 259:
+case 261:
{
/* element_spec : type_spec*/
idl_global->set_parse_state (IDL_GlobalData::PS_UnionElemTypeSeen);
}
break;
-case 260:
+case 262:
{
/* declarator*/
idl_global->set_parse_state (IDL_GlobalData::PS_UnionElemDeclSeen);
@@ -3611,7 +3646,7 @@ case 260:
}
}
break;
-case 261:
+case 263:
{
/* struct_forward_type : struct_header*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -3629,7 +3664,7 @@ case 261:
}
}
break;
-case 262:
+case 264:
{
UTL_Scope *s = idl_global->scopes ().top_non_null ();
UTL_ScopedName n (tao_yyvsp[0].idval,
@@ -3646,13 +3681,13 @@ case 262:
}
}
break;
-case 263:
+case 265:
{
/* enum_type : IDL_ENUM*/
idl_global->set_parse_state (IDL_GlobalData::PS_EnumSeen);
}
break;
-case 264:
+case 266:
{
/* id*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -3682,19 +3717,19 @@ case 264:
idl_global->scopes ().push (e);
}
break;
-case 265:
+case 267:
{
/* '{'*/
idl_global->set_parse_state (IDL_GlobalData::PS_EnumSqSeen);
}
break;
-case 266:
+case 268:
{
/* at_least_one_enumerator*/
idl_global->set_parse_state (IDL_GlobalData::PS_EnumBodySeen);
}
break;
-case 267:
+case 269:
{
/* '}'*/
idl_global->set_parse_state (IDL_GlobalData::PS_EnumQsSeen);
@@ -3715,13 +3750,13 @@ case 267:
}
}
break;
-case 269:
+case 271:
{
/* enumerators : enumerators ','*/
idl_global->set_parse_state (IDL_GlobalData::PS_EnumCommaSeen);
}
break;
-case 272:
+case 274:
{
/* enumerator : IDENTIFIER*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -3752,19 +3787,19 @@ case 272:
}
}
break;
-case 273:
+case 275:
{
/* sequence_type_spec : seq_head ','*/
idl_global->set_parse_state (IDL_GlobalData::PS_SequenceCommaSeen);
}
break;
-case 274:
+case 276:
{
/* positive_int_expr*/
idl_global->set_parse_state (IDL_GlobalData::PS_SequenceExprSeen);
}
break;
-case 275:
+case 277:
{
/* '>'*/
idl_global->set_parse_state (IDL_GlobalData::PS_SequenceQsSeen);
@@ -3818,7 +3853,7 @@ case 275:
}
}
break;
-case 276:
+case 278:
{
/* | seq_head '>'*/
idl_global->set_parse_state (IDL_GlobalData::PS_SequenceQsSeen);
@@ -3866,7 +3901,7 @@ case 276:
}
}
break;
-case 277:
+case 279:
{
/* seq_head : IDL_SEQUENCE*/
idl_global->set_parse_state (IDL_GlobalData::PS_SequenceSeen);
@@ -3877,32 +3912,32 @@ case 277:
idl_global->scopes ().push (0);
}
break;
-case 278:
+case 280:
{
/* '<'*/
idl_global->set_parse_state (IDL_GlobalData::PS_SequenceSqSeen);
}
break;
-case 279:
+case 281:
{
/* simple_type_spec*/
idl_global->set_parse_state (IDL_GlobalData::PS_SequenceTypeSeen);
tao_yyval.dcval = tao_yyvsp[0].dcval;
}
break;
-case 280:
+case 282:
{
/* string_type_spec : string_head '<'*/
idl_global->set_parse_state (IDL_GlobalData::PS_StringSqSeen);
}
break;
-case 281:
+case 283:
{
/* positive_int_expr*/
idl_global->set_parse_state (IDL_GlobalData::PS_StringExprSeen);
}
break;
-case 282:
+case 284:
{
/* '>'*/
idl_global->set_parse_state (IDL_GlobalData::PS_StringQsSeen);
@@ -3931,7 +3966,7 @@ case 282:
}
}
break;
-case 283:
+case 285:
{
/* | string_head*/
idl_global->set_parse_state (IDL_GlobalData::PS_StringCompleted);
@@ -3952,25 +3987,25 @@ case 283:
);
}
break;
-case 284:
+case 286:
{
/* string_head : IDL_STRING*/
idl_global->set_parse_state (IDL_GlobalData::PS_StringSeen);
}
break;
-case 285:
+case 287:
{
/* wstring_type_spec : wstring_head '<'*/
idl_global->set_parse_state (IDL_GlobalData::PS_StringSqSeen);
}
break;
-case 286:
+case 288:
{
/* positive_int_expr*/
idl_global->set_parse_state (IDL_GlobalData::PS_StringExprSeen);
}
break;
-case 287:
+case 289:
{
/* '>'*/
idl_global->set_parse_state (IDL_GlobalData::PS_StringQsSeen);
@@ -3997,7 +4032,7 @@ case 287:
}
}
break;
-case 288:
+case 290:
{
/* | wstring_head*/
idl_global->set_parse_state (IDL_GlobalData::PS_StringCompleted);
@@ -4017,19 +4052,19 @@ case 288:
);
}
break;
-case 289:
+case 291:
{
/* wstring_head : IDL_WSTRING*/
idl_global->set_parse_state (IDL_GlobalData::PS_StringSeen);
}
break;
-case 290:
+case 292:
{
/* array_declarator : id*/
idl_global->set_parse_state (IDL_GlobalData::PS_ArrayIDSeen);
}
break;
-case 291:
+case 293:
{
/* at_least_one_array_dim*/
idl_global->set_parse_state (IDL_GlobalData::PS_ArrayCompleted);
@@ -4052,7 +4087,7 @@ case 291:
}
}
break;
-case 292:
+case 294:
{
/* at_least_one_array_dim : array_dim array_dims*/
ACE_NEW_RETURN (tao_yyval.elval,
@@ -4061,7 +4096,7 @@ case 292:
1);
}
break;
-case 293:
+case 295:
{
/* array_dims : array_dims array_dim*/
if (tao_yyvsp[-1].elval == 0)
@@ -4083,25 +4118,25 @@ case 293:
}
}
break;
-case 294:
+case 296:
{
/* | /* EMPTY * /*/
tao_yyval.elval = 0;
}
break;
-case 295:
+case 297:
{
/* array_dim : '['*/
idl_global->set_parse_state (IDL_GlobalData::PS_DimSqSeen);
}
break;
-case 296:
+case 298:
{
/* positive_int_expr*/
idl_global->set_parse_state (IDL_GlobalData::PS_DimExprSeen);
}
break;
-case 297:
+case 299:
{
/* ']'*/
idl_global->set_parse_state (IDL_GlobalData::PS_DimQsSeen);
@@ -4123,19 +4158,19 @@ case 297:
}
}
break;
-case 298:
+case 300:
{
/* attribute : opt_readonly IDL_ATTRIBUTE*/
idl_global->set_parse_state (IDL_GlobalData::PS_AttrSeen);
}
break;
-case 299:
+case 301:
{
/* param_type_spec*/
idl_global->set_parse_state (IDL_GlobalData::PS_AttrTypeSeen);
}
break;
-case 300:
+case 302:
{
/* at_least_one_simple_declarator*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -4185,26 +4220,26 @@ case 300:
}
}
break;
-case 301:
+case 303:
{
/* opt_readonly : IDL_READONLY*/
idl_global->set_parse_state (IDL_GlobalData::PS_AttrROSeen);
tao_yyval.bval = I_TRUE;
}
break;
-case 302:
+case 304:
{
/* | /* EMPTY * /*/
tao_yyval.bval = I_FALSE;
}
break;
-case 303:
+case 305:
{
/* exception : IDL_EXCEPTION*/
idl_global->set_parse_state (IDL_GlobalData::PS_ExceptSeen);
}
break;
-case 304:
+case 306:
{
/* id*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -4231,19 +4266,19 @@ case 304:
idl_global->scopes ().push (e);
}
break;
-case 305:
+case 307:
{
/* '{'*/
idl_global->set_parse_state (IDL_GlobalData::PS_ExceptSqSeen);
}
break;
-case 306:
+case 308:
{
/* members*/
idl_global->set_parse_state (IDL_GlobalData::PS_ExceptBodySeen);
}
break;
-case 307:
+case 309:
{
/* '}'*/
idl_global->set_parse_state (IDL_GlobalData::PS_ExceptQsSeen);
@@ -4253,13 +4288,13 @@ case 307:
idl_global->scopes ().pop ();
}
break;
-case 308:
+case 310:
{
/* operation : opt_op_attribute op_type_spec*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpTypeSeen);
}
break;
-case 309:
+case 311:
{
/* IDENTIFIER*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -4306,19 +4341,19 @@ case 309:
idl_global->scopes ().push (o);
}
break;
-case 310:
+case 312:
{
/* parameter_list*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpParsCompleted);
}
break;
-case 311:
+case 313:
{
/* opt_raises*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseCompleted);
}
break;
-case 312:
+case 314:
{
/* opt_context*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -4349,27 +4384,27 @@ case 312:
idl_global->scopes ().pop ();
}
break;
-case 313:
+case 315:
{
/* opt_op_attribute : IDL_ONEWAY*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpAttrSeen);
tao_yyval.ofval = AST_Operation::OP_oneway;
}
break;
-case 314:
+case 316:
{
/* | IDL_IDEMPOTENT*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpAttrSeen);
tao_yyval.ofval = AST_Operation::OP_idempotent;
}
break;
-case 315:
+case 317:
{
/* | /* EMPTY * /*/
tao_yyval.ofval = AST_Operation::OP_noflags;
}
break;
-case 317:
+case 319:
{
/* op_type_spec : param_type_spec | IDL_VOID*/
tao_yyval.dcval =
@@ -4378,14 +4413,14 @@ case 317:
);
}
break;
-case 318:
+case 320:
{
/* init_decl : IDL_FACTORY */
/*@@ PS_FactorySeen?*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpTypeSeen);
}
break;
-case 319:
+case 321:
{
/* IDENTIFIER */
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -4423,7 +4458,7 @@ case 319:
idl_global->scopes ().push (factory);
}
break;
-case 320:
+case 322:
{
/* init_parameter_list*/
/* TODO: replace parameter_list with rule that accepts only IN args */
@@ -4432,49 +4467,49 @@ case 320:
idl_global->scopes ().pop ();
}
break;
-case 321:
+case 323:
{
/* init_parameter_list : '('*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen);
}
break;
-case 322:
+case 324:
{
/* ')'*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen);
}
break;
-case 323:
+case 325:
{
/* | '('*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen);
}
break;
-case 324:
+case 326:
{
/* at_least_one_in_parameter ')'*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen);
}
break;
-case 326:
+case 328:
{
/* in_parameters : in_parameters ','*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpParCommaSeen);
}
break;
-case 329:
+case 331:
{
/* in_parameter : IDL_IN*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpParDirSeen);
}
break;
-case 330:
+case 332:
{
/* param_type_spec*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpParTypeSeen);
}
break;
-case 331:
+case 333:
{
/* declarator*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -4504,49 +4539,49 @@ case 331:
}
}
break;
-case 332:
+case 334:
{
/* parameter_list : '('*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen);
}
break;
-case 333:
+case 335:
{
/* ')'*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen);
}
break;
-case 334:
+case 336:
{
/* | '('*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen);
}
break;
-case 335:
+case 337:
{
/* at_least_one_parameter ')'*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen);
}
break;
-case 337:
+case 339:
{
/* parameters : parameters ','*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpParCommaSeen);
}
break;
-case 340:
+case 342:
{
/* parameter : direction*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpParDirSeen);
}
break;
-case 341:
+case 343:
{
/* param_type_spec*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpParTypeSeen);
}
break;
-case 342:
+case 344:
{
/* declarator*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -4590,13 +4625,16 @@ case 342:
}
}
break;
-case 343:
+case 345:
{
/* param_type_spec : base_type_spec*/
- tao_yyval.dcval = idl_global->scopes ().bottom ()->lookup_primitive_type (tao_yyvsp[0].etval);
+ tao_yyval.dcval =
+ idl_global->scopes ().bottom ()->lookup_primitive_type (
+ tao_yyvsp[0].etval
+ );
}
break;
-case 346:
+case 348:
{
/* | string_type_spec*/
/* | wstring_type_spec*/
@@ -4624,83 +4662,84 @@ case 346:
idl_global->err ()->error1 (UTL_Error::EIDL_ILLEGAL_ADD,
d);
- // If we don't return here, we'll crash later.
+ /* If we don't return here, we'll crash later.*/
return 1;
}
}
+
tao_yyval.dcval = d;
}
break;
-case 347:
+case 349:
{
/* direction : IDL_IN*/
tao_yyval.dival = AST_Argument::dir_IN;
}
break;
-case 348:
+case 350:
{
/* | IDL_OUT*/
tao_yyval.dival = AST_Argument::dir_OUT;
}
break;
-case 349:
+case 351:
{
/* | IDL_INOUT*/
tao_yyval.dival = AST_Argument::dir_INOUT;
}
break;
-case 350:
+case 352:
{
/* opt_raises : IDL_RAISES*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseSeen);
}
break;
-case 351:
+case 353:
{
/* '('*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseSqSeen);
}
break;
-case 352:
+case 354:
{
/* at_least_one_scoped_name ')'*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseQsSeen);
tao_yyval.nlval = tao_yyvsp[-1].nlval;
}
break;
-case 353:
+case 355:
{
tao_yyval.nlval = 0;
/* | /* EMPTY * /*/
}
break;
-case 354:
+case 356:
{
/* opt_context : IDL_CONTEXT*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpContextSeen);
}
break;
-case 355:
+case 357:
{
idl_global->set_parse_state (IDL_GlobalData::PS_OpContextSqSeen);
/* '('*/
}
break;
-case 356:
+case 358:
{
/* at_least_one_string_literal ')'*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpContextQsSeen);
tao_yyval.slval = tao_yyvsp[-1].slval;
}
break;
-case 357:
+case 359:
{
/* | /* EMPTY * /*/
tao_yyval.slval = 0;
}
break;
-case 358:
+case 360:
{
/* at_least_one_string_literal : IDL_STRING_LITERAL string_literals*/
ACE_NEW_RETURN (tao_yyval.slval,
@@ -4709,13 +4748,13 @@ case 358:
1);
}
break;
-case 359:
+case 361:
{
/* string_literals : string_literals ','*/
idl_global->set_parse_state (IDL_GlobalData::PS_OpContextCommaSeen);
}
break;
-case 360:
+case 362:
{
/* IDL_STRING_LITERAL*/
if (tao_yyvsp[-3].slval == 0)
@@ -4737,13 +4776,13 @@ case 360:
}
}
break;
-case 361:
+case 363:
{
/* | /* EMPTY * /*/
tao_yyval.slval = 0;
}
break;
-case 362:
+case 364:
{
/* typeid_dcl : IDL_TYPEID scoped_name IDL_STRING_LITERAL*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
@@ -4762,7 +4801,7 @@ case 362:
}
}
break;
-case 363:
+case 365:
{
/* typeprefix_dcl : IDL_TYPEPREFIX scoped_name IDL_STRING_LITERAL*/
UTL_Scope *s = idl_global->scopes ().top_non_null ();
diff --git a/TAO/TAO_IDL/fe/y.tab.h b/TAO/TAO_IDL/fe/y.tab.h
index c7c22b99a2a..392ae2e6dc6 100644
--- a/TAO/TAO_IDL/fe/y.tab.h
+++ b/TAO/TAO_IDL/fe/y.tab.h
@@ -15,65 +15,66 @@
#define IDL_BOOLEAN 270
#define IDL_FIXED 271
#define IDL_ANY 272
-#define IDL_STRUCT 273
-#define IDL_UNION 274
-#define IDL_SWITCH 275
-#define IDL_ENUM 276
-#define IDL_SEQUENCE 277
-#define IDL_STRING 278
-#define IDL_WSTRING 279
-#define IDL_EXCEPTION 280
-#define IDL_CASE 281
-#define IDL_DEFAULT 282
-#define IDL_READONLY 283
-#define IDL_ATTRIBUTE 284
-#define IDL_ONEWAY 285
-#define IDL_IDEMPOTENT 286
-#define IDL_VOID 287
-#define IDL_IN 288
-#define IDL_OUT 289
-#define IDL_INOUT 290
-#define IDL_RAISES 291
-#define IDL_CONTEXT 292
-#define IDL_NATIVE 293
-#define IDL_LOCAL 294
-#define IDL_ABSTRACT 295
-#define IDL_CUSTOM 296
-#define IDL_FACTORY 297
-#define IDL_PRIVATE 298
-#define IDL_PUBLIC 299
-#define IDL_SUPPORTS 300
-#define IDL_TRUNCATABLE 301
-#define IDL_VALUETYPE 302
-#define IDL_COMPONENT 303
-#define IDL_CONSUMES 304
-#define IDL_EMITS 305
-#define IDL_EVENTTYPE 306
-#define IDL_FINDER 307
-#define IDL_GETRAISES 308
-#define IDL_HOME 309
-#define IDL_IMPORT 310
-#define IDL_MULTIPLE 311
-#define IDL_PRIMARYKEY 312
-#define IDL_PROVIDES 313
-#define IDL_PUBLISHES 314
-#define IDL_SETRAISES 315
-#define IDL_TYPEID 316
-#define IDL_TYPEPREFIX 317
-#define IDL_USES 318
-#define IDL_MANAGES 319
-#define IDL_INTEGER_LITERAL 320
-#define IDL_UINTEGER_LITERAL 321
-#define IDL_STRING_LITERAL 322
-#define IDL_CHARACTER_LITERAL 323
-#define IDL_FLOATING_PT_LITERAL 324
-#define IDL_TRUETOK 325
-#define IDL_FALSETOK 326
-#define IDL_SCOPE_DELIMITOR 327
-#define IDL_LEFT_SHIFT 328
-#define IDL_RIGHT_SHIFT 329
-#define IDL_WCHAR_LITERAL 330
-#define IDL_WSTRING_LITERAL 331
+#define IDL_OBJECT 273
+#define IDL_STRUCT 274
+#define IDL_UNION 275
+#define IDL_SWITCH 276
+#define IDL_ENUM 277
+#define IDL_SEQUENCE 278
+#define IDL_STRING 279
+#define IDL_WSTRING 280
+#define IDL_EXCEPTION 281
+#define IDL_CASE 282
+#define IDL_DEFAULT 283
+#define IDL_READONLY 284
+#define IDL_ATTRIBUTE 285
+#define IDL_ONEWAY 286
+#define IDL_IDEMPOTENT 287
+#define IDL_VOID 288
+#define IDL_IN 289
+#define IDL_OUT 290
+#define IDL_INOUT 291
+#define IDL_RAISES 292
+#define IDL_CONTEXT 293
+#define IDL_NATIVE 294
+#define IDL_LOCAL 295
+#define IDL_ABSTRACT 296
+#define IDL_CUSTOM 297
+#define IDL_FACTORY 298
+#define IDL_PRIVATE 299
+#define IDL_PUBLIC 300
+#define IDL_SUPPORTS 301
+#define IDL_TRUNCATABLE 302
+#define IDL_VALUETYPE 303
+#define IDL_COMPONENT 304
+#define IDL_CONSUMES 305
+#define IDL_EMITS 306
+#define IDL_EVENTTYPE 307
+#define IDL_FINDER 308
+#define IDL_GETRAISES 309
+#define IDL_HOME 310
+#define IDL_IMPORT 311
+#define IDL_MULTIPLE 312
+#define IDL_PRIMARYKEY 313
+#define IDL_PROVIDES 314
+#define IDL_PUBLISHES 315
+#define IDL_SETRAISES 316
+#define IDL_TYPEID 317
+#define IDL_TYPEPREFIX 318
+#define IDL_USES 319
+#define IDL_MANAGES 320
+#define IDL_INTEGER_LITERAL 321
+#define IDL_UINTEGER_LITERAL 322
+#define IDL_STRING_LITERAL 323
+#define IDL_CHARACTER_LITERAL 324
+#define IDL_FLOATING_PT_LITERAL 325
+#define IDL_TRUETOK 326
+#define IDL_FALSETOK 327
+#define IDL_SCOPE_DELIMITOR 328
+#define IDL_LEFT_SHIFT 329
+#define IDL_RIGHT_SHIFT 330
+#define IDL_WCHAR_LITERAL 331
+#define IDL_WSTRING_LITERAL 332
typedef union {
AST_Decl *dcval; /* Decl value */
UTL_StrList *slval; /* String list */
diff --git a/TAO/TAO_IDL/include/ast_expression.h b/TAO/TAO_IDL/include/ast_expression.h
index d729cba1188..e208c13237a 100644
--- a/TAO/TAO_IDL/include/ast_expression.h
+++ b/TAO/TAO_IDL/include/ast_expression.h
@@ -136,7 +136,18 @@ public:
, EV_bool // Expression value is boolean.
, EV_string // Expression value is char *.
, EV_wstring // Expression value is wide string.
- , EV_any // Expression value is any of above.
+ , EV_enum // Expression value is from an enum.
+
+ // CORBA::Any and CORBA::Object are constructed in the parser first as
+ // expression values, then looked up by name to get the
+ // AST_PredefinedType entry. This is so the grammar non-terminals
+ // integer_type, float_type, bool_type, etc. can also be expression
+ // values in order to serve double duty -- as productions of const_type
+ // and also (along with object_type) as productions of base_type_spec,
+ // as found in the OMG IDL grammar specification.
+ , EV_any // Used for CORBA::Any operation parameters
+ , EV_object // Used for CORBA::Object parameters
+
, EV_void // Expression value is void (absent).
, EV_none // Expression value is missing.
};
diff --git a/TAO/TAO_IDL/include/ast_predefined_type.h b/TAO/TAO_IDL/include/ast_predefined_type.h
index 01d25e12905..c9a3fa919c8 100644
--- a/TAO/TAO_IDL/include/ast_predefined_type.h
+++ b/TAO/TAO_IDL/include/ast_predefined_type.h
@@ -90,7 +90,8 @@ public:
, PT_wchar // Predefined type "CORBA::WChar"
, PT_boolean // Predefined type "boolean"
, PT_octet // Predefined type "octet"
- , PT_any // Predefined type "any"
+ , PT_any // Predefined type "CORBA::Any"
+ , PT_object // Predefined type "CORBA::Object"
, PT_void // Predefined type "void"
, PT_pseudo // Predefined type for pseudo objects
};
diff --git a/TAO/TAO_IDL/include/ast_union.h b/TAO/TAO_IDL/include/ast_union.h
index 1e57c2da8af..9ff2ade23b6 100644
--- a/TAO/TAO_IDL/include/ast_union.h
+++ b/TAO/TAO_IDL/include/ast_union.h
@@ -148,7 +148,7 @@ private:
AST_Expression::ExprType pd_udisc_type;
// Its expression type.
- // Convention: udisc_type == EV_any denotes an enum value.
+ // Convention: udisc_type == EV_enum denotes an enum value.
// Operations.
diff --git a/TAO/TAO_IDL/util/utl_err.cpp b/TAO/TAO_IDL/util/utl_err.cpp
index 2eb869651db..47c8b77e76c 100644
--- a/TAO/TAO_IDL/util/utl_err.cpp
+++ b/TAO/TAO_IDL/util/utl_err.cpp
@@ -223,8 +223,8 @@ exprtype_to_string (AST_Expression::ExprType t)
return "boolean";
case AST_Expression::EV_string:
return "string";
- case AST_Expression::EV_any:
- return "any";
+ case AST_Expression::EV_enum:
+ return "enum";
case AST_Expression::EV_void:
return "void";
case AST_Expression::EV_none:
diff --git a/TAO/TAO_IDL/util/utl_global.cpp b/TAO/TAO_IDL/util/utl_global.cpp
index 90c0e6e3327..ae8ea732cfc 100644
--- a/TAO/TAO_IDL/util/utl_global.cpp
+++ b/TAO/TAO_IDL/util/utl_global.cpp
@@ -725,7 +725,7 @@ IDL_GlobalData::PredefinedTypeToExprType(AST_PredefinedType::PredefinedType pt)
case AST_PredefinedType::PT_void:
return AST_Expression::EV_void;
default:
- return AST_Expression::EV_any;
+ return AST_Expression::EV_enum;
}
}
diff --git a/TAO/TAO_IDL/util/utl_scope.cpp b/TAO/TAO_IDL/util/utl_scope.cpp
index 0de35907366..f84a11cdaa9 100644
--- a/TAO/TAO_IDL/util/utl_scope.cpp
+++ b/TAO/TAO_IDL/util/utl_scope.cpp
@@ -1100,18 +1100,16 @@ UTL_Scope::lookup_pseudo (Identifier *e)
AST_Decl *
UTL_Scope::lookup_primitive_type (AST_Expression::ExprType et)
{
- AST_Decl *as_decl = 0;
- UTL_Scope *ancestor = 0;
- AST_PredefinedType *t = 0;
AST_PredefinedType::PredefinedType pdt;
- as_decl = ScopeAsDecl (this);
+ AST_Decl *as_decl = ScopeAsDecl (this);
if (as_decl == 0)
{
return 0;
}
- ancestor = as_decl->defined_in ();
+
+ UTL_Scope *ancestor = as_decl->defined_in ();
if (ancestor != 0)
{
@@ -1162,9 +1160,13 @@ UTL_Scope::lookup_primitive_type (AST_Expression::ExprType et)
case AST_Expression::EV_any:
pdt = AST_PredefinedType::PT_any;
break;
+ case AST_Expression::EV_object:
+ pdt = AST_PredefinedType::PT_object;
+ break;
case AST_Expression::EV_void:
pdt = AST_PredefinedType::PT_void;
break;
+ case AST_Expression::EV_enum:
case AST_Expression::EV_string:
case AST_Expression::EV_wstring:
case AST_Expression::EV_none:
@@ -1172,6 +1174,8 @@ UTL_Scope::lookup_primitive_type (AST_Expression::ExprType et)
return 0;
}
+ AST_PredefinedType *t = 0;
+
for (UTL_ScopeActiveIterator i (this, UTL_Scope::IK_decls);
!i.is_done();
i.next ())
@@ -1182,7 +1186,7 @@ UTL_Scope::lookup_primitive_type (AST_Expression::ExprType et)
{
t = AST_PredefinedType::narrow_from_decl (as_decl);
- if (t == NULL)
+ if (t == 0)
{
continue;
}