From 2cbdf73f5418ef30639750f25ca5a1362f943a24 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Thu, 8 Jul 2021 19:22:31 -0500 Subject: [PATCH 1/8] IDLv4 Explicitly-named Integer Types Ported from https://github.com/DOCGroup/ACE_TAO/pull/840 to ACE6/TAO2. Also regenerated with Bison 3.7.6 at the same time like in d5819180d02d76ed3c14c421f02ad69c4d0bab9e in https://github.com/DOCGroup/ACE_TAO/pull/1594 --- ACE/ace/Basic_Types.h | 15 +- ACE/ace/CDR_Base.h | 10 +- ACE/ace/CDR_Stream.h | 36 + ACE/ace/CDR_Stream.inl | 111 + TAO/TAO_IDL/ast/ast_constant.cpp | 93 +- TAO/TAO_IDL/ast/ast_expression.cpp | 1038 ++- TAO/TAO_IDL/ast/ast_predefined_type.cpp | 16 +- TAO/TAO_IDL/ast/ast_sequence.cpp | 13 + TAO/TAO_IDL/ast/ast_template_module.cpp | 11 +- TAO/TAO_IDL/ast/ast_union.cpp | 23 +- TAO/TAO_IDL/be/be_codegen.cpp | 13 +- TAO/TAO_IDL/be/be_global.cpp | 13 +- TAO/TAO_IDL/be/be_helper.cpp | 27 +- TAO/TAO_IDL/be/be_predefined_type.cpp | 33 +- TAO/TAO_IDL/be/be_sequence.cpp | 190 +- TAO/TAO_IDL/be/be_union_branch.cpp | 3 + .../be/be_visitor_any_extracted_type_decl.cpp | 10 + TAO/TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp | 12 + .../be/be_visitor_constant/constant.cpp | 50 + TAO/TAO_IDL/be/be_visitor_constant/constant.h | 3 +- .../be/be_visitor_constant/constant_ch.cpp | 6 +- .../be/be_visitor_constant/constant_cs.cpp | 2 +- TAO/TAO_IDL/be/be_visitor_field/cdr_op_cs.cpp | 20 + .../be/be_visitor_operation/operation.cpp | 6 + TAO/TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp | 103 +- .../be/be_visitor_union/discriminant_ci.cpp | 3 + .../be/be_visitor_union_branch/cdr_op_cs.cpp | 32 + .../be/be_visitor_valuebox/valuebox_cs.cpp | 20 + .../be/be_visitor_valuetype/field_cdr_cs.cpp | 20 + TAO/TAO_IDL/be_include/be_global.h | 3 + TAO/TAO_IDL/be_include/be_sequence.h | 8 +- TAO/TAO_IDL/fe/fe_init.cpp | 8 +- TAO/TAO_IDL/fe/fe_utils.cpp | 8 + TAO/TAO_IDL/fe/idl.ll | 65 + TAO/TAO_IDL/fe/idl.tab.cpp | 5869 +++++++++-------- TAO/TAO_IDL/fe/idl.tab.hpp | 30 +- TAO/TAO_IDL/fe/idl.ypp | 42 + TAO/TAO_IDL/fe/idl.yy.cpp | 1744 ++--- TAO/TAO_IDL/include/ast_constant.h | 6 - TAO/TAO_IDL/include/ast_expression.h | 17 +- TAO/TAO_IDL/include/ast_predefined_type.h | 2 + TAO/TAO_IDL/include/ast_sequence.h | 6 + TAO/bin/tao_orb_tests.lst | 1 + TAO/tao/.gitignore | 39 +- TAO/tao/AnyTypeCode/AnyTypeCode.mpc | 7 +- TAO/tao/AnyTypeCode/TypeCode_Constants.cpp | 2 + TAO/tao/AnyTypeCode/TypeCode_Constants.h | 2 + TAO/tao/Basic_Types.h | 18 + TAO/tao/Basic_Types_IDLv4.h | 42 + TAO/tao/Bounded_Sequence_CDR_T.h | 71 +- TAO/tao/Bounded_Value_Sequence_T.h | 2 +- TAO/tao/CDR.h | 2 +- TAO/tao/Int8Seq.pidl | 11 + TAO/tao/UInt8Seq.pidl | 11 + TAO/tao/Unbounded_Sequence_CDR_T.h | 71 +- TAO/tao/Unbounded_Value_Sequence_T.h | 2 +- TAO/tao/tao.mpc | 12 + TAO/tests/IDLv4/explicit_ints/.gitignore | 6 + .../explicit_ints/IDLv4_explicit_ints.mpc | 10 + TAO/tests/IDLv4/explicit_ints/main.cpp | 80 + TAO/tests/IDLv4/explicit_ints/run_test.pl | 19 + TAO/tests/IDLv4/explicit_ints/test.idl | 111 + 62 files changed, 5621 insertions(+), 4638 deletions(-) create mode 100644 TAO/TAO_IDL/be/be_visitor_constant/constant.cpp create mode 100644 TAO/tao/Basic_Types_IDLv4.h create mode 100644 TAO/tao/Int8Seq.pidl create mode 100644 TAO/tao/UInt8Seq.pidl create mode 100644 TAO/tests/IDLv4/explicit_ints/.gitignore create mode 100644 TAO/tests/IDLv4/explicit_ints/IDLv4_explicit_ints.mpc create mode 100644 TAO/tests/IDLv4/explicit_ints/main.cpp create mode 100755 TAO/tests/IDLv4/explicit_ints/run_test.pl create mode 100644 TAO/tests/IDLv4/explicit_ints/test.idl diff --git a/ACE/ace/Basic_Types.h b/ACE/ace/Basic_Types.h index 67916f8dc0679..ac7a13116e358 100644 --- a/ACE/ace/Basic_Types.h +++ b/ACE/ace/Basic_Types.h @@ -666,18 +666,21 @@ ACE_END_VERSIONED_NAMESPACE_DECL # endif /* ACE_SIZEOF_LONG_DOUBLE */ // Max and min sizes for the ACE integer types. -#define ACE_CHAR_MAX 0x7F -#define ACE_CHAR_MIN -(ACE_CHAR_MAX)-1 -#define ACE_OCTET_MAX 0xFF +#define ACE_INT8_MAX 0x7F +#define ACE_INT8_MIN -(ACE_INT8_MAX) - 1 +#define ACE_UINT8_MAX 0xFF +#define ACE_CHAR_MAX (ACE_INT8_MAX) +#define ACE_CHAR_MIN (ACE_INT8_MIN) +#define ACE_OCTET_MAX (ACE_UINT8_MAX) #define ACE_INT16_MAX 0x7FFF -#define ACE_INT16_MIN -(ACE_INT16_MAX)-1 +#define ACE_INT16_MIN -(ACE_INT16_MAX) - 1 #define ACE_UINT16_MAX 0xFFFF #define ACE_WCHAR_MAX ACE_UINT16_MAX #define ACE_INT32_MAX 0x7FFFFFFF -#define ACE_INT32_MIN -(ACE_INT32_MAX)-1 +#define ACE_INT32_MIN -(ACE_INT32_MAX) - 1 #define ACE_UINT32_MAX 0xFFFFFFFF #define ACE_INT64_MAX ACE_INT64_LITERAL(0x7FFFFFFFFFFFFFFF) -#define ACE_INT64_MIN -(ACE_INT64_MAX)-1 +#define ACE_INT64_MIN -(ACE_INT64_MAX) - 1 #define ACE_UINT64_MAX ACE_UINT64_LITERAL (0xFFFFFFFFFFFFFFFF) // These use ANSI/IEEE format. diff --git a/ACE/ace/CDR_Base.h b/ACE/ace/CDR_Base.h index a8b49e5a0a163..cdbb58d875bd4 100644 --- a/ACE/ace/CDR_Base.h +++ b/ACE/ace/CDR_Base.h @@ -198,7 +198,7 @@ class ACE_Export ACE_CDR */ //@{ typedef bool Boolean; - typedef unsigned char Octet; + typedef ACE_Byte Octet; typedef char Char; typedef ACE_WCHAR_T WChar; typedef ACE_INT16 Short; @@ -207,6 +207,14 @@ class ACE_Export ACE_CDR typedef ACE_UINT32 ULong; typedef ACE_INT64 LongLong; typedef ACE_UINT64 ULongLong; + typedef ACE_INT8 Int8; + typedef ACE_UINT8 UInt8; + typedef Short Int16; + typedef UShort UInt16; + typedef Long Int32; + typedef ULong UInt32; + typedef LongLong Int64; + typedef ULongLong UInt64; # if ACE_SIZEOF_FLOAT == 4 typedef float Float; diff --git a/ACE/ace/CDR_Stream.h b/ACE/ace/CDR_Stream.h index 4ce2402a5fb4e..059a4633e0736 100644 --- a/ACE/ace/CDR_Stream.h +++ b/ACE/ace/CDR_Stream.h @@ -197,6 +197,18 @@ class ACE_Export ACE_OutputCDR ACE_CDR::WChar val_; }; + struct ACE_Export from_int8 + { + explicit from_int8 (ACE_CDR::Int8 val); + ACE_CDR::Int8 val_; + }; + + struct ACE_Export from_uint8 + { + explicit from_uint8 (ACE_CDR::UInt8 val); + ACE_CDR::UInt8 val_; + }; + struct ACE_Export from_string { from_string (ACE_CDR::Char* s, @@ -260,6 +272,8 @@ class ACE_Export ACE_OutputCDR ACE_CDR::Boolean write_double (const ACE_CDR::Double &x); ACE_CDR::Boolean write_longdouble (const ACE_CDR::LongDouble &x); ACE_CDR::Boolean write_fixed (const ACE_CDR::Fixed &x); + ACE_CDR::Boolean write_int8 (ACE_CDR::Int8 x); + ACE_CDR::Boolean write_uint8 (ACE_CDR::UInt8 x); /// For string we offer methods that accept a precomputed length. ACE_CDR::Boolean write_string (const ACE_CDR::Char *x); @@ -306,6 +320,8 @@ class ACE_Export ACE_OutputCDR ACE_CDR::ULong length); ACE_CDR::Boolean write_longdouble_array (const ACE_CDR::LongDouble* x, ACE_CDR::ULong length); + ACE_CDR::Boolean write_int8_array (const ACE_CDR::Int8 *x, ACE_CDR::ULong length); + ACE_CDR::Boolean write_uint8_array (const ACE_CDR::UInt8 *x, ACE_CDR::ULong length); /// Write an octet array contained inside a MB, this can be optimized /// to minimize copies. @@ -790,6 +806,18 @@ class ACE_Export ACE_InputCDR ACE_CDR::Octet &ref_; }; + struct ACE_Export to_int8 + { + explicit to_int8 (ACE_CDR::Int8 &ref); + ACE_CDR::Int8 &ref_; + }; + + struct ACE_Export to_uint8 + { + explicit to_uint8 (ACE_CDR::UInt8 &ref); + ACE_CDR::UInt8 &ref_; + }; + struct ACE_Export to_string { /** @@ -856,6 +884,8 @@ class ACE_Export ACE_InputCDR ACE_CDR::Boolean read_double (ACE_CDR::Double &x); ACE_CDR::Boolean read_longdouble (ACE_CDR::LongDouble &x); ACE_CDR::Boolean read_fixed (ACE_CDR::Fixed &x); + ACE_CDR::Boolean read_int8 (ACE_CDR::Int8 &x); + ACE_CDR::Boolean read_uint8 (ACE_CDR::UInt8 &x); ACE_CDR::Boolean read_string (ACE_CDR::Char *&x); ACE_CDR::Boolean read_string (ACE_CString &x); @@ -898,6 +928,8 @@ class ACE_Export ACE_InputCDR ACE_CDR::ULong length); ACE_CDR::Boolean read_longdouble_array (ACE_CDR::LongDouble* x, ACE_CDR::ULong length); + ACE_CDR::Boolean read_int8_array (ACE_CDR::Int8 *x, ACE_CDR::ULong length); + ACE_CDR::Boolean read_uint8_array (ACE_CDR::UInt8 *x, ACE_CDR::ULong length); //@} /** @@ -1412,6 +1444,8 @@ extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, const std::wstring& x); #endif +extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_uint8 x); +extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_int8 x); // Not used by CORBA or TAO extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, @@ -1467,6 +1501,8 @@ extern ACE_Export ACE_CDR::Boolean operator<< (ACE_InputCDR &os, extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, std::wstring& x); #endif +extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &os, ACE_InputCDR::to_uint8 x); +extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &os, ACE_InputCDR::to_int8 x); ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/CDR_Stream.inl b/ACE/ace/CDR_Stream.inl index fe25108da85b1..4723f736fcd35 100644 --- a/ACE/ace/CDR_Stream.inl +++ b/ACE/ace/CDR_Stream.inl @@ -161,6 +161,30 @@ ACE_OutputCDR::from_std_wstring::from_std_wstring (const std::wstring &ws, } #endif +ACE_INLINE +ACE_InputCDR::to_int8::to_int8 (ACE_CDR::Int8 &ref) + : ref_ (ref) +{ +} + +ACE_INLINE +ACE_OutputCDR::from_int8::from_int8 (ACE_CDR::Int8 val) + : val_ (val) +{ +} + +ACE_INLINE +ACE_InputCDR::to_uint8::to_uint8 (ACE_CDR::UInt8 &ref) + : ref_ (ref) +{ +} + +ACE_INLINE +ACE_OutputCDR::from_uint8::from_uint8 (ACE_CDR::UInt8 val) + : val_ (val) +{ +} + ACE_INLINE ACE_InputCDR::Transfer_Contents::Transfer_Contents (ACE_InputCDR &rhs) : rhs_ (rhs) @@ -355,6 +379,18 @@ ACE_OutputCDR::write_wstring (const std::wstring &x) } #endif +ACE_INLINE ACE_CDR::Boolean +ACE_OutputCDR::write_int8 (ACE_CDR::Int8 x) +{ + return this->write_1 (reinterpret_cast (&x)); +} + +ACE_INLINE ACE_CDR::Boolean +ACE_OutputCDR::write_uint8 (ACE_CDR::UInt8 x) +{ + return this->write_1 (reinterpret_cast (&x)); +} + ACE_INLINE ACE_CDR::Boolean ACE_OutputCDR::write_char_array (const ACE_CDR::Char *x, ACE_CDR::ULong length) @@ -491,6 +527,18 @@ ACE_OutputCDR::write_longdouble_array (const ACE_CDR::LongDouble* x, length); } +ACE_INLINE ACE_CDR::Boolean +ACE_OutputCDR::write_int8_array (const ACE_CDR::Int8 *x, ACE_CDR::ULong length) +{ + return write_array (x, ACE_CDR::OCTET_SIZE, ACE_CDR::OCTET_ALIGN, length); +} + +ACE_INLINE ACE_CDR::Boolean +ACE_OutputCDR::write_uint8_array (const ACE_CDR::UInt8 *x, ACE_CDR::ULong length) +{ + return write_array (x, ACE_CDR::OCTET_SIZE, ACE_CDR::OCTET_ALIGN, length); +} + ACE_INLINE bool ACE_OutputCDR::good_bit (void) const { @@ -791,6 +839,18 @@ ACE_InputCDR::read_fixed (ACE_CDR::Fixed &x) return false; } +ACE_INLINE ACE_CDR::Boolean +ACE_InputCDR::read_int8 (ACE_CDR::Int8 &x) +{ + return read_1 (reinterpret_cast(&x)); +} + +ACE_INLINE ACE_CDR::Boolean +ACE_InputCDR::read_uint8 (ACE_CDR::UInt8 &x) +{ + return read_1 (reinterpret_cast(&x)); +} + ACE_INLINE size_t ACE_InputCDR::length (void) const { @@ -1021,6 +1081,30 @@ ACE_InputCDR::read_longdouble_array (ACE_CDR::LongDouble* x, length); } +ACE_INLINE ACE_CDR::Boolean +ACE_InputCDR::read_int8_array (ACE_CDR::Int8 *x, ACE_CDR::ULong length) +{ + if (length * ACE_CDR::OCTET_SIZE > this->length ()) + { + this->good_bit_ = false; + return false; + } + + return read_array (x, ACE_CDR::OCTET_SIZE, ACE_CDR::OCTET_ALIGN, length); +} + +ACE_INLINE ACE_CDR::Boolean +ACE_InputCDR::read_uint8_array (ACE_CDR::UInt8 *x, ACE_CDR::ULong length) +{ + if (length * ACE_CDR::OCTET_SIZE > this->length ()) + { + this->good_bit_ = false; + return false; + } + + return read_array (x, ACE_CDR::OCTET_SIZE, ACE_CDR::OCTET_ALIGN, length); +} + ACE_INLINE ACE_CDR::Boolean ACE_InputCDR::skip_octet (void) { @@ -1373,6 +1457,20 @@ operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_wstring x) (ACE_CDR::Boolean) (os.good_bit () && (!x.bound_ || len <= x.bound_)); } +ACE_INLINE ACE_CDR::Boolean +operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_uint8 x) +{ + os.write_uint8 (x.val_); + return (ACE_CDR::Boolean) os.good_bit (); +} + +ACE_INLINE ACE_CDR::Boolean +operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_int8 x) +{ + os.write_int8 (x.val_); + return (ACE_CDR::Boolean) os.good_bit (); +} + // **************************************************************** ACE_INLINE ACE_CDR::Boolean @@ -1537,6 +1635,19 @@ operator>> (ACE_InputCDR &is, ACE_InputCDR::to_std_wstring x) || static_cast (x.val_.size ()) <= x.bound_)); } #endif + +ACE_INLINE ACE_CDR::Boolean +operator>> (ACE_InputCDR &is, ACE_InputCDR::to_uint8 x) +{ + return is.read_uint8 (x.ref_) && is.good_bit (); +} + +ACE_INLINE ACE_CDR::Boolean +operator>> (ACE_InputCDR &is, ACE_InputCDR::to_int8 x) +{ + return is.read_int8 (x.ref_) && is.good_bit (); +} + // *************************************************************************** // We must define these methods here because they use the "read_*" inlined // methods of the ACE_InputCDR class diff --git a/TAO/TAO_IDL/ast/ast_constant.cpp b/TAO/TAO_IDL/ast/ast_constant.cpp index f3a51add81e2a..e9d0eac2b40c8 100644 --- a/TAO/TAO_IDL/ast/ast_constant.cpp +++ b/TAO/TAO_IDL/ast/ast_constant.cpp @@ -77,51 +77,6 @@ trademarks or registered trademarks of Sun Microsystems, Inc. // Static functions. -// Convert a value from the enum AST_Expression::ExprType to a char *. -const char * -AST_Constant::exprtype_to_string (AST_Expression::ExprType et) -{ - switch (et) - { - case AST_Expression::EV_short: - return "Short"; - case AST_Expression::EV_ushort: - return "UShort"; - case AST_Expression::EV_long: - return "Long"; - case AST_Expression::EV_ulong: - return "ULong"; - case AST_Expression::EV_float: - return "Float"; - case AST_Expression::EV_double: - return "Double"; - case AST_Expression::EV_char: - return "Char"; - case AST_Expression::EV_octet: - return "Octet"; - case AST_Expression::EV_bool: - return "Boolean"; - case AST_Expression::EV_string: - return "Char*"; - case AST_Expression::EV_ulonglong: - return "ULongLong"; - case AST_Expression::EV_longlong: - return "LongLong"; - case AST_Expression::EV_wchar: - return "Wchar"; - case AST_Expression::EV_wstring: - return "Wchar*"; - case AST_Expression::EV_longdouble: - return "LongDouble"; - case AST_Expression::EV_fixed: - return "Fixed"; - default: - break; - } - - return 0; -} - AST_Decl::NodeType const AST_Constant::NT = AST_Decl::NT_const; @@ -182,7 +137,7 @@ void AST_Constant::dump (ACE_OSTREAM_TYPE &o) { this->dump_i (o, "const "); - this->dump_i (o, this->exprtype_to_string ()); + dump_i (o, AST_Expression::exprtype_to_string (pd_et)); this->dump_i (o, " "); this->local_name ()->dump (o); @@ -237,52 +192,6 @@ AST_Constant::ifr_added (bool val) this->ifr_added_ = val; } -const char * -AST_Constant::exprtype_to_string (void) -{ - switch (this->pd_et) - { - case AST_Expression::EV_short: - return "CORBA::Short"; - case AST_Expression::EV_ushort: - return "CORBA::UShort"; - case AST_Expression::EV_long: - return "CORBA::Long"; - case AST_Expression::EV_ulong: - return "CORBA::ULong"; - case AST_Expression::EV_float: - return "CORBA::Float"; - case AST_Expression::EV_double: - return "CORBA::Double"; - case AST_Expression::EV_char: - return "CORBA::Char"; - case AST_Expression::EV_octet: - return "CORBA::Octet"; - case AST_Expression::EV_bool: - return "CORBA::Boolean"; - case AST_Expression::EV_string: - return "char *const"; - case AST_Expression::EV_void: - return "void"; - case AST_Expression::EV_none: - return "none"; - case AST_Expression::EV_longlong: - return "CORBA::LongLong"; - case AST_Expression::EV_ulonglong: - return "CORBA::ULongLong"; - case AST_Expression::EV_wchar: - return "CORBA::WChar"; - case AST_Expression::EV_wstring: - return "CORBA::WChar *const"; - case AST_Expression::EV_fixed: - return "Fixed"; - default: - return 0; - } - - return 0; -} - UTL_ScopedName * AST_Constant::enum_full_name (void) { diff --git a/TAO/TAO_IDL/ast/ast_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp index c0303b60d21d8..0e819de9e51da 100644 --- a/TAO/TAO_IDL/ast/ast_expression.cpp +++ b/TAO/TAO_IDL/ast/ast_expression.cpp @@ -80,17 +80,51 @@ trademarks or registered trademarks of Sun Microsystems, Inc. #include "global_extern.h" #include "ace/ACE.h" - +#include "ace/OS_NS_stdio.h" // FUZZ: disable check_for_streams_include #include "ace/streams.h" +AST_Expression::ExprType +AST_Expression::eval_kind_to_expr_type (AST_Expression::EvalKind eval_kind) +{ + switch (eval_kind) + { + case EK_bool: + return EV_bool; + case EK_short: + return EV_short; + case EK_ushort: + return EV_ushort; + case EK_long: + return EV_long; + case EK_ulong: + return EV_ulong; + case EK_longlong: + return EV_longlong; + case EK_ulonglong: + return EV_ulonglong; + case EK_octet: + return EV_octet; + case EK_floating_point: + return EV_double; + case EK_fixed_point: + return EV_fixed; + case EK_int8: + return EV_int8; + case EK_uint8: + return EV_uint8; + default: + return EV_none; + } +} + // Helper function to fill out the details of where this expression // is defined. void AST_Expression::fill_definition_details (void) { this->pd_defined_in = idl_global->scopes ().depth () > 0 - ? idl_global->scopes().top () + ? idl_global->scopes ().top () : 0 ; this->pd_line = idl_global->lineno (); this->pd_file_name = idl_global->filename (); @@ -533,13 +567,16 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } + if (t == ev->et) + { + return ev; + } + switch (t) { case AST_Expression::EV_short: switch (ev->et) { - case AST_Expression::EV_short: - return ev; case AST_Expression::EV_ushort: if (ev->u.usval > (unsigned short) ACE_INT16_MAX) { @@ -628,6 +665,14 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.sval = (short) ev->u.oval; ev->et = AST_Expression::EV_short; return ev; + case AST_Expression::EV_int8: + ev->u.sval = (short) ev->u.int8val; + ev->et = t; + return ev; + case AST_Expression::EV_uint8: + ev->u.sval = (short) ev->u.uint8val; + ev->et = t; + return ev; default: return 0; } @@ -643,8 +688,6 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.usval = (unsigned short) ev->u.sval; ev->et = AST_Expression::EV_ushort; return ev; - case AST_Expression::EV_ushort: - return ev; case AST_Expression::EV_long: if (ev->u.lval > (long) ACE_UINT16_MAX || ev->u.lval < 0) @@ -724,6 +767,15 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.usval = (unsigned short) ev->u.oval; ev->et = AST_Expression::EV_ushort; return ev; + case AST_Expression::EV_int8: + if (ev->u.int8val < 0) return 0; + ev->u.usval = static_cast (ev->u.int8val); + ev->et = t; + return ev; + case AST_Expression::EV_uint8: + ev->u.usval = static_cast (ev->u.uint8val); + ev->et = t; + return ev; default: return 0; } @@ -738,8 +790,6 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.lval = (long) ev->u.usval; ev->et = AST_Expression::EV_long; return ev; - case AST_Expression::EV_long: - return ev; case AST_Expression::EV_ulong: if (ev->u.ulval > (unsigned long) ACE_INT32_MAX) { @@ -803,6 +853,14 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.lval = (long) ev->u.oval; ev->et = AST_Expression::EV_long; return ev; + case AST_Expression::EV_int8: + ev->u.lval = static_cast (ev->u.int8val); + ev->et = t; + return ev; + case AST_Expression::EV_uint8: + ev->u.lval = static_cast (ev->u.uint8val); + ev->et = t; + return ev; default: return 0; } @@ -831,8 +889,6 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.ulval = (unsigned long) ev->u.lval; ev->et = AST_Expression::EV_ulong; return ev; - case AST_Expression::EV_ulong: - return ev; case AST_Expression::EV_longlong: if (ev->u.llval > (ACE_CDR::LongLong) ACE_UINT32_MAX || ev->u.llval < 0) @@ -892,6 +948,15 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.ulval = (unsigned long) ev->u.oval; ev->et = AST_Expression::EV_ulong; return ev; + case AST_Expression::EV_int8: + if (ev->u.int8val < 0) return 0; + ev->u.ulval = static_cast (ev->u.int8val); + ev->et = t; + return ev; + case AST_Expression::EV_uint8: + ev->u.ulval = static_cast (ev->u.uint8val); + ev->et = t; + return ev; default: return 0; } @@ -914,8 +979,6 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.llval = (ACE_CDR::LongLong) ev->u.ulval; ev->et = AST_Expression::EV_longlong; return ev; - case AST_Expression::EV_longlong: - return ev; case AST_Expression::EV_ulonglong: if (ev->u.ullval > ACE_INT64_MAX) { @@ -962,6 +1025,14 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.llval = (ACE_CDR::LongLong) ev->u.oval; ev->et = AST_Expression::EV_longlong; return ev; + case AST_Expression::EV_int8: + ev->u.llval = static_cast (ev->u.int8val); + ev->et = t; + return ev; + case AST_Expression::EV_uint8: + ev->u.llval = static_cast (ev->u.int8val); + ev->et = t; + return ev; default: return 0; } @@ -1004,8 +1075,6 @@ coerce_value (AST_Expression::AST_ExprValue *ev, static_cast (ev->u.llval); ev->et = AST_Expression::EV_ulonglong; return ev; - case AST_Expression::EV_ulonglong: - return ev; case AST_Expression::EV_bool: ev->u.ullval = ev->u.bval; ev->et = AST_Expression::EV_ulonglong; @@ -1049,6 +1118,15 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.ullval = ev->u.oval; ev->et = AST_Expression::EV_ulonglong; return ev; + case AST_Expression::EV_int8: + if (ev->u.int8val < 0) return 0; + ev->u.ullval = static_cast (ev->u.int8val); + ev->et = t; + return ev; + case AST_Expression::EV_uint8: + ev->u.ullval = static_cast (ev->u.uint8val); + ev->et = t; + return ev; default: return 0; } @@ -1079,8 +1157,6 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.bval = (ev->u.ullval == 0) ? false : true; ev->et = AST_Expression::EV_bool; return ev; - case AST_Expression::EV_bool: - return ev; case AST_Expression::EV_float: ev->u.bval = ACE::is_equal (ev->u.fval, 0.0f) ? false : true; ev->et = AST_Expression::EV_bool; @@ -1101,6 +1177,14 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.bval = (ev->u.oval == 0) ? false : true; ev->et = AST_Expression::EV_bool; return ev; + case AST_Expression::EV_int8: + ev->u.bval = ev->u.int8val ? true : false; + ev->et = t; + return ev; + case AST_Expression::EV_uint8: + ev->u.bval = ev->u.uint8val ? true : false; + ev->et = t; + return ev; default: return 0; } @@ -1140,8 +1224,6 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.fval = (float) ((ev->u.bval == true) ? 1.0 : 0.0); ev->et = AST_Expression::EV_float; return ev; - case AST_Expression::EV_float: - return ev; case AST_Expression::EV_double: if (ev->u.dval > ACE_FLT_MAX || ev->u.dval < -(ACE_FLT_MAX)) @@ -1164,6 +1246,14 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.fval = (float) ev->u.oval; ev->et = AST_Expression::EV_float; return ev; + case AST_Expression::EV_int8: + ev->u.fval = static_cast (ev->u.int8val); + ev->et = t; + return ev; + case AST_Expression::EV_uint8: + ev->u.fval = static_cast (ev->u.uint8val); + ev->et = t; + return ev; default: return 0; } @@ -1209,8 +1299,6 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.dval = (double) ev->u.fval; ev->et = AST_Expression::EV_double; return ev; - case AST_Expression::EV_double: - return ev; case AST_Expression::EV_char: ev->u.dval = (double) ev->u.cval; ev->et = AST_Expression::EV_double; @@ -1223,9 +1311,18 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.dval = (double) ev->u.oval; ev->et = AST_Expression::EV_double; return ev; + case AST_Expression::EV_int8: + ev->u.dval = static_cast (ev->u.int8val); + ev->et = t; + return ev; + case AST_Expression::EV_uint8: + ev->u.dval = static_cast (ev->u.uint8val); + ev->et = t; + return ev; default: return 0; } + case AST_Expression::EV_int8: case AST_Expression::EV_char: switch (ev->et) { @@ -1237,7 +1334,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.cval = (char) ev->u.sval; - ev->et = AST_Expression::EV_char; + ev->et = t; return ev; case AST_Expression::EV_ushort: if (ev->u.usval > (unsigned short) ACE_CHAR_MAX) @@ -1246,7 +1343,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.cval = (char) ev->u.usval; - ev->et = AST_Expression::EV_char; + ev->et = t; return ev; case AST_Expression::EV_long: if (ev->u.lval > (long) ACE_CHAR_MAX @@ -1256,7 +1353,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.cval = (char) ev->u.lval; - ev->et = AST_Expression::EV_char; + ev->et = t; return ev; case AST_Expression::EV_ulong: if (ev->u.ulval > (unsigned long) ACE_CHAR_MAX) @@ -1265,7 +1362,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.cval = (char) ev->u.ulval; - ev->et = AST_Expression::EV_char; + ev->et = t; return ev; case AST_Expression::EV_longlong: if (ev->u.llval > (ACE_CDR::LongLong) ACE_CHAR_MAX @@ -1275,7 +1372,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.cval = (char) ev->u.llval; - ev->et = AST_Expression::EV_char; + ev->et = t; return ev; case AST_Expression::EV_ulonglong: if (( ev->u.ullval & ACE_CHAR_MAX) != ev->u.ullval) @@ -1284,11 +1381,11 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.cval = (char) ev->u.ullval; - ev->et = AST_Expression::EV_char; + ev->et = t; return ev; case AST_Expression::EV_bool: ev->u.cval = (char) ev->u.bval; - ev->et = AST_Expression::EV_char; + ev->et = t; return ev; case AST_Expression::EV_float: if (ev->u.fval > (float) ACE_CHAR_MAX @@ -1298,7 +1395,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.cval = (char) ev->u.fval; - ev->et = AST_Expression::EV_char; + ev->et = t; return ev; case AST_Expression::EV_double: if (ev->u.dval > (double) ACE_CHAR_MAX @@ -1308,9 +1405,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.cval = (char) ev->u.dval; - ev->et = AST_Expression::EV_char; - return ev; - case AST_Expression::EV_char: + ev->et = t; return ev; case AST_Expression::EV_wchar: if (ev->u.wcval > (ACE_CDR::WChar) ACE_CHAR_MAX) @@ -1319,8 +1414,9 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.cval = (char) ev->u.wcval; - ev->et = AST_Expression::EV_char; + ev->et = t; return ev; + case AST_Expression::EV_uint8: case AST_Expression::EV_octet: if (ev->u.oval > (unsigned char) ACE_CHAR_MAX) { @@ -1328,7 +1424,12 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.cval = (char) ev->u.oval; - ev->et = AST_Expression::EV_char; + ev->et = t; + return ev; + case AST_Expression::EV_int8: + case AST_Expression::EV_char: + ev->u.cval = static_cast (ev->u.int8val); + ev->et = t; return ev; default: return 0; @@ -1420,15 +1521,22 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.wcval = (ACE_CDR::WChar) ev->u.cval; ev->et = AST_Expression::EV_wchar; return ev; - case AST_Expression::EV_wchar: - return ev; case AST_Expression::EV_octet: ev->u.wcval = (ACE_CDR::WChar) ev->u.oval; ev->et = AST_Expression::EV_wchar; return ev; + case AST_Expression::EV_int8: + ev->u.wcval = static_cast (ev->u.int8val); + ev->et = t; + return ev; + case AST_Expression::EV_uint8: + ev->u.wcval = static_cast (ev->u.uint8val); + ev->et = t; + return ev; default: return 0; } + case AST_Expression::EV_uint8: case AST_Expression::EV_octet: switch (ev->et) { @@ -1440,7 +1548,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.oval = (unsigned char) ev->u.sval; - ev->et = AST_Expression::EV_octet; + ev->et = t; return ev; case AST_Expression::EV_ushort: if (ev->u.usval > (unsigned short) ACE_OCTET_MAX) @@ -1449,7 +1557,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.oval = (unsigned char) ev->u.usval; - ev->et = AST_Expression::EV_octet; + ev->et = t; return ev; case AST_Expression::EV_long: if (ev->u.lval < 0 @@ -1459,7 +1567,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.oval = (unsigned char) ev->u.lval; - ev->et = AST_Expression::EV_octet; + ev->et = t; return ev; case AST_Expression::EV_ulong: if (ev->u.ulval > (unsigned long) ACE_OCTET_MAX) @@ -1468,7 +1576,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.oval = (unsigned char) ev->u.ulval; - ev->et = AST_Expression::EV_octet; + ev->et = t; return ev; case AST_Expression::EV_longlong: if (ev->u.llval < 0 @@ -1478,7 +1586,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.oval = (unsigned char) ev->u.llval; - ev->et = AST_Expression::EV_octet; + ev->et = t; return ev; case AST_Expression::EV_ulonglong: if ((ev->u.ullval & ACE_OCTET_MAX) != ev->u.ullval) @@ -1487,11 +1595,11 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.oval = (unsigned char) ev->u.ullval; - ev->et = AST_Expression::EV_octet; + ev->et = t; return ev; case AST_Expression::EV_bool: ev->u.oval = (unsigned char) ((ev->u.bval == false) ? 1 : 0); - ev->et = AST_Expression::EV_octet; + ev->et = t; return ev; case AST_Expression::EV_float: if (ev->u.fval < 0.0 @@ -1501,7 +1609,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.oval = (unsigned char) ev->u.fval; - ev->et = AST_Expression::EV_octet; + ev->et = t; return ev; case AST_Expression::EV_double: if (ev->u.dval < 0.0 @@ -1511,8 +1619,9 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.oval = (unsigned char) ev->u.dval; - ev->et = AST_Expression::EV_octet; + ev->et = t; return ev; + case AST_Expression::EV_int8: case AST_Expression::EV_char: if ((signed char) ev->u.cval < 0) { @@ -1520,7 +1629,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.oval = (unsigned char) ev->u.cval; - ev->et = AST_Expression::EV_octet; + ev->et = t; return ev; case AST_Expression::EV_wchar: if (ev->u.wcval > (ACE_CDR::WChar) ACE_OCTET_MAX) @@ -1529,9 +1638,12 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.oval = (unsigned char) ev->u.wcval; - ev->et = AST_Expression::EV_octet; + ev->et = t; return ev; + case AST_Expression::EV_uint8: case AST_Expression::EV_octet: + ev->u.oval = ev->u.oval; + ev->et = t; return ev; default: return 0; @@ -1539,38 +1651,11 @@ coerce_value (AST_Expression::AST_ExprValue *ev, case AST_Expression::EV_enum: switch (ev->et) { - case AST_Expression::EV_enum: case AST_Expression::EV_ulong: return ev; default: return 0; } - case AST_Expression::EV_void: - switch (ev->et) - { - case AST_Expression::EV_void: - return ev; - default: - return 0; - } - case AST_Expression::EV_none: - return 0; - case AST_Expression::EV_string: - switch (ev->et) - { - case AST_Expression::EV_string: - return ev; - default: - return 0; - } - case AST_Expression::EV_fixed: - switch (ev->et) - { - case AST_Expression::EV_fixed: - return ev; - default: - return 0; - } default: return 0; } @@ -1594,6 +1679,8 @@ incompatible_types (AST_Expression::ExprType t1, case AST_Expression::EV_ulonglong: case AST_Expression::EV_octet: case AST_Expression::EV_bool: + case AST_Expression::EV_int8: + case AST_Expression::EV_uint8: switch (t2) { case AST_Expression::EV_short: @@ -1604,9 +1691,11 @@ incompatible_types (AST_Expression::ExprType t1, case AST_Expression::EV_ulonglong: case AST_Expression::EV_octet: case AST_Expression::EV_bool: - return 0; + case AST_Expression::EV_int8: + case AST_Expression::EV_uint8: + return false; default: - return 1; + return true; } case AST_Expression::EV_float: case AST_Expression::EV_double: @@ -1616,23 +1705,14 @@ incompatible_types (AST_Expression::ExprType t1, case AST_Expression::EV_float: case AST_Expression::EV_double: case AST_Expression::EV_longdouble: - return 0; + return false; default: - return 1; + return true; } case AST_Expression::EV_fixed: return t2 != AST_Expression::EV_fixed; - case AST_Expression::EV_char: - case AST_Expression::EV_wchar: - case AST_Expression::EV_string: - case AST_Expression::EV_wstring: - case AST_Expression::EV_enum: - case AST_Expression::EV_any: - case AST_Expression::EV_object: - case AST_Expression::EV_void: - case AST_Expression::EV_none: default: - return 0; + return false; } } @@ -1695,6 +1775,12 @@ eval_kind (AST_Expression::AST_ExprValue *ev, AST_Expression::EvalKind ek) case AST_Expression::EK_fixed_point: retval = coerce_value (newval, AST_Expression::EV_fixed); break; + case AST_Expression::EK_int8: + retval = coerce_value (newval, AST_Expression::EV_int8); + break; + case AST_Expression::EK_uint8: + retval = coerce_value (newval, AST_Expression::EV_uint8); + break; default: break; } @@ -1725,6 +1811,44 @@ eval_kind (AST_Expression::AST_ExprValue *ev, AST_Expression::EvalKind ek) // Apply binary operators to an AST_Expression after evaluating // its sub-expressions. // Operations supported: '+', '-', '*', '/' +template +bool +do_eval_bin_op (AST_Expression::ExprComb op, Type a, Type b, Type &result) +{ + switch (op) + { + case AST_Expression::EC_add: + result = a + b; + break; + case AST_Expression::EC_minus: + result = a - b; + break; + case AST_Expression::EC_mul: + result = a * b; + break; + case AST_Expression::EC_div: + if (!b) return false; + result = a / b; + break; + default: + return false; + } + + return true; +} + +template +bool +do_eval_bin_op_float (AST_Expression::ExprComb op, Type a, Type b, Type &result) +{ + if (op == AST_Expression::EC_div) + { + result = a / b; + return true; + } + return do_eval_bin_op (op, a, b, result); +} + AST_Expression::AST_ExprValue * AST_Expression::eval_bin_op (AST_Expression::EvalKind ek) { @@ -1743,161 +1867,88 @@ AST_Expression::eval_bin_op (AST_Expression::EvalKind ek) return 0; } + ExprType const expr_type = eval_kind_to_expr_type (ek); + if (expr_type == EV_none) return 0; + ACE_NEW_RETURN (retval, AST_ExprValue, 0); - if (ek == EK_ulonglong) + pd_v1->set_ev (pd_v1->coerce (expr_type)); + pd_v2->set_ev (pd_v2->coerce (expr_type)); + retval->et = expr_type; + + bool success = false; + switch (expr_type) { - this->pd_v1->set_ev (this->pd_v1->coerce (EV_ulonglong)); - this->pd_v2->set_ev (this->pd_v2->coerce (EV_ulonglong)); - retval->et = EV_ulonglong; + case EV_int8: + success = do_eval_bin_op (pd_ec, + pd_v1->ev ()->u.int8val, pd_v2->ev ()->u.int8val, retval->u.int8val); + break; - switch (this->pd_ec) - { - case EC_add: - retval->u.ullval = - this->pd_v1->ev ()->u.ullval + this->pd_v2->ev ()->u.ullval; - break; - case EC_minus: - retval->u.ullval = - this->pd_v1->ev ()->u.ullval - this->pd_v2->ev ()->u.ullval; - break; - case EC_mul: - retval->u.ullval = - this->pd_v1->ev ()->u.ullval * this->pd_v2->ev ()->u.ullval; - break; - case EC_div: - if (this->pd_v2->ev ()->u.ullval == 0) - { - delete retval; - retval = 0; - return 0; - } + case EV_uint8: + success = do_eval_bin_op (pd_ec, + pd_v1->ev ()->u.uint8val, pd_v2->ev ()->u.uint8val, retval->u.uint8val); + break; - retval->u.ullval = - this->pd_v1->ev ()->u.ullval / this->pd_v2->ev ()->u.ullval; - break; - default: - delete retval; - retval = 0; - return 0; - } - } - else if (ek == EK_longlong) - { - this->pd_v1->set_ev (this->pd_v1->coerce (EV_longlong)); - this->pd_v2->set_ev (this->pd_v2->coerce (EV_longlong)); - retval->et = EV_longlong; + case EV_short: + success = do_eval_bin_op (pd_ec, + pd_v1->ev ()->u.sval, pd_v2->ev ()->u.sval, retval->u.sval); + break; - switch (this->pd_ec) - { - case EC_add: - retval->u.llval = - this->pd_v1->ev ()->u.llval + this->pd_v2->ev ()->u.llval; - break; - case EC_minus: - retval->u.llval = - this->pd_v1->ev ()->u.llval - this->pd_v2->ev ()->u.llval; - break; - case EC_mul: - retval->u.llval = - this->pd_v1->ev ()->u.llval * this->pd_v2->ev ()->u.llval; - break; - case EC_div: - if (this->pd_v2->ev ()->u.llval == 0) - { - delete retval; - retval = 0; - return 0; - } + case EV_ushort: + success = do_eval_bin_op (pd_ec, + pd_v1->ev ()->u.usval, pd_v2->ev ()->u.usval, retval->u.usval); + break; - retval->u.llval = - this->pd_v1->ev ()->u.llval / this->pd_v2->ev ()->u.llval; - break; - default: - delete retval; - retval = 0; - return 0; - } - } - else if (ek == EK_fixed_point) - { - this->pd_v1->set_ev (this->pd_v1->coerce (EV_fixed)); - this->pd_v2->set_ev (this->pd_v2->coerce (EV_fixed)); - retval->et = EV_fixed; + case EV_long: + success = do_eval_bin_op (pd_ec, + pd_v1->ev ()->u.lval, pd_v2->ev ()->u.lval, retval->u.lval); + break; - switch (this->pd_ec) - { - case EC_add: - retval->u.fixedval = - this->pd_v1->ev ()->u.fixedval + this->pd_v2->ev ()->u.fixedval; - break; - case EC_minus: - retval->u.fixedval = - this->pd_v1->ev ()->u.fixedval - this->pd_v2->ev ()->u.fixedval; - break; - case EC_mul: - retval->u.fixedval = - this->pd_v1->ev ()->u.fixedval * this->pd_v2->ev ()->u.fixedval; - break; - case EC_div: - if (!this->pd_v2->ev ()->u.fixedval) - { - delete retval; - retval = 0; - return 0; - } + case EV_ulong: + success = do_eval_bin_op (pd_ec, + pd_v1->ev ()->u.ulval, pd_v2->ev ()->u.ulval, retval->u.ulval); + break; - retval->u.fixedval = - this->pd_v1->ev ()->u.fixedval / this->pd_v2->ev ()->u.fixedval; - break; - default: - delete retval; - retval = 0; - return 0; - } - } - else - { - this->pd_v1->set_ev (this->pd_v1->coerce (EV_double)); - this->pd_v2->set_ev (this->pd_v2->coerce (EV_double)); - retval->et = EV_double; + case EV_longlong: + success = do_eval_bin_op (pd_ec, + pd_v1->ev ()->u.llval, pd_v2->ev ()->u.llval, retval->u.llval); + break; - switch (this->pd_ec) - { - case EC_add: - retval->u.dval = - this->pd_v1->ev ()->u.dval + this->pd_v2->ev ()->u.dval; - break; - case EC_minus: - retval->u.dval = - this->pd_v1->ev ()->u.dval - this->pd_v2->ev ()->u.dval; - break; - case EC_mul: - retval->u.dval = - this->pd_v1->ev ()->u.dval * this->pd_v2->ev ()->u.dval; - break; - case EC_div: - if (ACE::is_equal (this->pd_v2->ev ()->u.dval, 0.0)) - { - delete retval; - retval = 0; - return 0; - } + case EV_ulonglong: + success = do_eval_bin_op (pd_ec, + pd_v1->ev ()->u.ullval, pd_v2->ev ()->u.ullval, retval->u.ullval); + break; - retval->u.dval = - this->pd_v1->ev ()->u.dval / this->pd_v2->ev ()->u.dval; - break; - default: - delete retval; - retval = 0; - return 0; - } + case EV_octet: + success = do_eval_bin_op (pd_ec, + pd_v1->ev ()->u.oval, pd_v2->ev ()->u.oval, retval->u.oval); + break; + + case EV_double: + success = do_eval_bin_op_float (pd_ec, + pd_v1->ev ()->u.dval, pd_v2->ev ()->u.dval, retval->u.dval); + break; + + case EV_fixed: + success = do_eval_bin_op (pd_ec, + pd_v1->ev ()->u.fixedval, pd_v2->ev ()->u.fixedval, retval->u.fixedval); + break; + + default: + success = true; + } + + if (!success) + { + delete retval; + retval = 0; } return retval; } + // Apply binary operators to an AST_Expression after evaluating // its sub-expressions. // Operations supported: '%' @@ -1955,8 +2006,7 @@ AST_Expression::eval_mod_op (AST_Expression::EvalKind ek) retval->u.llval = this->pd_v1->ev ()->u.llval % this->pd_v2->ev ()->u.llval; } - else - if (ek == EK_ulong) + else if (ek == EK_ulong) { this->pd_v1->set_ev (this->pd_v1->coerce (EV_ulong)); this->pd_v2->set_ev (this->pd_v2->coerce (EV_ulong)); @@ -2001,6 +2051,48 @@ AST_Expression::eval_mod_op (AST_Expression::EvalKind ek) // Apply bitwise operations to an AST_Expression after evaluating // its sub-expressions. // Operations supported: '%', '|', '&', '^', '<<', '>>' + +template +bool +do_eval_bit_op_no_shift (AST_Expression::ExprComb op, Type a, Type b, Type &result) +{ + switch (op) + { + case AST_Expression::EC_or: + result = a | b; + break; + case AST_Expression::EC_xor: + result = a ^ b; + break; + case AST_Expression::EC_and: + result = a & b; + break; + default: + return false; + } + + return true; +} + +template +bool +do_eval_bit_op (AST_Expression::ExprComb op, Type a, Type b, Type &result) +{ + switch (op) + { + case AST_Expression::EC_left: + result = a << b; + break; + case AST_Expression::EC_right: + result = a >> b; + break; + default: + return do_eval_bit_op_no_shift (op, a, b, result); + } + + return true; +} + AST_Expression::AST_ExprValue * AST_Expression::eval_bit_op (AST_Expression::EvalKind ek) { @@ -2019,315 +2111,80 @@ AST_Expression::eval_bit_op (AST_Expression::EvalKind ek) return 0; } + ExprType const expr_type = eval_kind_to_expr_type (ek); + if (expr_type == EV_none) return 0; + ACE_NEW_RETURN (retval, AST_ExprValue, 0); - switch (ek) - { - case EK_ulonglong: - { - this->pd_v1->set_ev (this->pd_v1->coerce (EV_ulonglong)); - this->pd_v2->set_ev (this->pd_v2->coerce (EV_ulonglong)); - retval->et = EV_ulonglong; + pd_v1->set_ev (pd_v1->coerce (expr_type)); + pd_v2->set_ev (pd_v2->coerce (expr_type)); + retval->et = expr_type; - switch (this->pd_ec) - { - case EC_or: - retval->u.ullval = - this->pd_v1->ev ()->u.ullval | this->pd_v2->ev ()->u.ullval; - break; - case EC_xor: - retval->u.ullval = - this->pd_v1->ev ()->u.ullval ^ this->pd_v2->ev ()->u.ullval; - break; - case EC_and: - retval->u.ullval = - this->pd_v1->ev ()->u.ullval & this->pd_v2->ev ()->u.ullval; - break; - case EC_left: - retval->u.ullval = - this->pd_v1->ev ()->u.ullval << this->pd_v2->ev ()->u.ullval; - break; - case EC_right: - retval->u.ullval = - this->pd_v1->ev ()->u.ullval >> this->pd_v2->ev ()->u.ullval; - break; - default: - delete retval; - retval = 0; - return 0; - } - } - - break; - case EK_longlong: - { - this->pd_v1->set_ev (this->pd_v1->coerce (EV_longlong)); - this->pd_v2->set_ev (this->pd_v2->coerce (EV_longlong)); - retval->et = EV_longlong; - - switch (this->pd_ec) - { - case EC_or: - retval->u.llval = - this->pd_v1->ev ()->u.llval | this->pd_v2->ev ()->u.llval; - break; - case EC_xor: - retval->u.llval = - this->pd_v1->ev ()->u.llval ^ this->pd_v2->ev ()->u.llval; - break; - case EC_and: - retval->u.llval = - this->pd_v1->ev ()->u.llval & this->pd_v2->ev ()->u.llval; - break; - case EC_left: - retval->u.llval = - this->pd_v1->ev ()->u.llval << this->pd_v2->ev ()->u.llval; - break; - case EC_right: - retval->u.llval = - this->pd_v1->ev ()->u.llval >> this->pd_v2->ev ()->u.llval; - break; - default: - delete retval; - retval = 0; - return 0; - } - } + bool success = true; + switch (expr_type) + { + case EV_int8: + success = do_eval_bit_op (pd_ec, + pd_v1->ev ()->u.int8val, pd_v2->ev ()->u.int8val, retval->u.int8val); + break; - break; - case EK_ulong: - { - this->pd_v1->set_ev (this->pd_v1->coerce (EV_ulong)); - this->pd_v2->set_ev (this->pd_v2->coerce (EV_ulong)); - retval->et = EV_ulong; + case EV_uint8: + success = do_eval_bit_op (pd_ec, + pd_v1->ev ()->u.uint8val, pd_v2->ev ()->u.uint8val, retval->u.uint8val); + break; - switch (this->pd_ec) - { - case EC_or: - retval->u.ulval = - this->pd_v1->ev ()->u.ulval | this->pd_v2->ev ()->u.ulval; - break; - case EC_xor: - retval->u.ulval = - this->pd_v1->ev ()->u.ulval ^ this->pd_v2->ev ()->u.ulval; - break; - case EC_and: - retval->u.ulval = - this->pd_v1->ev ()->u.ulval & this->pd_v2->ev ()->u.ulval; - break; - case EC_left: - retval->u.ulval = - this->pd_v1->ev ()->u.ulval << this->pd_v2->ev ()->u.ulval; - break; - case EC_right: - retval->u.ulval = - this->pd_v1->ev ()->u.ulval >> this->pd_v2->ev ()->u.ulval; - break; - default: - delete retval; - retval = 0; - return 0; - } - } + case EV_short: + success = do_eval_bit_op (pd_ec, + pd_v1->ev ()->u.sval, pd_v2->ev ()->u.sval, retval->u.sval); + break; - break; - case EK_long: - { - this->pd_v1->set_ev (this->pd_v1->coerce (EV_long)); - this->pd_v2->set_ev (this->pd_v2->coerce (EV_long)); - retval->et = EV_long; + case EV_ushort: + success = do_eval_bit_op (pd_ec, + pd_v1->ev ()->u.usval, pd_v2->ev ()->u.usval, retval->u.usval); + break; - switch (this->pd_ec) - { - case EC_or: - retval->u.lval = - this->pd_v1->ev ()->u.lval | this->pd_v2->ev ()->u.lval; - break; - case EC_xor: - retval->u.lval = - this->pd_v1->ev ()->u.lval ^ this->pd_v2->ev ()->u.lval; - break; - case EC_and: - retval->u.lval = - this->pd_v1->ev ()->u.lval & this->pd_v2->ev ()->u.lval; - break; - case EC_left: - retval->u.lval = - this->pd_v1->ev ()->u.lval << this->pd_v2->ev ()->u.lval; - break; - case EC_right: - retval->u.lval = - this->pd_v1->ev ()->u.lval >> this->pd_v2->ev ()->u.lval; - break; - default: - delete retval; - retval = 0; - return 0; - } - } + case EV_long: + success = do_eval_bit_op (pd_ec, + pd_v1->ev ()->u.lval, pd_v2->ev ()->u.lval, retval->u.lval); + break; - break; - case EK_ushort: - { - this->pd_v1->set_ev (this->pd_v1->coerce (EV_ushort)); - this->pd_v2->set_ev (this->pd_v2->coerce (EV_ushort)); - retval->et = EV_ushort; + case EV_ulong: + success = do_eval_bit_op (pd_ec, + pd_v1->ev ()->u.ulval, pd_v2->ev ()->u.ulval, retval->u.ulval); + break; - switch (this->pd_ec) - { - case EC_or: - retval->u.usval = - this->pd_v1->ev ()->u.usval | this->pd_v2->ev ()->u.usval; - break; - case EC_xor: - retval->u.usval = - this->pd_v1->ev ()->u.usval ^ this->pd_v2->ev ()->u.usval; - break; - case EC_and: - retval->u.usval = - this->pd_v1->ev ()->u.usval & this->pd_v2->ev ()->u.usval; - break; - case EC_left: - retval->u.usval = - this->pd_v1->ev ()->u.usval << this->pd_v2->ev ()->u.usval; - break; - case EC_right: - retval->u.usval = - this->pd_v1->ev ()->u.usval >> this->pd_v2->ev ()->u.usval; - break; - default: - delete retval; - retval = 0; - return 0; - } - } + case EV_longlong: + success = do_eval_bit_op (pd_ec, + pd_v1->ev ()->u.llval, pd_v2->ev ()->u.llval, retval->u.llval); + break; - break; - case EK_short: - { - this->pd_v1->set_ev (this->pd_v1->coerce (EV_short)); - this->pd_v2->set_ev (this->pd_v2->coerce (EV_short)); - retval->et = EV_short; + case EV_ulonglong: + success = do_eval_bit_op (pd_ec, + pd_v1->ev ()->u.ullval, pd_v2->ev ()->u.ullval, retval->u.ullval); + break; - switch (this->pd_ec) - { - case EC_or: - retval->u.sval = - this->pd_v1->ev ()->u.sval | this->pd_v2->ev ()->u.sval; - break; - case EC_xor: - retval->u.sval = - this->pd_v1->ev ()->u.sval ^ this->pd_v2->ev ()->u.sval; - break; - case EC_and: - retval->u.sval = - this->pd_v1->ev ()->u.sval & this->pd_v2->ev ()->u.sval; - break; - case EC_left: - retval->u.sval = - this->pd_v1->ev ()->u.sval << this->pd_v2->ev ()->u.sval; - break; - case EC_right: - retval->u.sval = - this->pd_v1->ev ()->u.sval >> this->pd_v2->ev ()->u.sval; - break; - default: - delete retval; - retval = 0; - return 0; - } - } + case EV_octet: + success = do_eval_bit_op (pd_ec, + pd_v1->ev ()->u.oval, pd_v2->ev ()->u.oval, retval->u.oval); + break; - break; - case EK_bool: - { - this->pd_v1->set_ev (this->pd_v1->coerce (EV_bool)); - this->pd_v2->set_ev (this->pd_v2->coerce (EV_bool)); - retval->et = EV_bool; + case EV_bool: + success = do_eval_bit_op_no_shift (pd_ec, + pd_v1->ev ()->u.bval, pd_v2->ev ()->u.bval, retval->u.bval); + break; - switch (this->pd_ec) - { - case EC_or: - retval->u.bval = - this->pd_v1->ev ()->u.bval | this->pd_v2->ev ()->u.bval; - break; - case EC_xor: - retval->u.bval = - this->pd_v1->ev ()->u.bval ^ this->pd_v2->ev ()->u.bval; - break; - case EC_and: - retval->u.bval = - this->pd_v1->ev ()->u.bval & this->pd_v2->ev ()->u.bval; - break; - case EC_left: - retval->u.bval = - this->pd_v1->ev ()->u.ulval << this->pd_v2->ev ()->u.ulval; - break; - case EC_right: - retval->u.bval = - this->pd_v1->ev ()->u.ulval >> this->pd_v2->ev ()->u.ulval; - break; - default: - delete retval; - retval = 0; - return 0; - } - } + default: + success = true; + } - break; - case EK_octet: + if (!success) { - this->pd_v1->set_ev (this->pd_v1->coerce (EV_octet)); - this->pd_v2->set_ev (this->pd_v2->coerce (EV_octet)); - retval->et = EV_octet; - - switch (this->pd_ec) - { - case EC_or: - retval->u.oval = - this->pd_v1->ev ()->u.oval | this->pd_v2->ev ()->u.oval; - break; - case EC_xor: - retval->u.oval = - this->pd_v1->ev ()->u.oval ^ this->pd_v2->ev ()->u.oval; - break; - case EC_and: - retval->u.oval = - this->pd_v1->ev ()->u.oval & this->pd_v2->ev ()->u.oval; - break; - case EC_left: - { - // This is the only bitwise operation that can cause overflow - // even if both operands are in range, so we set the ExprType - // to a large type and then check for overflow. - retval->u.ulval = - this->pd_v1->ev ()->u.ulval << this->pd_v2->ev ()->u.ulval; - AST_Expression test (retval->u.ulval, EV_ulong); - AST_ExprValue *ev = test.coerce (EV_octet); - delete retval; - retval = ev; - break; - } - case EC_right: - retval->u.oval = - this->pd_v1->ev ()->u.oval >> this->pd_v2->ev ()->u.oval; - break; - default: - delete retval; - retval = 0; - return 0; - } + delete retval; + retval = 0; } - break; - default: - delete retval; - retval = 0; - return 0; - } - return retval; } @@ -2417,38 +2274,38 @@ AST_Expression::eval_un_op (AST_Expression::EvalKind ek) switch (this->pd_v1->ev ()->et) { case EV_short: - retval->et = EV_short; retval->u.sval = ~this->pd_v1->ev ()->u.sval; break; case EV_ushort: - retval->et = EV_ushort; retval->u.usval = ~this->pd_v1->ev ()->u.usval; break; case EV_long: - retval->et = EV_long; retval->u.lval = ~this->pd_v1->ev ()->u.lval; break; case EV_ulong: - retval->et = EV_ulong; retval->u.ulval = ~this->pd_v1->ev ()->u.ulval; break; case EV_longlong: - retval->et = EV_longlong; retval->u.llval = ~this->pd_v1->ev ()->u.llval; break; case EV_ulonglong: - retval->et = EV_ulonglong; retval->u.ullval = ~this->pd_v1->ev ()->u.ullval; break; case EV_octet: - retval->et = EV_octet; retval->u.oval = ~this->pd_v1->ev ()->u.oval; break; + case AST_Expression::EV_int8: + retval->u.int8val = ~pd_v1->ev ()->u.int8val; + break; + case AST_Expression::EV_uint8: + retval->u.uint8val = ~pd_v1->ev ()->u.uint8val; + break; default: delete retval; retval = 0; return 0; } + retval->et = pd_v1->ev ()->et; break; default: @@ -2465,14 +2322,14 @@ AST_Expression::eval_un_op (AST_Expression::EvalKind ek) AST_Expression::AST_ExprValue * AST_Expression::eval_symbol (AST_Expression::EvalKind ek) { - UTL_Scope *s = 0; + UTL_Scope *s = 0; AST_Decl *d = 0; AST_Constant *c = 0; // Is there a symbol stored? if (this->pd_n == 0) { - idl_global->err ()->eval_error (this); + idl_global->err ()->eval_error (this); return 0; } @@ -2613,6 +2470,12 @@ AST_Expression::coerce (AST_Expression::ExprType t) // If already evaluated, return the result. switch (t) { + case EV_int8: + tmp = this->eval_internal (EK_int8); + break; + case EV_uint8: + tmp = this->eval_internal (EK_uint8); + break; case EV_short: tmp = this->eval_internal (EK_short); break; @@ -2719,6 +2582,12 @@ AST_Expression::coerce (AST_Expression::ExprType t) case EV_fixed: copy->u.fixedval = this->pd_ev->u.fixedval; break; + case EV_int8: + copy->u.int8val = this->pd_ev->u.int8val; + break; + case EV_uint8: + copy->u.uint8val = this->pd_ev->u.uint8val; + break; default: break; } @@ -2818,6 +2687,12 @@ AST_Expression::evaluate (EvalKind ek) // Expression equality comparison operator. bool AST_Expression::operator== (AST_Expression *vc) +{ + return compare (vc); +} + +bool +AST_Expression::compare (AST_Expression *vc) { if (this->pd_ec != vc->ec ()) { @@ -2827,7 +2702,7 @@ AST_Expression::operator== (AST_Expression *vc) this->evaluate (EK_const); vc->evaluate (EK_const); - if (pd_ev == 0 || vc->ev() == 0) + if (pd_ev == 0 || vc->ev () == 0) { return false; } @@ -2846,7 +2721,7 @@ AST_Expression::operator== (AST_Expression *vc) case EV_long: return this->pd_ev->u.lval == vc->ev ()->u.lval; case EV_ulong: - return this->pd_ev->u.ulval == vc->ev()->u.ulval; + return this->pd_ev->u.ulval == vc->ev ()->u.ulval; case EV_float: return ACE::is_equal (this->pd_ev->u.fval, vc->ev ()->u.fval); case EV_double: @@ -2872,91 +2747,13 @@ AST_Expression::operator== (AST_Expression *vc) return pd_ev->u.fixedval == vc->ev ()->u.fixedval; case EV_enum: return pd_ev->u.eval == vc->ev ()->u.eval; - case EV_longdouble: - case EV_void: - case EV_none: - case EV_any: - case EV_object: - return false; - } - - return false; -} - -long -AST_Expression::compare (AST_Expression *vc) -{ - if (this->pd_ec != vc->ec ()) - { - return false; - } - - this->evaluate (EK_const); - vc->evaluate (EK_const); - - if (this->pd_ev == 0 || vc->ev () == 0) - { - return false; - } - - if (this->pd_ev->et != vc->ev ()->et) - { - return false; - } - - switch (this->pd_ev->et) - { - case EV_short: - return this->pd_ev->u.sval == vc->ev ()->u.sval; - case EV_ushort: - return this->pd_ev->u.usval == vc->ev ()->u.usval; - case EV_long: - return this->pd_ev->u.lval == vc->ev ()->u.lval; - case EV_ulong: - return this->pd_ev->u.ulval == vc->ev ()->u.ulval; - case EV_float: - return ACE::is_equal (this->pd_ev->u.fval, vc->ev ()->u.fval); - case EV_double: - return ACE::is_equal (this->pd_ev->u.dval, vc->ev ()->u.dval); - case EV_char: - return this->pd_ev->u.cval == vc->ev ()->u.cval; - case EV_wchar: - return this->pd_ev->u.wcval == vc->ev ()->u.wcval; - case EV_octet: - return this->pd_ev->u.oval == vc->ev ()->u.oval; - case EV_bool: - return this->pd_ev->u.lval == vc->ev ()->u.lval; - case EV_string: - if (this->pd_ev->u.strval == 0) - { - return vc->ev ()->u.strval == 0; - } - else if (vc->ev ()->u.strval == 0) - { - return false; - } - else - { - return this->pd_ev->u.strval == vc->ev ()->u.strval; - } - - case EV_longlong: - return this->pd_ev->u.llval == vc->ev ()->u.llval; - case EV_ulonglong: - return this->pd_ev->u.ullval == vc->ev ()->u.ullval; - case EV_fixed: - return this->pd_ev->u.fixedval == vc->ev ()->u.fixedval; - case EV_longdouble: - case EV_wstring: - case EV_enum: - case EV_void: - case EV_none: - case EV_any: - case EV_object: + case EV_int8: + return pd_ev->u.int8val == vc->ev ()->u.int8val; + case EV_uint8: + return pd_ev->u.uint8val == vc->ev ()->u.uint8val; + default: return false; } - - return false; } AST_Decl * @@ -3019,6 +2816,7 @@ dump_expr_val (ACE_OSTREAM_TYPE &o, AST_Expression::AST_ExprValue *ev) o << ev->u.lval; break; case AST_Expression::EV_ulong: + case AST_Expression::EV_enum: o << ev->u.ulval; break; case AST_Expression::EV_float: @@ -3034,7 +2832,12 @@ dump_expr_val (ACE_OSTREAM_TYPE &o, AST_Expression::AST_ExprValue *ev) o << ev->u.wcval; break; case AST_Expression::EV_octet: - o << static_cast (ev->u.oval); + { + std::ios saved (0); + saved.copyfmt (o); + o << "0x" << std::hex << std::setw (2) << std::setfill ('0') << unsigned (ev->u.oval); + o.copyfmt (saved); + } break; case AST_Expression::EV_bool: o << (ev->u.bval == true ? "TRUE" : "FALSE"); @@ -3058,7 +2861,12 @@ dump_expr_val (ACE_OSTREAM_TYPE &o, AST_Expression::AST_ExprValue *ev) case AST_Expression::EV_fixed: o << ev->u.fixedval; break; - case AST_Expression::EV_enum: + case AST_Expression::EV_int8: + o << static_cast (ev->u.int8val); + break; + case AST_Expression::EV_uint8: + o << static_cast (ev->u.uint8val); + break; default: o << "(Can not dump this type)"; } @@ -3365,6 +3173,10 @@ AST_Expression::exprtype_to_string (ExprType t) return "object"; case AST_Expression::EV_fixed: return "fixed"; + case AST_Expression::EV_uint8: + return "uint8"; + case AST_Expression::EV_int8: + return "int8"; default: return ""; } diff --git a/TAO/TAO_IDL/ast/ast_predefined_type.cpp b/TAO/TAO_IDL/ast/ast_predefined_type.cpp index db6d092373723..e0fb8bfc630fa 100644 --- a/TAO/TAO_IDL/ast/ast_predefined_type.cpp +++ b/TAO/TAO_IDL/ast/ast_predefined_type.cpp @@ -71,8 +71,11 @@ trademarks or registered trademarks of Sun Microsystems, Inc. #include "ast_predefined_type.h" #include "ast_visitor.h" -#include "utl_identifier.h" #include "global_extern.h" + +#include "utl_identifier.h" +#include "utl_err.h" + #include "ace/Log_Msg.h" #include "ace/OS_NS_stdio.h" @@ -190,9 +193,16 @@ AST_PredefinedType::AST_PredefinedType (PredefinedType t, ACE_NEW (id, Identifier (n->last_component ()->get_string ())); break; + case AST_PredefinedType::PT_uint8: + ACE_NEW (id, Identifier ("UInt8")); + break; + case AST_PredefinedType::PT_int8: + ACE_NEW (id, Identifier ("Int8")); + break; default: - ACE_ERROR ((LM_ERROR, - "AST_PredefinedType - bad enum value\n")); + idl_global->err ()->misc_error ("AST_PredefinedType: bad enum value", this); + // Nothing else to do. We will segfault if we continue, return, or throw Bailout + ACE_OS::abort (); } ACE_NEW (conc_name, diff --git a/TAO/TAO_IDL/ast/ast_sequence.cpp b/TAO/TAO_IDL/ast/ast_sequence.cpp index f0b69d680b98a..5a3c7b3926b8d 100644 --- a/TAO/TAO_IDL/ast/ast_sequence.cpp +++ b/TAO/TAO_IDL/ast/ast_sequence.cpp @@ -245,6 +245,19 @@ AST_Sequence::base_type (void) const return this->pd_base_type; } +AST_Type * +AST_Sequence::primitive_base_type () const +{ + AST_Type *type_node = base_type (); + if (type_node && type_node->node_type () == AST_Decl::NT_typedef) + { + AST_Typedef *const typedef_node = dynamic_cast (type_node); + if (!typedef_node) return 0; + type_node = typedef_node->primitive_base_type (); + } + return type_node; +} + bool AST_Sequence::unbounded (void) const { diff --git a/TAO/TAO_IDL/ast/ast_template_module.cpp b/TAO/TAO_IDL/ast/ast_template_module.cpp index 0e1861578c80d..45b3ad27a0825 100644 --- a/TAO/TAO_IDL/ast/ast_template_module.cpp +++ b/TAO/TAO_IDL/ast/ast_template_module.cpp @@ -68,17 +68,16 @@ AST_Template_Module::match_arg_names (FE_Utils::T_ARGLIST *args) FE_Utils::T_Param_Info *param = 0; (void) this->template_params_->get (param, slot); - const char *s = 0; - if (! this->match_one_param (param, d)) + if (!this->match_one_param (param, d)) { UTL_ScopedName *n = d->name (); + const char *s = 0; - if (n == 0) + if (!n) { - AST_Constant *c = dynamic_cast (d); - - s = c->exprtype_to_string (); + AST_Constant *c = dynamic_cast (d); + s = AST_Expression::exprtype_to_string (c->et ()); } else { diff --git a/TAO/TAO_IDL/ast/ast_union.cpp b/TAO/TAO_IDL/ast/ast_union.cpp index 4cbc23e025e90..4d803e31c6a0b 100644 --- a/TAO/TAO_IDL/ast/ast_union.cpp +++ b/TAO/TAO_IDL/ast/ast_union.cpp @@ -154,12 +154,18 @@ AST_Union::AST_Union (AST_ConcreteType *dt, case AST_PredefinedType::PT_ushort: this->pd_udisc_type = AST_Expression::EV_ushort; break; + case AST_PredefinedType::PT_int8: + this->pd_udisc_type = AST_Expression::EV_int8; + break; case AST_PredefinedType::PT_char: this->pd_udisc_type = AST_Expression::EV_char; break; case AST_PredefinedType::PT_wchar: this->pd_udisc_type = AST_Expression::EV_wchar; break; + case AST_PredefinedType::PT_uint8: + this->pd_udisc_type = AST_Expression::EV_uint8; + break; case AST_PredefinedType::PT_octet: this->pd_udisc_type = AST_Expression::EV_octet; break; @@ -604,7 +610,16 @@ AST_Union::compute_default_value (void) break; case AST_Expression::EV_char: - if (total_case_members > ACE_OCTET_MAX) + case AST_Expression::EV_int8: + if (total_case_members > ACE_INT8_MAX) + { + this->default_value_.computed_ = 0; + } + + break; + case AST_Expression::EV_uint8: + case AST_Expression::EV_octet: + if (total_case_members > ACE_UINT8_MAX) { this->default_value_.computed_ = 0; } @@ -679,6 +694,9 @@ AST_Union::compute_default_value (void) case AST_Expression::EV_ulong: this->default_value_.u.ulong_val = 0; break; + case AST_Expression::EV_uint8: + case AST_Expression::EV_octet: + case AST_Expression::EV_int8: case AST_Expression::EV_char: this->default_value_.u.char_val = 0; break; @@ -781,6 +799,9 @@ AST_Union::compute_default_value (void) } break; + case AST_Expression::EV_uint8: + case AST_Expression::EV_octet: + case AST_Expression::EV_int8: case AST_Expression::EV_char: if (this->default_value_.u.char_val == expr->ev ()->u.cval) diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp index 4dfbf1313047c..d6d68aba61660 100644 --- a/TAO/TAO_IDL/be/be_codegen.cpp +++ b/TAO/TAO_IDL/be/be_codegen.cpp @@ -2446,8 +2446,19 @@ TAO_CodeGen::gen_stub_hdr_includes (void) this->client_header_ ); + const bool idl4 = idl_global->idl_version_ >= IDL_VERSION_4; this->gen_standard_include (this->client_header_, - "tao/Basic_Types.h"); + idl4 ? "tao/Basic_Types_IDLv4.h" : "tao/Basic_Types.h"); + if (idl4) + { + *client_header_ << + BE_GlobalData::core_versioned_ns_begin << "\n" + "namespace CORBA\n" + "{\n" + " using namespace IDLv4;\n" + "}\n" << + BE_GlobalData::core_versioned_ns_end; + } // May need ORB_Constants if users check SystemException minor // codes. diff --git a/TAO/TAO_IDL/be/be_global.cpp b/TAO/TAO_IDL/be/be_global.cpp index 54678f6b3175d..b72217adcc4ab 100644 --- a/TAO/TAO_IDL/be/be_global.cpp +++ b/TAO/TAO_IDL/be/be_global.cpp @@ -32,6 +32,11 @@ TAO_IDL_BE_Export BE_GlobalData *be_global = 0; +const char *const BE_GlobalData::core_versioned_ns_begin = + "\nTAO_BEGIN_VERSIONED_NAMESPACE_DECL\n"; +const char *const BE_GlobalData::core_versioned_ns_end = + "\nTAO_END_VERSIONED_NAMESPACE_DECL\n"; + BE_GlobalData::BE_GlobalData (void) : changing_standard_include_files_ (1), skel_export_macro_ (0), @@ -55,8 +60,8 @@ BE_GlobalData::BE_GlobalData (void) safe_include_ (0), unique_include_ (0), stripped_filename_ (0), - core_versioning_begin_ ("\nTAO_BEGIN_VERSIONED_NAMESPACE_DECL\n"), - core_versioning_end_ ("\nTAO_END_VERSIONED_NAMESPACE_DECL\n"), + core_versioning_begin_ (core_versioned_ns_begin), + core_versioning_end_ (core_versioned_ns_end), versioning_begin_ (), versioning_end_ (), versioning_include_ (), @@ -1144,7 +1149,7 @@ BE_GlobalData::versioning_end (const char * s) this->core_versioning_begin_ = this->versioning_end_ + // Yes, "end". - "\nTAO_BEGIN_VERSIONED_NAMESPACE_DECL\n"; + core_versioned_ns_begin; } void @@ -1156,7 +1161,7 @@ BE_GlobalData::versioning_begin (const char * s) + ACE_CString ("\n\n"); this->core_versioning_end_ = - "\nTAO_END_VERSIONED_NAMESPACE_DECL\n" + core_versioned_ns_end + this->versioning_begin_; // Yes, "begin". // Yes, "begin". diff --git a/TAO/TAO_IDL/be/be_helper.cpp b/TAO/TAO_IDL/be/be_helper.cpp index b62ed54a0622b..ac8c0735c0cca 100644 --- a/TAO/TAO_IDL/be/be_helper.cpp +++ b/TAO/TAO_IDL/be/be_helper.cpp @@ -530,8 +530,23 @@ TAO_OutStream::print (AST_Expression *expr) break; case AST_Expression::EV_longlong: this->TAO_OutStream::print ("ACE_INT64_LITERAL ("); - this->TAO_OutStream::print (ACE_INT64_FORMAT_SPECIFIER_ASCII, - ev->u.llval); + { + ACE_CDR::LongLong value = ev->u.llval; + /* + * It seems that in C/C++ the minus sign and the bare number are parsed + * separately for negative integer literals. This can cause compilers + * to complain when using the minimum value of a signed integer because + * the number without the minus sign is 1 past the max signed value. + * + * https://stackoverflow.com/questions/65007935 + * + * Apparently the workaround is to write it as `VALUE_PLUS_ONE - 1`. + */ + const bool min_value = value == ACE_INT64_MIN; + if (min_value) ++value; + TAO_OutStream::print (ACE_INT64_FORMAT_SPECIFIER_ASCII, value); + if (min_value) TAO_OutStream::print (" - 1"); + } this->TAO_OutStream::print (")"); break; case AST_Expression::EV_ulonglong: @@ -597,7 +612,7 @@ TAO_OutStream::print (AST_Expression *expr) this->TAO_OutStream::print ("L'%lc'", ev->u.wcval); break; case AST_Expression::EV_octet: - this->TAO_OutStream::print ("%d", ev->u.oval); + this->TAO_OutStream::print ("0x%02x", ev->u.oval); break; case AST_Expression::EV_bool: this->TAO_OutStream::print ("%s", ev->u.bval ? "true" : "false"); @@ -611,6 +626,12 @@ TAO_OutStream::print (AST_Expression *expr) case AST_Expression::EV_enum: this->print (expr->n ()); break; + case AST_Expression::EV_int8: + this->TAO_OutStream::print ("%d", ev->u.int8val); + break; + case AST_Expression::EV_uint8: + this->TAO_OutStream::print ("%uu", ev->u.uint8val); + break; default: break; } diff --git a/TAO/TAO_IDL/be/be_predefined_type.cpp b/TAO/TAO_IDL/be/be_predefined_type.cpp index fedc10172dd78..20b081ad59d3e 100644 --- a/TAO/TAO_IDL/be/be_predefined_type.cpp +++ b/TAO/TAO_IDL/be/be_predefined_type.cpp @@ -14,9 +14,12 @@ #include "be_predefined_type.h" #include "be_visitor.h" #include "be_helper.h" -#include "utl_identifier.h" + #include "global_extern.h" +#include "utl_identifier.h" +#include "utl_err.h" + #include "ace/Log_Msg.h" #include "ace/ACE.h" #include "ace/OS_NS_stdio.h" @@ -107,6 +110,14 @@ be_predefined_type::gen_member_ostream_operator (TAO_OutStream *os, *os << "ACE_OutputCDR::from_wchar (" << instance_name << (accessor ? " ()" : "") << ")"; break; + case AST_PredefinedType::PT_uint8: + *os << "ACE_OutputCDR::from_uint8 (" << instance_name + << (accessor ? " ()" : "") << ")"; + break; + case AST_PredefinedType::PT_int8: + *os << "ACE_OutputCDR::from_int8 (" << instance_name + << (accessor ? " ()" : "") << ")"; + break; case AST_PredefinedType::PT_object: case AST_PredefinedType::PT_abstract: case AST_PredefinedType::PT_pseudo: @@ -198,19 +209,19 @@ be_predefined_type::compute_tc_name (void) case AST_PredefinedType::PT_any: ACE_NEW (id, Identifier ("_tc_any")); - break; + break; case AST_PredefinedType::PT_object: ACE_NEW (id, Identifier ("_tc_Object")); - break; + break; case AST_PredefinedType::PT_value: ACE_NEW (id, Identifier ("_tc_ValueBase")); - break; + break; case AST_PredefinedType::PT_abstract: ACE_NEW (id, Identifier ("_tc_AbstractBase")); - break; + break; case AST_PredefinedType::PT_pseudo: { char tcname [100]; @@ -222,9 +233,17 @@ be_predefined_type::compute_tc_name (void) Identifier (tcname)); break; } - default: - ACE_ERROR ((LM_WARNING, "Unknown or invalid predefined type")); + case AST_PredefinedType::PT_uint8: + ACE_NEW (id, Identifier ("_tc_uint8")); + break; + case AST_PredefinedType::PT_int8: + ACE_NEW (id, Identifier ("_tc_int8")); break; + default: + idl_global->err ()->misc_error ( + "be_predefined_type::compute_tc_name: Unknown or invalid predefined type", this); + // Nothing else to do. We will segfault if we continue, return, or throw Bailout + ACE_OS::abort (); } ACE_NEW (conc_name, diff --git a/TAO/TAO_IDL/be/be_sequence.cpp b/TAO/TAO_IDL/be/be_sequence.cpp index 13c8923cebbe7..9fdbf97edd38e 100644 --- a/TAO/TAO_IDL/be/be_sequence.cpp +++ b/TAO/TAO_IDL/be/be_sequence.cpp @@ -95,22 +95,10 @@ be_sequence::be_sequence (AST_Expression *v, break; } - AST_Decl::NodeType nt = t->node_type (); - AST_Typedef *td = 0; - AST_Type *pbt = 0; - - if (nt == AST_Decl::NT_typedef) - { - td = dynamic_cast (t); - pbt = td->primitive_base_type (); - nt = pbt->node_type (); - } - - if (nt == AST_Decl::NT_pre_defined) + AST_Type *const base_type = primitive_base_type (); + if (base_type && base_type->node_type () == AST_Decl::NT_pre_defined) { - AST_PredefinedType *pdt = - dynamic_cast (pbt ? pbt : t); - + AST_PredefinedType *pdt = dynamic_cast (base_type); switch (pdt->pt ()) { case AST_PredefinedType::PT_octet: @@ -130,6 +118,19 @@ be_sequence::base_type (void) const this->AST_Sequence::base_type ()); } +be_type * +be_sequence::primitive_base_type () const +{ + be_type *type_node = base_type (); + if (type_node && type_node->node_type () == AST_Decl::NT_typedef) + { + be_typedef *const typedef_node = dynamic_cast (type_node); + if (!typedef_node) return 0; + type_node = typedef_node->primitive_base_type (); + } + return type_node; +} + // Helper to create_name. char * be_sequence::gen_name (void) @@ -280,31 +281,16 @@ be_sequence::managed_type (void) if (this->mt_ == be_sequence::MNG_UNKNOWN) // Not calculated yet. { // Base types. - be_type *bt = 0; - be_type *prim_type = 0; - - bt = dynamic_cast (this->base_type ()); - - if (!bt) + be_type *const base_type = primitive_base_type (); + if (!base_type) ACE_ERROR_RETURN ((LM_ERROR, "TAO_IDL (%N:%l) " "dynamic_cast " "failed\n"), be_sequence::MNG_UNKNOWN); - if (bt->node_type () == AST_Decl::NT_typedef) - { - // Get the primitive base type of this typedef node. - be_typedef *t = dynamic_cast (bt); - prim_type = t->primitive_base_type (); - } - else - { - prim_type = bt; - } - // Determine if we need a managed type and which one. - switch (prim_type->node_type ()) + switch (base_type->node_type ()) { case AST_Decl::NT_interface: case AST_Decl::NT_interface_fwd: @@ -329,7 +315,7 @@ be_sequence::managed_type (void) case AST_Decl::NT_pre_defined: { be_predefined_type * const bpd = - dynamic_cast (prim_type); + dynamic_cast (base_type); AST_PredefinedType::PredefinedType pt = bpd->pt (); @@ -426,10 +412,8 @@ be_sequence::instance_name () '\0', NAMEBUFSIZE); - be_type *bt = 0; - bt = dynamic_cast (this->base_type ()); - - if (bt == 0) + be_type *const prim_type = primitive_base_type (); + if (!prim_type) { ACE_ERROR ((LM_ERROR, "(%N:%l) be_visitor_sequence_ch::" @@ -439,18 +423,6 @@ be_sequence::instance_name () return namebuf; } - // Generate the class name. - - // The base type after removing all the aliases. - be_type *prim_type = bt; - - if (bt->node_type () == AST_Decl::NT_typedef) - { - // Get the primitive base type of this typedef node. - be_typedef *t = dynamic_cast (bt); - prim_type = t->primitive_base_type (); - } - // Generate the appropriate sequence type. switch (this->managed_type ()) { @@ -621,18 +593,15 @@ be_sequence::gen_base_class_name (TAO_OutStream *os, break; case be_sequence::MNG_STRING: { - be_type *prim_type = 0; - if (elem->node_type () == AST_Decl::NT_typedef) - { - // Get the primitive base type of this typedef node. - be_typedef *t = dynamic_cast (elem); - prim_type = t->primitive_base_type (); - } - else + be_type *const prim_type = primitive_base_type (); + if (!prim_type) { - prim_type = elem; + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_sequence::" + "gen_base_class_name - " + "Bad element type\n"), + -1); } - if (prim_type->node_type () == AST_Decl::NT_string) { be_string *str = @@ -680,18 +649,15 @@ be_sequence::gen_base_class_name (TAO_OutStream *os, break; case be_sequence::MNG_WSTRING: { - be_type *prim_type = 0; - if (elem->node_type () == AST_Decl::NT_typedef) - { - // Get the primitive base type of this typedef node. - be_typedef *t = dynamic_cast (elem); - prim_type = t->primitive_base_type (); - } - else + be_type *const prim_type = primitive_base_type (); + if (!prim_type) { - prim_type = elem; + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_sequence::" + "gen_base_class_name - " + "Bad element type\n"), + -1); } - if (prim_type->node_type () == AST_Decl::NT_wstring) { be_string *str = @@ -744,46 +710,68 @@ be_sequence::gen_base_class_name (TAO_OutStream *os, if (this->unbounded ()) { *os << "::TAO::unbounded_array_sequence<" << linebreak - << be_idt << be_idt_nl - << elem->nested_type_name (ctx_scope) << "," << linebreak - << be_nl; - *os << elem->nested_type_name (ctx_scope) << "_slice," - << linebreak << be_nl - << elem->nested_type_name (ctx_scope) << "_tag" - << linebreak << be_uidt_nl - << ">" << be_uidt; + << be_idt << be_idt_nl + << elem->nested_type_name (ctx_scope) << "," << linebreak + << be_nl; + *os << elem->nested_type_name (ctx_scope) << "_slice," + << linebreak << be_nl + << elem->nested_type_name (ctx_scope) << "_tag" + << linebreak << be_uidt_nl + << ">" << be_uidt; } else { *os << "::TAO::bounded_array_sequence<" << linebreak - << be_idt << be_idt_nl - << elem->nested_type_name (ctx_scope) << "," << linebreak - << be_nl; - *os << elem->nested_type_name (ctx_scope) << "_slice," - << linebreak << be_nl - << elem->nested_type_name (ctx_scope) << "_tag," - << linebreak << be_nl - << this->max_size ()->ev ()->u.ulval << linebreak - << be_uidt_nl - << ">" << be_uidt; + << be_idt << be_idt_nl + << elem->nested_type_name (ctx_scope) << "," << linebreak + << be_nl; + *os << elem->nested_type_name (ctx_scope) << "_slice," + << linebreak << be_nl + << elem->nested_type_name (ctx_scope) << "_tag," + << linebreak << be_nl + << this->max_size ()->ev ()->u.ulval << linebreak + << be_uidt_nl + << ">" << be_uidt; } break; default: - if (this->unbounded ()) - { - *os << "::TAO::unbounded_value_sequence< " - << elem->nested_type_name (ctx_scope) - << ">"; - } - else - { - *os << "::TAO::bounded_value_sequence< " - << elem->nested_type_name (ctx_scope) << "," - << this->max_size ()->ev ()->u.ulval - << ">"; - } + { + be_type *const base_type = primitive_base_type (); + if (!base_type) + { + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_sequence::" + "gen_base_class_name - " + "Bad element type\n"), + -1); + } + const char *tag = ""; + if (base_type->node_type () == AST_Decl::NT_pre_defined) + { + be_predefined_type *const predefined_type = + dynamic_cast (base_type); + switch (predefined_type->pt ()) + { + case AST_PredefinedType::PT_uint8: + tag = ", CORBA::IDLv4::UInt8_tag"; + break; + case AST_PredefinedType::PT_int8: + tag = ", CORBA::IDLv4::Int8_tag"; + break; + default: + break; + } + } + + *os + << "::TAO::" << (unbounded () ? "un" : "") << "bounded_value_sequence< " + << elem->nested_type_name (ctx_scope); + if (!unbounded ()) + *os << "," << this->max_size ()->ev ()->u.ulval; + *os << tag << ">"; + } break; } diff --git a/TAO/TAO_IDL/be/be_union_branch.cpp b/TAO/TAO_IDL/be/be_union_branch.cpp index 5f9749147c245..372bf6be83449 100644 --- a/TAO/TAO_IDL/be/be_union_branch.cpp +++ b/TAO/TAO_IDL/be/be_union_branch.cpp @@ -118,9 +118,11 @@ be_union_branch::gen_default_label_value (TAO_OutStream *os, switch (bu->udisc_type ()) { case AST_Expression::EV_short: + case AST_Expression::EV_int8: *os << dv.u.short_val; break; case AST_Expression::EV_ushort: + case AST_Expression::EV_uint8: *os << dv.u.ushort_val; break; case AST_Expression::EV_long: @@ -129,6 +131,7 @@ be_union_branch::gen_default_label_value (TAO_OutStream *os, case AST_Expression::EV_ulong: *os << dv.u.ulong_val; break; + case AST_Expression::EV_octet: case AST_Expression::EV_char: os->print ("'\\%o'", dv.u.char_val); break; diff --git a/TAO/TAO_IDL/be/be_visitor_any_extracted_type_decl.cpp b/TAO/TAO_IDL/be/be_visitor_any_extracted_type_decl.cpp index 9a16e7d7ced4d..286ee3b772449 100644 --- a/TAO/TAO_IDL/be/be_visitor_any_extracted_type_decl.cpp +++ b/TAO/TAO_IDL/be/be_visitor_any_extracted_type_decl.cpp @@ -108,6 +108,16 @@ be_visitor_any_extracted_type_decl::visit_predefined_type ( << "::CORBA::Any::to_wchar " << var_name_ << " (" << tmp_name_ << ");"; break; + case AST_PredefinedType::PT_uint8: + os_ << tmp_name_ << " = 0;" << be_nl + << "::CORBA::Any::to_uint8 " << var_name_ + << " (" << tmp_name_ << ");"; + break; + case AST_PredefinedType::PT_int8: + os_ << tmp_name_ << " = 0;" << be_nl + << "::CORBA::Any::to_int8 " << var_name_ + << " (" << tmp_name_ << ");"; + break; case AST_PredefinedType::PT_short: case AST_PredefinedType::PT_ushort: case AST_PredefinedType::PT_long: diff --git a/TAO/TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp index 9fb7f847b386a..1fc6ccff89813 100644 --- a/TAO/TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp @@ -363,6 +363,12 @@ be_visitor_array_cdr_op_cs::visit_predefined_type ( case AST_PredefinedType::PT_boolean: *os << "boolean_array"; break; + case AST_PredefinedType::PT_uint8: + *os << "uint8_array"; + break; + case AST_PredefinedType::PT_int8: + *os << "int8_array"; + break; default: ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_array_cdr_op_cs::" @@ -431,6 +437,12 @@ be_visitor_array_cdr_op_cs::visit_predefined_type ( case AST_PredefinedType::PT_boolean: *os << "ACE_CDR::Boolean"; break; + case AST_PredefinedType::PT_uint8: + *os << "ACE_CDR::UInt8"; + break; + case AST_PredefinedType::PT_int8: + *os << "ACE_CDR::Int8"; + break; default: ACE_ERROR_RETURN ((LM_ERROR, "(%N:%l) be_visitor_array_cdr_op_cs::" diff --git a/TAO/TAO_IDL/be/be_visitor_constant/constant.cpp b/TAO/TAO_IDL/be/be_visitor_constant/constant.cpp new file mode 100644 index 0000000000000..f339edfc8c4f3 --- /dev/null +++ b/TAO/TAO_IDL/be/be_visitor_constant/constant.cpp @@ -0,0 +1,50 @@ +#include "constant.h" + +const char *exprtype_to_cpp_corba_type (AST_Expression::ExprType et) +{ + switch (et) + { + case AST_Expression::EV_short: + return "CORBA::Short"; + case AST_Expression::EV_ushort: + return "CORBA::UShort"; + case AST_Expression::EV_long: + return "CORBA::Long"; + case AST_Expression::EV_ulong: + return "CORBA::ULong"; + case AST_Expression::EV_float: + return "CORBA::Float"; + case AST_Expression::EV_double: + return "CORBA::Double"; + case AST_Expression::EV_char: + return "CORBA::Char"; + case AST_Expression::EV_octet: + return "CORBA::Octet"; + case AST_Expression::EV_bool: + return "CORBA::Boolean"; + case AST_Expression::EV_string: + return "char *const"; + case AST_Expression::EV_void: + return "void"; + case AST_Expression::EV_none: + return "none"; + case AST_Expression::EV_longlong: + return "CORBA::LongLong"; + case AST_Expression::EV_ulonglong: + return "CORBA::ULongLong"; + case AST_Expression::EV_wchar: + return "CORBA::WChar"; + case AST_Expression::EV_wstring: + return "CORBA::WChar *const"; + case AST_Expression::EV_fixed: + return "Fixed"; + case AST_Expression::EV_int8: + return "CORBA::Int8"; + case AST_Expression::EV_uint8: + return "CORBA::UInt8"; + default: + return 0; + } + + return 0; +} diff --git a/TAO/TAO_IDL/be/be_visitor_constant/constant.h b/TAO/TAO_IDL/be/be_visitor_constant/constant.h index e4c2ba425ce15..50da10f172eb5 100644 --- a/TAO/TAO_IDL/be/be_visitor_constant/constant.h +++ b/TAO/TAO_IDL/be/be_visitor_constant/constant.h @@ -15,8 +15,9 @@ #include "be_extern.h" #include "be_typedef.h" #include "utl_identifier.h" +#include "ast_expression.h" #include "be_visitor_constant.h" #include "be_visitor_context.h" - +const char *exprtype_to_cpp_corba_type (AST_Expression::ExprType et); 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 7f6827324034e..34ddd42f48221 100644 --- a/TAO/TAO_IDL/be/be_visitor_constant/constant_ch.cpp +++ b/TAO/TAO_IDL/be/be_visitor_constant/constant_ch.cpp @@ -66,7 +66,7 @@ be_visitor_constant_ch::visit_constant (be_constant *node) } else { - *os << node->exprtype_to_string (); + *os << exprtype_to_cpp_corba_type (node->et ()); } *os << " " << node->local_name (); @@ -93,7 +93,7 @@ be_visitor_constant_ch::visit_constant (be_constant *node) { if (bnt == AST_Decl::NT_string || bnt == AST_Decl::NT_wstring) { - *os << node->exprtype_to_string (); + *os << exprtype_to_cpp_corba_type (node->et ()); } else { @@ -102,7 +102,7 @@ be_visitor_constant_ch::visit_constant (be_constant *node) } else { - *os << node->exprtype_to_string (); + *os << exprtype_to_cpp_corba_type (node->et ()); } *os << " " << node->local_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 403a16a9f7ebb..e25c52daa57e7 100644 --- a/TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_constant/constant_cs.cpp @@ -69,7 +69,7 @@ be_visitor_constant_cs::visit_constant (be_constant *node) } else { - *os << node->exprtype_to_string (); + *os << exprtype_to_cpp_corba_type (node->et ()); } *os << " " << node->name (); diff --git a/TAO/TAO_IDL/be/be_visitor_field/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_field/cdr_op_cs.cpp index 751a5c1ddc991..fae69dd06e9e1 100644 --- a/TAO/TAO_IDL/be/be_visitor_field/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_field/cdr_op_cs.cpp @@ -500,6 +500,16 @@ be_visitor_field_cdr_op_cs::visit_predefined_type (be_predefined_type *node) *os << "(strm >> ::ACE_InputCDR::to_boolean (_tao_aggregate." << f->local_name () << "))"; } + else if (pt == AST_PredefinedType::PT_uint8) + { + *os << "(strm >> ::ACE_InputCDR::to_uint8 (_tao_aggregate." + << f->local_name () << "))"; + } + else if (pt == AST_PredefinedType::PT_int8) + { + *os << "(strm >> ::ACE_InputCDR::to_int8 (_tao_aggregate." + << f->local_name () << "))"; + } else { *os << "(strm >> _tao_aggregate." << f->local_name () << ")"; @@ -531,6 +541,16 @@ be_visitor_field_cdr_op_cs::visit_predefined_type (be_predefined_type *node) *os << "(strm << ::ACE_OutputCDR::from_boolean (_tao_aggregate." << f->local_name () << "))"; } + else if (pt == AST_PredefinedType::PT_uint8) + { + *os << "(strm << ::ACE_OutputCDR::from_uint8 (_tao_aggregate." + << f->local_name () << "))"; + } + else if (pt == AST_PredefinedType::PT_int8) + { + *os << "(strm << ::ACE_OutputCDR::from_int8 (_tao_aggregate." + << f->local_name () << "))"; + } else { *os << "(strm << _tao_aggregate." << f->local_name () << ")"; diff --git a/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp b/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp index 87714104cf1ca..f122451d6712b 100644 --- a/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp +++ b/TAO/TAO_IDL/be/be_visitor_operation/operation.cpp @@ -529,6 +529,12 @@ be_visitor_operation::gen_arg_template_param_name (AST_Decl *scope, case AST_PredefinedType::PT_wchar: *os << "::ACE_InputCDR::to_wchar"; return; + case AST_PredefinedType::PT_uint8: + *os << "::ACE_InputCDR::to_uint8"; + return; + case AST_PredefinedType::PT_int8: + *os << "::ACE_InputCDR::to_int8"; + return; case AST_PredefinedType::PT_void: break; default: diff --git a/TAO/TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp index 3e4cb98979be8..486f6ffbd0aad 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp @@ -21,6 +21,49 @@ be_visitor_union_cdr_op_cs::~be_visitor_union_cdr_op_cs (void) { } +namespace { + void + serialize_disc (TAO_OutStream *os, AST_Expression::ExprType disc_type, bool out) + { + const char* tmp_suffix = nullptr; + switch (disc_type) + { + case AST_Expression::EV_bool: + tmp_suffix = "boolean"; + break; + case AST_Expression::EV_char: + tmp_suffix = "char"; + break; + case AST_Expression::EV_wchar: + tmp_suffix = "wchar"; + break; + case AST_Expression::EV_uint8: + tmp_suffix = "uint8"; + break; + case AST_Expression::EV_int8: + tmp_suffix = "int8"; + break; + default: + break; + } + + const char* val = out ? "_tao_union._d ()" : "_tao_discriminant"; + if (tmp_suffix) + { + *os << (out ? "::ACE_OutputCDR::from_" : "::ACE_InputCDR::to_") + << tmp_suffix << " tmp (" << val << ");" << be_nl; + val = "tmp"; + } + + *os + << "if (!(strm " << (out ? "<<" : ">>") << " " << val << "))" << be_idt_nl + << "{" << be_idt_nl + << "return false;" << be_uidt_nl + << "}" << be_uidt_nl << be_nl + << "::CORBA::Boolean result = true;" << be_nl_2; + } +} + int be_visitor_union_cdr_op_cs::visit_union (be_union *node) { @@ -84,37 +127,9 @@ be_visitor_union_cdr_op_cs::visit_union (be_union *node) << ")" << be_uidt_nl << "{" << be_idt_nl; - bool boolDisc = false; - - switch (node->udisc_type ()) - { - case AST_Expression::EV_bool: - boolDisc = true; - *os << "::ACE_OutputCDR::from_boolean tmp (_tao_union._d ());" << be_nl - << "if ( !(strm << tmp) )" << be_idt_nl; - - break; - case AST_Expression::EV_char: - *os << "::ACE_OutputCDR::from_char tmp (_tao_union._d ());" << be_nl - << "if ( !(strm << tmp) )" << be_idt_nl; - - break; - case AST_Expression::EV_wchar: - *os << "::ACE_OutputCDR::from_wchar tmp (_tao_union._d ());" << be_nl - << "if ( !(strm << tmp) )" << be_idt_nl; - - break; - default: - *os << "if ( !(strm << _tao_union._d ()) )" << be_idt_nl; - - break; - } - - *os << "{" << be_idt_nl - << "return false;" << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "::CORBA::Boolean result = true;" << be_nl_2; + serialize_disc (os, node->udisc_type (), true /* out */); + const bool boolDisc = node->udisc_type () == AST_Expression::EV_bool; if (!boolDisc) { *os << "switch (_tao_union._d ())" << be_nl @@ -165,33 +180,7 @@ be_visitor_union_cdr_op_cs::visit_union (be_union *node) *os << disc_type->full_name () << " " << "_tao_discriminant;" << be_nl; - switch (node->udisc_type ()) - { - case AST_Expression::EV_bool: - *os << "::ACE_InputCDR::to_boolean tmp (_tao_discriminant);" << be_nl - << "if ( !(strm >> tmp) )" << be_idt_nl; - - break; - case AST_Expression::EV_char: - *os << "::ACE_InputCDR::to_char tmp (_tao_discriminant);" << be_nl - << "if ( !(strm >> tmp) )" << be_idt_nl; - - break; - case AST_Expression::EV_wchar: - *os << "::ACE_InputCDR::to_wchar tmp (_tao_discriminant);" << be_nl - << "if ( !(strm >> tmp) )" << be_idt_nl; - - break; - default: - *os << "if ( !(strm >> _tao_discriminant) )" << be_idt_nl; - - break; - } - - *os << "{" << be_idt_nl - << "return false;" << be_uidt_nl - << "}" << be_uidt_nl << be_nl - << "::CORBA::Boolean result = true;" << be_nl_2; + serialize_disc (os, node->udisc_type (), false /* in */); if (boolDisc) { diff --git a/TAO/TAO_IDL/be/be_visitor_union/discriminant_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union/discriminant_ci.cpp index e2f058bf507ad..f172a2f7d82f1 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/discriminant_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/discriminant_ci.cpp @@ -159,9 +159,11 @@ be_visitor_union_discriminant_ci::visit_predefined_type ( switch (bu->udisc_type ()) { case AST_Expression::EV_short: + case AST_Expression::EV_int8: *os << dv.u.short_val; break; case AST_Expression::EV_ushort: + case AST_Expression::EV_uint8: *os << dv.u.ushort_val; break; case AST_Expression::EV_long: @@ -171,6 +173,7 @@ be_visitor_union_discriminant_ci::visit_predefined_type ( *os << dv.u.ulong_val; break; case AST_Expression::EV_char: + case AST_Expression::EV_octet: os->print ("'\\%o'", dv.u.char_val); break; case AST_Expression::EV_bool: diff --git a/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_cs.cpp index 7d4654d9cd947..bfaa0211f09f9 100644 --- a/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_cs.cpp @@ -574,6 +574,28 @@ be_visitor_union_branch_cdr_op_cs::visit_predefined_type ( << "_tao_union." << f->local_name () << " (_tao_union_tmp);"; } + else if (pt == AST_PredefinedType::PT_uint8) + { + *os << "::CORBA::UInt8 _tao_union_tmp;" << be_nl + << "::ACE_InputCDR::to_uint8 _tao_union_helper " + << "(_tao_union_tmp);" << be_nl + << "result = strm >> _tao_union_helper;" << be_nl_2 + << "if (result)" << be_idt_nl + << "{" << be_idt_nl + << "_tao_union." << f->local_name () + << " (_tao_union_tmp);"; + } + else if (pt == AST_PredefinedType::PT_int8) + { + *os << "::CORBA::Int8 _tao_union_tmp;" << be_nl + << "::ACE_InputCDR::to_int8 _tao_union_helper " + << "(_tao_union_tmp);" << be_nl + << "result = strm >> _tao_union_helper;" << be_nl_2 + << "if (result)" << be_idt_nl + << "{" << be_idt_nl + << "_tao_union." << f->local_name () + << " (_tao_union_tmp);"; + } else { *os << node->name () << " _tao_union_tmp;" << be_nl @@ -619,6 +641,16 @@ be_visitor_union_branch_cdr_op_cs::visit_predefined_type ( *os << "strm << ::ACE_OutputCDR::from_boolean (_tao_union." << f->local_name () << " ());"; } + else if (pt == AST_PredefinedType::PT_uint8) + { + *os << "strm << ::ACE_OutputCDR::from_uint8 (_tao_union." + << f->local_name () << " ());"; + } + else if (pt == AST_PredefinedType::PT_int8) + { + *os << "strm << ::ACE_OutputCDR::from_int8 (_tao_union." + << f->local_name () << " ());"; + } else { *os << "strm << _tao_union." << f->local_name () << " ();"; diff --git a/TAO/TAO_IDL/be/be_visitor_valuebox/valuebox_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuebox/valuebox_cs.cpp index dd45e8f2e41c4..9d0ce3dc70825 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuebox/valuebox_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuebox/valuebox_cs.cpp @@ -204,6 +204,16 @@ be_visitor_valuebox_cs::visit_valuebox (be_valuebox *node) "::ACE_InputCDR::to_octet (vb_object->_pd_value)"; break; + case AST_PredefinedType::PT_uint8: + unmarshal_arg = + "::ACE_InputCDR::to_uint8 (vb_object->_pd_value)"; + break; + + case AST_PredefinedType::PT_int8: + unmarshal_arg = + "::ACE_InputCDR::to_int8 (vb_object->_pd_value)"; + break; + case AST_PredefinedType::PT_any: // We need to help the ">>" operator for "any" because // a conversion operator is not available. @@ -407,6 +417,16 @@ be_visitor_valuebox_cs::visit_predefined_type (be_predefined_type * node) "::ACE_OutputCDR::from_octet (this->_pd_value)"; break; + case AST_PredefinedType::PT_uint8: + marshal_arg = + "::ACE_OutputCDR::from_uint8 (this->_pd_value)"; + break; + + case AST_PredefinedType::PT_int8: + marshal_arg = + "::ACE_OutputCDR::from_int8 (this->_pd_value)"; + break; + case AST_PredefinedType::PT_any: marshal_arg = "this->_pd_value.in ()"; break; diff --git a/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_cs.cpp b/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_cs.cpp index 9af6e532cc5d3..af77986a26455 100644 --- a/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_valuetype/field_cdr_cs.cpp @@ -502,6 +502,16 @@ be_visitor_valuetype_field_cdr_cs::visit_predefined_type (be_predefined_type *no *os << "(strm >> ::ACE_InputCDR::to_boolean (" << this->pre_ << f->local_name () << this->post_ << "))"; } + else if (pt == AST_PredefinedType::PT_uint8) + { + *os << "(strm >> ::ACE_InputCDR::to_uint8 (" + << this->pre_ << f->local_name () << this->post_ << "))"; + } + else if (pt == AST_PredefinedType::PT_int8) + { + *os << "(strm >> ::ACE_InputCDR::to_int8 (" + << this->pre_ << f->local_name () << this->post_ << "))"; + } else { *os << "(strm >> " << this->pre_ << f->local_name () @@ -535,6 +545,16 @@ be_visitor_valuetype_field_cdr_cs::visit_predefined_type (be_predefined_type *no *os << "(strm << ::ACE_OutputCDR::from_boolean (" << this->pre_ << f->local_name () << this->post_ << "))"; } + else if (pt == AST_PredefinedType::PT_uint8) + { + *os << "(strm << ::ACE_OutputCDR::from_uint8 (" + << this->pre_ << f->local_name () << this->post_ << "))"; + } + else if (pt == AST_PredefinedType::PT_int8) + { + *os << "(strm << ::ACE_OutputCDR::from_int8 (" + << this->pre_ << f->local_name () << this->post_ << "))"; + } else { *os << "(strm << " << this->pre_ << f->local_name () diff --git a/TAO/TAO_IDL/be_include/be_global.h b/TAO/TAO_IDL/be_include/be_global.h index 5a7a97ad9b9ba..b7f5e3516665b 100644 --- a/TAO/TAO_IDL/be_include/be_global.h +++ b/TAO/TAO_IDL/be_include/be_global.h @@ -55,6 +55,9 @@ class TAO_IDL_BE_Export BE_GlobalData COREDX }; + static const char *const core_versioned_ns_begin; + static const char *const core_versioned_ns_end; + BE_GlobalData (void); ~BE_GlobalData (void); diff --git a/TAO/TAO_IDL/be_include/be_sequence.h b/TAO/TAO_IDL/be_include/be_sequence.h index dcedb4e4155be..4ffb11ab707b0 100644 --- a/TAO/TAO_IDL/be_include/be_sequence.h +++ b/TAO/TAO_IDL/be_include/be_sequence.h @@ -53,9 +53,15 @@ class be_sequence : public virtual AST_Sequence, bool local, bool abstract); - // Non-virtual override of frontend method. + /// Non-virtual override of frontend method. be_type *base_type (void) const; + /** + * Returns the fully dealiased base type if it's a typedef. If it's not a + * typedef, the it returns the same value as as base_type(). + */ + be_type *primitive_base_type () const; + /// Create a name for ourselves. If we are typedefed, then we get the name of /// the typedef node, else we generate a name for ourselves. virtual int create_name (be_typedef *node); diff --git a/TAO/TAO_IDL/fe/fe_init.cpp b/TAO/TAO_IDL/fe/fe_init.cpp index 65425c5402a65..4a02d0d66009e 100644 --- a/TAO/TAO_IDL/fe/fe_init.cpp +++ b/TAO/TAO_IDL/fe/fe_init.cpp @@ -81,7 +81,7 @@ const size_t LOCAL_ESCAPES_BUFFER_SIZE = 1024; void fe_populate_global_scope (void) { - // No need to created a scoped name for the basic types, the + // No need to create a scoped name for the basic types, the // AST_PredefinedType constructor will do that. AST_PredefinedType *pdt = 0; @@ -210,6 +210,12 @@ fe_populate_global_scope (void) m->fe_add_predefined_type (pdt); + m->fe_add_predefined_type (idl_global->gen ()->create_predefined_type ( + AST_PredefinedType::PT_uint8, 0)); + + m->fe_add_predefined_type (idl_global->gen ()->create_predefined_type ( + AST_PredefinedType::PT_int8, 0)); + Identifier Object_id ("Object"); UTL_ScopedName Object_name (&Object_id, 0); diff --git a/TAO/TAO_IDL/fe/fe_utils.cpp b/TAO/TAO_IDL/fe/fe_utils.cpp index 32ab27879db7e..537d3c25c8b40 100644 --- a/TAO/TAO_IDL/fe/fe_utils.cpp +++ b/TAO/TAO_IDL/fe/fe_utils.cpp @@ -123,6 +123,10 @@ FE_Utils::PredefinedTypeToExprType ( return AST_Expression::EV_bool; case AST_PredefinedType::PT_void: return AST_Expression::EV_void; + case AST_PredefinedType::PT_int8: + return AST_Expression::EV_int8; + case AST_PredefinedType::PT_uint8: + return AST_Expression::EV_uint8; default: return AST_Expression::EV_enum; } @@ -165,6 +169,10 @@ FE_Utils::ExprTypeToPredefinedType (AST_Expression::ExprType et) return AST_PredefinedType::PT_object; case AST_Expression::EV_void: return AST_PredefinedType::PT_void; + case AST_Expression::EV_int8: + return AST_PredefinedType::PT_int8; + case AST_Expression::EV_uint8: + return AST_PredefinedType::PT_uint8; case AST_Expression::EV_enum: case AST_Expression::EV_string: case AST_Expression::EV_wstring: diff --git a/TAO/TAO_IDL/fe/idl.ll b/TAO/TAO_IDL/fe/idl.ll index 69bc94d48bdb9..56ad0cbd63f61 100644 --- a/TAO/TAO_IDL/fe/idl.ll +++ b/TAO/TAO_IDL/fe/idl.ll @@ -157,6 +157,71 @@ native return IDL_NATIVE; local return IDL_LOCAL; abstract return IDL_ABSTRACT; +int8 { + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_INT8; + else + { + REJECT; + } +} +uint8 { + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_UINT8; + else + { + REJECT; + } +} +int16 { + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_INT16; + else + { + REJECT; + } +} +uint16 { + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_UINT16; + else + { + REJECT; + } +} +int32 { + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_INT32; + else + { + REJECT; + } +} +uint32 { + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_UINT32; + else + { + REJECT; + } +} +int64 { + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_INT64; + else + { + REJECT; + } +} +uint64 { + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_UINT64; + else + { + REJECT; + } +} + custom return IDL_CUSTOM; factory return IDL_FACTORY; private return IDL_PRIVATE; diff --git a/TAO/TAO_IDL/fe/idl.tab.cpp b/TAO/TAO_IDL/fe/idl.tab.cpp index 2b4b8a4258a8f..d22f815b46679 100644 --- a/TAO/TAO_IDL/fe/idl.tab.cpp +++ b/TAO/TAO_IDL/fe/idl.tab.cpp @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.6.2. */ +/* A Bison parser, made by GNU Bison 3.7.6. */ /* Bison implementation for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -45,11 +45,11 @@ define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ -/* Identify Bison output. */ -#define YYBISON 1 +/* Identify Bison output, and Bison version. */ +#define YYBISON 30706 -/* Bison version. */ -#define YYBISON_VERSION "3.6.2" +/* Bison version string. */ +#define YYBISON_VERSION "3.7.6" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" @@ -184,179 +184,7 @@ bool stack_based_lookup_for_primary_expr = false; # endif # endif -/* Use api.header.include to #include this header - instead of duplicating it here. */ -#ifndef YY_TAO_YY_FE_IDL_TAB_HPP_INCLUDED -# define YY_TAO_YY_FE_IDL_TAB_HPP_INCLUDED -/* Debug traces. */ -#ifndef YYDEBUG -# define YYDEBUG 0 -#endif -#if YYDEBUG -extern int tao_yydebug; -#endif - -/* Token kinds. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - enum yytokentype - { - YYEMPTY = -2, - YYEOF = 0, /* "end of file" */ - YYerror = 256, /* error */ - YYUNDEF = 257, /* "invalid token" */ - IDENTIFIER = 258, /* IDENTIFIER */ - IDL_CONST = 259, /* IDL_CONST */ - IDL_MODULE = 260, /* IDL_MODULE */ - IDL_INTERFACE = 261, /* IDL_INTERFACE */ - IDL_TYPEDEF = 262, /* IDL_TYPEDEF */ - IDL_LONG = 263, /* IDL_LONG */ - IDL_SHORT = 264, /* IDL_SHORT */ - IDL_UNSIGNED = 265, /* IDL_UNSIGNED */ - IDL_DOUBLE = 266, /* IDL_DOUBLE */ - IDL_FLOAT = 267, /* IDL_FLOAT */ - IDL_CHAR = 268, /* IDL_CHAR */ - IDL_WCHAR = 269, /* IDL_WCHAR */ - IDL_OCTET = 270, /* IDL_OCTET */ - IDL_BOOLEAN = 271, /* IDL_BOOLEAN */ - IDL_FIXED = 272, /* IDL_FIXED */ - IDL_ANY = 273, /* IDL_ANY */ - IDL_OBJECT = 274, /* IDL_OBJECT */ - IDL_STRUCT = 275, /* IDL_STRUCT */ - IDL_UNION = 276, /* IDL_UNION */ - IDL_SWITCH = 277, /* IDL_SWITCH */ - IDL_ENUM = 278, /* IDL_ENUM */ - IDL_SEQUENCE = 279, /* IDL_SEQUENCE */ - IDL_STRING = 280, /* IDL_STRING */ - IDL_WSTRING = 281, /* IDL_WSTRING */ - IDL_EXCEPTION = 282, /* IDL_EXCEPTION */ - IDL_CASE = 283, /* IDL_CASE */ - IDL_DEFAULT = 284, /* IDL_DEFAULT */ - IDL_READONLY = 285, /* IDL_READONLY */ - IDL_ATTRIBUTE = 286, /* IDL_ATTRIBUTE */ - IDL_ONEWAY = 287, /* IDL_ONEWAY */ - IDL_IDEMPOTENT = 288, /* IDL_IDEMPOTENT */ - IDL_VOID = 289, /* IDL_VOID */ - IDL_IN = 290, /* IDL_IN */ - IDL_OUT = 291, /* IDL_OUT */ - IDL_INOUT = 292, /* IDL_INOUT */ - IDL_RAISES = 293, /* IDL_RAISES */ - IDL_CONTEXT = 294, /* IDL_CONTEXT */ - IDL_NATIVE = 295, /* IDL_NATIVE */ - IDL_LOCAL = 296, /* IDL_LOCAL */ - IDL_ABSTRACT = 297, /* IDL_ABSTRACT */ - IDL_CUSTOM = 298, /* IDL_CUSTOM */ - IDL_FACTORY = 299, /* IDL_FACTORY */ - IDL_PRIVATE = 300, /* IDL_PRIVATE */ - IDL_PUBLIC = 301, /* IDL_PUBLIC */ - IDL_SUPPORTS = 302, /* IDL_SUPPORTS */ - IDL_TRUNCATABLE = 303, /* IDL_TRUNCATABLE */ - IDL_VALUETYPE = 304, /* IDL_VALUETYPE */ - IDL_COMPONENT = 305, /* IDL_COMPONENT */ - IDL_CONSUMES = 306, /* IDL_CONSUMES */ - IDL_EMITS = 307, /* IDL_EMITS */ - IDL_EVENTTYPE = 308, /* IDL_EVENTTYPE */ - IDL_FINDER = 309, /* IDL_FINDER */ - IDL_GETRAISES = 310, /* IDL_GETRAISES */ - IDL_HOME = 311, /* IDL_HOME */ - IDL_IMPORT = 312, /* IDL_IMPORT */ - IDL_MULTIPLE = 313, /* IDL_MULTIPLE */ - IDL_PRIMARYKEY = 314, /* IDL_PRIMARYKEY */ - IDL_PROVIDES = 315, /* IDL_PROVIDES */ - IDL_PUBLISHES = 316, /* IDL_PUBLISHES */ - IDL_SETRAISES = 317, /* IDL_SETRAISES */ - IDL_TYPEID = 318, /* IDL_TYPEID */ - IDL_TYPEPREFIX = 319, /* IDL_TYPEPREFIX */ - IDL_USES = 320, /* IDL_USES */ - IDL_MANAGES = 321, /* IDL_MANAGES */ - IDL_TYPENAME = 322, /* IDL_TYPENAME */ - IDL_PORT = 323, /* IDL_PORT */ - IDL_MIRRORPORT = 324, /* IDL_MIRRORPORT */ - IDL_PORTTYPE = 325, /* IDL_PORTTYPE */ - IDL_CONNECTOR = 326, /* IDL_CONNECTOR */ - IDL_ALIAS = 327, /* IDL_ALIAS */ - IDL_INTEGER_LITERAL = 328, /* IDL_INTEGER_LITERAL */ - IDL_UINTEGER_LITERAL = 329, /* IDL_UINTEGER_LITERAL */ - IDL_STRING_LITERAL = 330, /* IDL_STRING_LITERAL */ - IDL_CHARACTER_LITERAL = 331, /* IDL_CHARACTER_LITERAL */ - IDL_FLOATING_PT_LITERAL = 332, /* IDL_FLOATING_PT_LITERAL */ - IDL_FIXED_PT_LITERAL = 333, /* IDL_FIXED_PT_LITERAL */ - IDL_TRUETOK = 334, /* IDL_TRUETOK */ - IDL_FALSETOK = 335, /* IDL_FALSETOK */ - IDL_SCOPE_DELIMITOR = 336, /* IDL_SCOPE_DELIMITOR */ - IDL_LEFT_SHIFT = 337, /* IDL_LEFT_SHIFT */ - IDL_RIGHT_SHIFT = 338, /* IDL_RIGHT_SHIFT */ - IDL_WCHAR_LITERAL = 339, /* IDL_WCHAR_LITERAL */ - IDL_WSTRING_LITERAL = 340, /* IDL_WSTRING_LITERAL */ - IDL_ANNOTATION_DECL = 341, /* IDL_ANNOTATION_DECL */ - IDL_ANNOTATION_SYMBOL = 342 /* IDL_ANNOTATION_SYMBOL */ - }; - typedef enum yytokentype yytoken_kind_t; -#endif - -/* Value type. */ -#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED -union YYSTYPE -{ -#line 163 "fe/idl.ypp" - - AST_Decl *dcval; /* Decl value */ - UTL_StrList *slval; /* String list */ - UTL_NameList *nlval; /* Name list */ - UTL_ExprList *elval; /* Expression list */ - UTL_LabelList *llval; /* Label list */ - UTL_DeclList *dlval; /* Declaration list */ - FE_InterfaceHeader *ihval; /* Interface header */ - FE_OBVHeader *vhval; /* Valuetype header */ - FE_ComponentHeader *chval; /* Component header */ - FE_HomeHeader *hhval; /* Home header */ - AST_Expression *exval; /* Expression value */ - AST_UnionLabel *ulval; /* Union label */ - AST_Field *ffval; /* Field value */ - AST_Field::Visibility vival; /* N/A, pub or priv */ - AST_Expression::ExprType etval; /* Expression type */ - AST_Argument::Direction dival; /* Argument direction */ - AST_Operation::Flags ofval; /* Operation flags */ - FE_Declarator *deval; /* Declarator value */ - ACE_CDR::Boolean bval; /* Boolean value */ - ACE_CDR::LongLong ival; /* Long Long value */ - ACE_CDR::ULongLong uival; /* Unsigned long long */ - ACE_CDR::Double dval; /* Double value */ - ACE_CDR::Float fval; /* Float value */ - ACE_CDR::Char cval; /* Char value */ - ACE_CDR::WChar wcval; /* WChar value */ - ACE_CDR::Fixed fixval; /* Fixed point value */ - UTL_String *sval; /* String value */ - char *wsval; /* WString value */ - char *strval; /* char * value */ - Identifier *idval; /* Identifier */ - UTL_IdList *idlist; /* Identifier list */ - AST_Decl::NodeType ntval; /* Node type value */ - FE_Utils::T_Param_Info *pival; /* Template interface param */ - FE_Utils::T_PARAMLIST_INFO *plval; /* List of template params */ - FE_Utils::T_ARGLIST *alval; /* List of template args */ - AST_Annotation_Appl *annotation_val; - AST_Annotation_Appls *annotations_val; - AST_Annotation_Appl::Param *annotation_param_val; - AST_Annotation_Appl::Params *annotation_params_val; - AST_Annotation_Decl *annotation_decl_val; - AST_Decls *decls_val; - Decl_Annotations_Pair *decl_annotations_pair_val; - -#line 347 "fe/idl.tab.cpp" - -}; -typedef union YYSTYPE YYSTYPE; -# define YYSTYPE_IS_TRIVIAL 1 -# define YYSTYPE_IS_DECLARED 1 -#endif - - -extern YYSTYPE tao_yylval; - -int tao_yyparse (void); - -#endif /* !YY_TAO_YY_FE_IDL_TAB_HPP_INCLUDED */ +#include "idl.tab.hpp" /* Symbol kind. */ enum yysymbol_kind_t { @@ -442,432 +270,440 @@ enum yysymbol_kind_t YYSYMBOL_IDL_FIXED_PT_LITERAL = 78, /* IDL_FIXED_PT_LITERAL */ YYSYMBOL_IDL_TRUETOK = 79, /* IDL_TRUETOK */ YYSYMBOL_IDL_FALSETOK = 80, /* IDL_FALSETOK */ - YYSYMBOL_IDL_SCOPE_DELIMITOR = 81, /* IDL_SCOPE_DELIMITOR */ - YYSYMBOL_IDL_LEFT_SHIFT = 82, /* IDL_LEFT_SHIFT */ - YYSYMBOL_IDL_RIGHT_SHIFT = 83, /* IDL_RIGHT_SHIFT */ - YYSYMBOL_IDL_WCHAR_LITERAL = 84, /* IDL_WCHAR_LITERAL */ - YYSYMBOL_IDL_WSTRING_LITERAL = 85, /* IDL_WSTRING_LITERAL */ - YYSYMBOL_IDL_ANNOTATION_DECL = 86, /* IDL_ANNOTATION_DECL */ - YYSYMBOL_IDL_ANNOTATION_SYMBOL = 87, /* IDL_ANNOTATION_SYMBOL */ - YYSYMBOL_88_ = 88, /* ';' */ - YYSYMBOL_89_ = 89, /* '{' */ - YYSYMBOL_90_ = 90, /* '}' */ - YYSYMBOL_91_ = 91, /* '<' */ - YYSYMBOL_92_ = 92, /* '>' */ - YYSYMBOL_93_ = 93, /* ':' */ - YYSYMBOL_94_ = 94, /* ',' */ - YYSYMBOL_95_ = 95, /* '=' */ - YYSYMBOL_96_ = 96, /* '|' */ - YYSYMBOL_97_ = 97, /* '^' */ - YYSYMBOL_98_ = 98, /* '&' */ - YYSYMBOL_99_ = 99, /* '+' */ - YYSYMBOL_100_ = 100, /* '-' */ - YYSYMBOL_101_ = 101, /* '*' */ - YYSYMBOL_102_ = 102, /* '/' */ - YYSYMBOL_103_ = 103, /* '%' */ - YYSYMBOL_104_ = 104, /* '~' */ - YYSYMBOL_105_ = 105, /* '(' */ - YYSYMBOL_106_ = 106, /* ')' */ - YYSYMBOL_107_ = 107, /* '[' */ - YYSYMBOL_108_ = 108, /* ']' */ - YYSYMBOL_YYACCEPT = 109, /* $accept */ - YYSYMBOL_start = 110, /* start */ - YYSYMBOL_definitions = 111, /* definitions */ - YYSYMBOL_at_least_one_definition = 112, /* at_least_one_definition */ - YYSYMBOL_definition = 113, /* definition */ - YYSYMBOL_fixed_definition = 114, /* fixed_definition */ - YYSYMBOL_115_1 = 115, /* $@1 */ - YYSYMBOL_116_2 = 116, /* $@2 */ - YYSYMBOL_117_3 = 117, /* $@3 */ - YYSYMBOL_118_4 = 118, /* $@4 */ - YYSYMBOL_119_5 = 119, /* $@5 */ - YYSYMBOL_120_6 = 120, /* $@6 */ - YYSYMBOL_121_7 = 121, /* $@7 */ - YYSYMBOL_122_8 = 122, /* $@8 */ - YYSYMBOL_123_9 = 123, /* $@9 */ - YYSYMBOL_124_10 = 124, /* $@10 */ - YYSYMBOL_125_11 = 125, /* $@11 */ - YYSYMBOL_126_12 = 126, /* $@12 */ - YYSYMBOL_127_13 = 127, /* $@13 */ - YYSYMBOL_128_14 = 128, /* $@14 */ - YYSYMBOL_129_15 = 129, /* $@15 */ - YYSYMBOL_module_header = 130, /* module_header */ - YYSYMBOL_131_16 = 131, /* $@16 */ - YYSYMBOL_module = 132, /* module */ - YYSYMBOL_133_17 = 133, /* @17 */ - YYSYMBOL_134_18 = 134, /* $@18 */ - YYSYMBOL_135_19 = 135, /* $@19 */ - YYSYMBOL_template_module_header = 136, /* template_module_header */ - YYSYMBOL_template_module = 137, /* template_module */ - YYSYMBOL_138_20 = 138, /* $@20 */ - YYSYMBOL_139_21 = 139, /* $@21 */ - YYSYMBOL_140_22 = 140, /* $@22 */ - YYSYMBOL_141_23 = 141, /* $@23 */ - YYSYMBOL_142_24 = 142, /* $@24 */ - YYSYMBOL_at_least_one_tpl_definition = 143, /* at_least_one_tpl_definition */ - YYSYMBOL_tpl_definitions = 144, /* tpl_definitions */ - YYSYMBOL_tpl_definition = 145, /* tpl_definition */ - YYSYMBOL_template_module_ref = 146, /* template_module_ref */ - YYSYMBOL_147_25 = 147, /* $@25 */ - YYSYMBOL_148_26 = 148, /* $@26 */ - YYSYMBOL_template_module_inst = 149, /* template_module_inst */ - YYSYMBOL_150_27 = 150, /* $@27 */ - YYSYMBOL_151_28 = 151, /* $@28 */ - YYSYMBOL_interface_def = 152, /* interface_def */ - YYSYMBOL_interface = 153, /* interface */ - YYSYMBOL_154_29 = 154, /* $@29 */ - YYSYMBOL_155_30 = 155, /* $@30 */ - YYSYMBOL_156_31 = 156, /* $@31 */ - YYSYMBOL_interface_decl = 157, /* interface_decl */ - YYSYMBOL_158_32 = 158, /* $@32 */ - YYSYMBOL_interface_header = 159, /* interface_header */ - YYSYMBOL_inheritance_spec = 160, /* inheritance_spec */ - YYSYMBOL_161_33 = 161, /* $@33 */ - YYSYMBOL_value_def = 162, /* value_def */ - YYSYMBOL_valuetype = 163, /* valuetype */ - YYSYMBOL_value_concrete_decl = 164, /* value_concrete_decl */ - YYSYMBOL_165_34 = 165, /* @34 */ - YYSYMBOL_166_35 = 166, /* $@35 */ - YYSYMBOL_167_36 = 167, /* $@36 */ - YYSYMBOL_value_abs_decl = 168, /* value_abs_decl */ - YYSYMBOL_169_37 = 169, /* $@37 */ - YYSYMBOL_170_38 = 170, /* $@38 */ - YYSYMBOL_171_39 = 171, /* $@39 */ - YYSYMBOL_value_header = 172, /* value_header */ - YYSYMBOL_173_40 = 173, /* $@40 */ - YYSYMBOL_value_decl = 174, /* value_decl */ - YYSYMBOL_175_41 = 175, /* $@41 */ - YYSYMBOL_opt_truncatable = 176, /* opt_truncatable */ - YYSYMBOL_supports_spec = 177, /* supports_spec */ - YYSYMBOL_value_forward_decl = 178, /* value_forward_decl */ - YYSYMBOL_value_box_decl = 179, /* value_box_decl */ - YYSYMBOL_value_elements = 180, /* value_elements */ - YYSYMBOL_value_element = 181, /* value_element */ - YYSYMBOL_182_42 = 182, /* @42 */ - YYSYMBOL_visibility = 183, /* visibility */ - YYSYMBOL_state_member = 184, /* state_member */ - YYSYMBOL_exports = 185, /* exports */ - YYSYMBOL_at_least_one_export = 186, /* at_least_one_export */ - YYSYMBOL_export = 187, /* export */ - YYSYMBOL_188_43 = 188, /* $@43 */ - YYSYMBOL_189_44 = 189, /* $@44 */ - YYSYMBOL_190_45 = 190, /* $@45 */ - YYSYMBOL_191_46 = 191, /* $@46 */ - YYSYMBOL_192_47 = 192, /* $@47 */ - YYSYMBOL_193_48 = 193, /* $@48 */ - YYSYMBOL_194_49 = 194, /* $@49 */ - YYSYMBOL_195_50 = 195, /* $@50 */ - YYSYMBOL_at_least_one_scoped_name = 196, /* at_least_one_scoped_name */ - YYSYMBOL_scoped_names = 197, /* scoped_names */ - YYSYMBOL_198_51 = 198, /* $@51 */ - YYSYMBOL_scoped_name = 199, /* scoped_name */ - YYSYMBOL_200_52 = 200, /* $@52 */ - YYSYMBOL_201_53 = 201, /* $@53 */ - YYSYMBOL_id = 202, /* id */ - YYSYMBOL_defining_id = 203, /* defining_id */ - YYSYMBOL_interface_forward = 204, /* interface_forward */ - YYSYMBOL_const_dcl = 205, /* const_dcl */ - YYSYMBOL_206_54 = 206, /* $@54 */ - YYSYMBOL_207_55 = 207, /* $@55 */ - YYSYMBOL_208_56 = 208, /* $@56 */ - YYSYMBOL_209_57 = 209, /* $@57 */ - YYSYMBOL_const_type = 210, /* const_type */ - YYSYMBOL_expression = 211, /* expression */ - YYSYMBOL_const_expr = 212, /* const_expr */ - YYSYMBOL_or_expr = 213, /* or_expr */ - YYSYMBOL_xor_expr = 214, /* xor_expr */ - YYSYMBOL_and_expr = 215, /* and_expr */ - YYSYMBOL_shift_expr = 216, /* shift_expr */ - YYSYMBOL_add_expr = 217, /* add_expr */ - YYSYMBOL_mult_expr = 218, /* mult_expr */ - YYSYMBOL_unary_expr = 219, /* unary_expr */ - YYSYMBOL_primary_expr = 220, /* primary_expr */ - YYSYMBOL_literal = 221, /* literal */ - YYSYMBOL_positive_int_expr = 222, /* positive_int_expr */ - YYSYMBOL_annotation_dcl = 223, /* annotation_dcl */ - YYSYMBOL_224_58 = 224, /* $@58 */ - YYSYMBOL_annotation_body = 225, /* annotation_body */ - YYSYMBOL_annotation_statement = 226, /* annotation_statement */ - YYSYMBOL_227_59 = 227, /* $@59 */ - YYSYMBOL_annotation_member_type = 228, /* annotation_member_type */ - YYSYMBOL_annotation_member = 229, /* annotation_member */ - YYSYMBOL_annotation_member_default = 230, /* annotation_member_default */ - YYSYMBOL_at_least_one_annotation = 231, /* at_least_one_annotation */ - YYSYMBOL_annotations_maybe = 232, /* annotations_maybe */ - YYSYMBOL_annotation_appl = 233, /* annotation_appl */ - YYSYMBOL_234_60 = 234, /* @60 */ - YYSYMBOL_annotation_appl_params_maybe = 235, /* annotation_appl_params_maybe */ - YYSYMBOL_annotation_appl_params = 236, /* annotation_appl_params */ - YYSYMBOL_named_annotation_appl_params = 237, /* named_annotation_appl_params */ - YYSYMBOL_more_named_annotation_appl_params = 238, /* more_named_annotation_appl_params */ - YYSYMBOL_named_annotation_appl_param = 239, /* named_annotation_appl_param */ - YYSYMBOL_type_dcl = 240, /* type_dcl */ - YYSYMBOL_241_61 = 241, /* $@61 */ - YYSYMBOL_type_declarator = 242, /* type_declarator */ - YYSYMBOL_243_62 = 243, /* $@62 */ - YYSYMBOL_type_spec = 244, /* type_spec */ - YYSYMBOL_simple_type_spec = 245, /* simple_type_spec */ - YYSYMBOL_base_type_spec = 246, /* base_type_spec */ - YYSYMBOL_template_type_spec = 247, /* template_type_spec */ - YYSYMBOL_constructed_type_spec = 248, /* constructed_type_spec */ - YYSYMBOL_constructed_forward_type_spec = 249, /* constructed_forward_type_spec */ - YYSYMBOL_at_least_one_declarator = 250, /* at_least_one_declarator */ - YYSYMBOL_declarators = 251, /* declarators */ - YYSYMBOL_252_63 = 252, /* $@63 */ - YYSYMBOL_declarator = 253, /* declarator */ - YYSYMBOL_at_least_one_simple_declarator = 254, /* at_least_one_simple_declarator */ - YYSYMBOL_simple_declarators = 255, /* simple_declarators */ - YYSYMBOL_256_64 = 256, /* $@64 */ - YYSYMBOL_simple_declarator = 257, /* simple_declarator */ - YYSYMBOL_complex_declarator = 258, /* complex_declarator */ - YYSYMBOL_integer_type = 259, /* integer_type */ - YYSYMBOL_signed_int = 260, /* signed_int */ - YYSYMBOL_unsigned_int = 261, /* unsigned_int */ - YYSYMBOL_floating_pt_type = 262, /* floating_pt_type */ - YYSYMBOL_fixed_type = 263, /* fixed_type */ - YYSYMBOL_char_type = 264, /* char_type */ - YYSYMBOL_octet_type = 265, /* octet_type */ - YYSYMBOL_boolean_type = 266, /* boolean_type */ - YYSYMBOL_any_type = 267, /* any_type */ - YYSYMBOL_object_type = 268, /* object_type */ - YYSYMBOL_struct_decl = 269, /* struct_decl */ - YYSYMBOL_270_65 = 270, /* $@65 */ - YYSYMBOL_struct_type = 271, /* struct_type */ - YYSYMBOL_272_66 = 272, /* $@66 */ - YYSYMBOL_273_67 = 273, /* $@67 */ - YYSYMBOL_274_68 = 274, /* $@68 */ - YYSYMBOL_at_least_one_member = 275, /* at_least_one_member */ - YYSYMBOL_members = 276, /* members */ - YYSYMBOL_member = 277, /* member */ - YYSYMBOL_member_i = 278, /* member_i */ - YYSYMBOL_279_69 = 279, /* $@69 */ - YYSYMBOL_280_70 = 280, /* $@70 */ - YYSYMBOL_281_71 = 281, /* $@71 */ - YYSYMBOL_union_decl = 282, /* union_decl */ - YYSYMBOL_283_72 = 283, /* $@72 */ - YYSYMBOL_union_type = 284, /* union_type */ - YYSYMBOL_285_73 = 285, /* $@73 */ - YYSYMBOL_286_74 = 286, /* $@74 */ - YYSYMBOL_287_75 = 287, /* $@75 */ - YYSYMBOL_288_76 = 288, /* $@76 */ - YYSYMBOL_289_77 = 289, /* $@77 */ - YYSYMBOL_290_78 = 290, /* $@78 */ - YYSYMBOL_switch_type_spec = 291, /* switch_type_spec */ - YYSYMBOL_at_least_one_case_branch = 292, /* at_least_one_case_branch */ - YYSYMBOL_case_branches = 293, /* case_branches */ - YYSYMBOL_case_branch = 294, /* case_branch */ - YYSYMBOL_295_79 = 295, /* $@79 */ - YYSYMBOL_296_80 = 296, /* $@80 */ - YYSYMBOL_297_81 = 297, /* $@81 */ - YYSYMBOL_at_least_one_case_label = 298, /* at_least_one_case_label */ - YYSYMBOL_case_labels = 299, /* case_labels */ - YYSYMBOL_case_label = 300, /* case_label */ - YYSYMBOL_301_82 = 301, /* $@82 */ - YYSYMBOL_302_83 = 302, /* $@83 */ - YYSYMBOL_303_84 = 303, /* $@84 */ - YYSYMBOL_element_spec = 304, /* element_spec */ - YYSYMBOL_305_85 = 305, /* $@85 */ - YYSYMBOL_struct_forward_type = 306, /* struct_forward_type */ - YYSYMBOL_union_forward_type = 307, /* union_forward_type */ - YYSYMBOL_enum_type = 308, /* enum_type */ - YYSYMBOL_309_86 = 309, /* $@86 */ - YYSYMBOL_310_87 = 310, /* $@87 */ - YYSYMBOL_311_88 = 311, /* $@88 */ - YYSYMBOL_312_89 = 312, /* $@89 */ - YYSYMBOL_at_least_one_enumerator = 313, /* at_least_one_enumerator */ - YYSYMBOL_enumerators = 314, /* enumerators */ - YYSYMBOL_315_90 = 315, /* $@90 */ - YYSYMBOL_enumerator = 316, /* enumerator */ - YYSYMBOL_sequence_type_spec = 317, /* sequence_type_spec */ - YYSYMBOL_318_91 = 318, /* $@91 */ - YYSYMBOL_319_92 = 319, /* $@92 */ - YYSYMBOL_seq_head = 320, /* seq_head */ - YYSYMBOL_321_93 = 321, /* $@93 */ - YYSYMBOL_322_94 = 322, /* $@94 */ - YYSYMBOL_fixed_type_spec = 323, /* fixed_type_spec */ - YYSYMBOL_string_type_spec = 324, /* string_type_spec */ - YYSYMBOL_325_95 = 325, /* $@95 */ - YYSYMBOL_326_96 = 326, /* $@96 */ - YYSYMBOL_string_head = 327, /* string_head */ - YYSYMBOL_wstring_type_spec = 328, /* wstring_type_spec */ - YYSYMBOL_329_97 = 329, /* $@97 */ - YYSYMBOL_330_98 = 330, /* $@98 */ - YYSYMBOL_wstring_head = 331, /* wstring_head */ - YYSYMBOL_array_declarator = 332, /* array_declarator */ - YYSYMBOL_333_99 = 333, /* $@99 */ - YYSYMBOL_at_least_one_array_dim = 334, /* at_least_one_array_dim */ - YYSYMBOL_array_dims = 335, /* array_dims */ - YYSYMBOL_array_dim = 336, /* array_dim */ - YYSYMBOL_337_100 = 337, /* $@100 */ - YYSYMBOL_338_101 = 338, /* $@101 */ - YYSYMBOL_attribute = 339, /* attribute */ - YYSYMBOL_attribute_readonly = 340, /* attribute_readonly */ - YYSYMBOL_341_102 = 341, /* $@102 */ - YYSYMBOL_342_103 = 342, /* $@103 */ - YYSYMBOL_343_104 = 343, /* $@104 */ - YYSYMBOL_344_105 = 344, /* $@105 */ - YYSYMBOL_attribute_readwrite = 345, /* attribute_readwrite */ - YYSYMBOL_346_106 = 346, /* $@106 */ - YYSYMBOL_347_107 = 347, /* $@107 */ - YYSYMBOL_348_108 = 348, /* $@108 */ - YYSYMBOL_349_109 = 349, /* $@109 */ - YYSYMBOL_exception = 350, /* exception */ - YYSYMBOL_351_110 = 351, /* $@110 */ - YYSYMBOL_352_111 = 352, /* @111 */ - YYSYMBOL_353_112 = 353, /* $@112 */ - YYSYMBOL_354_113 = 354, /* $@113 */ - YYSYMBOL_operation = 355, /* operation */ - YYSYMBOL_356_114 = 356, /* $@114 */ - YYSYMBOL_357_115 = 357, /* $@115 */ - YYSYMBOL_358_116 = 358, /* $@116 */ - YYSYMBOL_359_117 = 359, /* $@117 */ - YYSYMBOL_opt_op_attribute = 360, /* opt_op_attribute */ - YYSYMBOL_op_type_spec = 361, /* op_type_spec */ - YYSYMBOL_init_decl = 362, /* init_decl */ - YYSYMBOL_363_118 = 363, /* $@118 */ - YYSYMBOL_364_119 = 364, /* @119 */ - YYSYMBOL_365_120 = 365, /* $@120 */ - YYSYMBOL_init_parameter_list = 366, /* init_parameter_list */ - YYSYMBOL_367_121 = 367, /* $@121 */ - YYSYMBOL_368_122 = 368, /* $@122 */ - YYSYMBOL_at_least_one_in_parameter = 369, /* at_least_one_in_parameter */ - YYSYMBOL_in_parameters = 370, /* in_parameters */ - YYSYMBOL_371_123 = 371, /* $@123 */ - YYSYMBOL_in_parameter = 372, /* in_parameter */ - YYSYMBOL_373_124 = 373, /* $@124 */ - YYSYMBOL_374_125 = 374, /* $@125 */ - YYSYMBOL_parameter_list = 375, /* parameter_list */ - YYSYMBOL_376_126 = 376, /* $@126 */ - YYSYMBOL_377_127 = 377, /* $@127 */ - YYSYMBOL_at_least_one_parameter = 378, /* at_least_one_parameter */ - YYSYMBOL_parameters = 379, /* parameters */ - YYSYMBOL_380_128 = 380, /* $@128 */ - YYSYMBOL_parameter = 381, /* parameter */ - YYSYMBOL_382_129 = 382, /* $@129 */ - YYSYMBOL_383_130 = 383, /* $@130 */ - YYSYMBOL_param_type_spec = 384, /* param_type_spec */ - YYSYMBOL_direction = 385, /* direction */ - YYSYMBOL_opt_raises = 386, /* opt_raises */ - YYSYMBOL_387_131 = 387, /* $@131 */ - YYSYMBOL_388_132 = 388, /* $@132 */ - YYSYMBOL_opt_getraises = 389, /* opt_getraises */ - YYSYMBOL_390_133 = 390, /* $@133 */ - YYSYMBOL_391_134 = 391, /* $@134 */ - YYSYMBOL_opt_setraises = 392, /* opt_setraises */ - YYSYMBOL_393_135 = 393, /* $@135 */ - YYSYMBOL_394_136 = 394, /* $@136 */ - YYSYMBOL_opt_context = 395, /* opt_context */ - YYSYMBOL_396_137 = 396, /* $@137 */ - YYSYMBOL_397_138 = 397, /* $@138 */ - YYSYMBOL_at_least_one_string_literal = 398, /* at_least_one_string_literal */ - YYSYMBOL_string_literals = 399, /* string_literals */ - YYSYMBOL_400_139 = 400, /* $@139 */ - YYSYMBOL_typeid_dcl = 401, /* typeid_dcl */ - YYSYMBOL_typeprefix_dcl = 402, /* typeprefix_dcl */ - YYSYMBOL_component = 403, /* component */ - YYSYMBOL_component_forward_decl = 404, /* component_forward_decl */ - YYSYMBOL_component_decl = 405, /* component_decl */ - YYSYMBOL_406_140 = 406, /* @140 */ - YYSYMBOL_407_141 = 407, /* $@141 */ - YYSYMBOL_408_142 = 408, /* $@142 */ - YYSYMBOL_component_header = 409, /* component_header */ - YYSYMBOL_410_143 = 410, /* $@143 */ - YYSYMBOL_411_144 = 411, /* $@144 */ - YYSYMBOL_component_inheritance_spec = 412, /* component_inheritance_spec */ - YYSYMBOL_413_145 = 413, /* $@145 */ - YYSYMBOL_component_exports = 414, /* component_exports */ - YYSYMBOL_component_export = 415, /* component_export */ - YYSYMBOL_416_146 = 416, /* $@146 */ - YYSYMBOL_417_147 = 417, /* $@147 */ - YYSYMBOL_418_148 = 418, /* $@148 */ - YYSYMBOL_419_149 = 419, /* $@149 */ - YYSYMBOL_420_150 = 420, /* $@150 */ - YYSYMBOL_421_151 = 421, /* $@151 */ - YYSYMBOL_422_152 = 422, /* $@152 */ - YYSYMBOL_provides_decl = 423, /* provides_decl */ - YYSYMBOL_interface_type = 424, /* interface_type */ - YYSYMBOL_uses_decl = 425, /* uses_decl */ - YYSYMBOL_uses_opt_multiple = 426, /* uses_opt_multiple */ - YYSYMBOL_opt_multiple = 427, /* opt_multiple */ - YYSYMBOL_emits_decl = 428, /* emits_decl */ - YYSYMBOL_publishes_decl = 429, /* publishes_decl */ - YYSYMBOL_consumes_decl = 430, /* consumes_decl */ - YYSYMBOL_home_decl = 431, /* home_decl */ - YYSYMBOL_432_153 = 432, /* $@153 */ - YYSYMBOL_home_header = 433, /* home_header */ - YYSYMBOL_434_154 = 434, /* $@154 */ - YYSYMBOL_435_155 = 435, /* $@155 */ - YYSYMBOL_436_156 = 436, /* $@156 */ - YYSYMBOL_437_157 = 437, /* $@157 */ - YYSYMBOL_438_158 = 438, /* $@158 */ - YYSYMBOL_439_159 = 439, /* $@159 */ - YYSYMBOL_home_inheritance_spec = 440, /* home_inheritance_spec */ - YYSYMBOL_441_160 = 441, /* $@160 */ - YYSYMBOL_primary_key_spec = 442, /* primary_key_spec */ - YYSYMBOL_home_body = 443, /* home_body */ - YYSYMBOL_444_161 = 444, /* $@161 */ - YYSYMBOL_445_162 = 445, /* $@162 */ - YYSYMBOL_home_exports = 446, /* home_exports */ - YYSYMBOL_home_export = 447, /* home_export */ - YYSYMBOL_448_163 = 448, /* $@163 */ - YYSYMBOL_449_164 = 449, /* $@164 */ - YYSYMBOL_factory_decl = 450, /* factory_decl */ - YYSYMBOL_451_165 = 451, /* $@165 */ - YYSYMBOL_452_166 = 452, /* $@166 */ - YYSYMBOL_finder_decl = 453, /* finder_decl */ - YYSYMBOL_454_167 = 454, /* $@167 */ - YYSYMBOL_455_168 = 455, /* $@168 */ - YYSYMBOL_event = 456, /* event */ - YYSYMBOL_event_forward_decl = 457, /* event_forward_decl */ - YYSYMBOL_event_concrete_forward_decl = 458, /* event_concrete_forward_decl */ - YYSYMBOL_event_abs_forward_decl = 459, /* event_abs_forward_decl */ - YYSYMBOL_event_abs_decl = 460, /* event_abs_decl */ - YYSYMBOL_461_169 = 461, /* $@169 */ - YYSYMBOL_462_170 = 462, /* $@170 */ - YYSYMBOL_463_171 = 463, /* $@171 */ - YYSYMBOL_event_abs_header = 464, /* event_abs_header */ - YYSYMBOL_event_custom_header = 465, /* event_custom_header */ - YYSYMBOL_event_plain_header = 466, /* event_plain_header */ - YYSYMBOL_event_rest_of_header = 467, /* event_rest_of_header */ - YYSYMBOL_468_172 = 468, /* $@172 */ - YYSYMBOL_event_decl = 469, /* event_decl */ - YYSYMBOL_470_173 = 470, /* @173 */ - YYSYMBOL_471_174 = 471, /* $@174 */ - YYSYMBOL_472_175 = 472, /* $@175 */ - YYSYMBOL_event_header = 473, /* event_header */ - YYSYMBOL_formal_parameter_type = 474, /* formal_parameter_type */ - YYSYMBOL_at_least_one_formal_parameter = 475, /* at_least_one_formal_parameter */ - YYSYMBOL_formal_parameters = 476, /* formal_parameters */ - YYSYMBOL_formal_parameter = 477, /* formal_parameter */ - YYSYMBOL_at_least_one_formal_parameter_name = 478, /* at_least_one_formal_parameter_name */ - YYSYMBOL_formal_parameter_names = 479, /* formal_parameter_names */ - YYSYMBOL_formal_parameter_name = 480, /* formal_parameter_name */ - YYSYMBOL_porttype_decl = 481, /* porttype_decl */ - YYSYMBOL_482_176 = 482, /* $@176 */ - YYSYMBOL_483_177 = 483, /* @177 */ - YYSYMBOL_484_178 = 484, /* $@178 */ - YYSYMBOL_485_179 = 485, /* $@179 */ - YYSYMBOL_at_least_one_port_export = 486, /* at_least_one_port_export */ - YYSYMBOL_port_exports = 487, /* port_exports */ - YYSYMBOL_port_export = 488, /* port_export */ - YYSYMBOL_489_180 = 489, /* $@180 */ - YYSYMBOL_extended_port_decl = 490, /* extended_port_decl */ - YYSYMBOL_at_least_one_actual_parameter = 491, /* at_least_one_actual_parameter */ - YYSYMBOL_actual_parameters = 492, /* actual_parameters */ - YYSYMBOL_actual_parameter = 493, /* actual_parameter */ - YYSYMBOL_connector_decl = 494, /* connector_decl */ - YYSYMBOL_connector_header = 495, /* connector_header */ - YYSYMBOL_496_181 = 496, /* $@181 */ - YYSYMBOL_497_182 = 497, /* $@182 */ - YYSYMBOL_connector_body = 498, /* connector_body */ - YYSYMBOL_499_183 = 499, /* $@183 */ - YYSYMBOL_500_184 = 500, /* $@184 */ - YYSYMBOL_connector_exports = 501, /* connector_exports */ - YYSYMBOL_connector_export = 502, /* connector_export */ - YYSYMBOL_503_185 = 503, /* $@185 */ - YYSYMBOL_504_186 = 504, /* $@186 */ - YYSYMBOL_505_187 = 505, /* $@187 */ - YYSYMBOL_506_188 = 506 /* $@188 */ + YYSYMBOL_IDL_INT8 = 81, /* IDL_INT8 */ + YYSYMBOL_IDL_UINT8 = 82, /* IDL_UINT8 */ + YYSYMBOL_IDL_INT16 = 83, /* IDL_INT16 */ + YYSYMBOL_IDL_UINT16 = 84, /* IDL_UINT16 */ + YYSYMBOL_IDL_INT32 = 85, /* IDL_INT32 */ + YYSYMBOL_IDL_UINT32 = 86, /* IDL_UINT32 */ + YYSYMBOL_IDL_INT64 = 87, /* IDL_INT64 */ + YYSYMBOL_IDL_UINT64 = 88, /* IDL_UINT64 */ + YYSYMBOL_IDL_SCOPE_DELIMITOR = 89, /* IDL_SCOPE_DELIMITOR */ + YYSYMBOL_IDL_LEFT_SHIFT = 90, /* IDL_LEFT_SHIFT */ + YYSYMBOL_IDL_RIGHT_SHIFT = 91, /* IDL_RIGHT_SHIFT */ + YYSYMBOL_IDL_WCHAR_LITERAL = 92, /* IDL_WCHAR_LITERAL */ + YYSYMBOL_IDL_WSTRING_LITERAL = 93, /* IDL_WSTRING_LITERAL */ + YYSYMBOL_IDL_ANNOTATION_DECL = 94, /* IDL_ANNOTATION_DECL */ + YYSYMBOL_IDL_ANNOTATION_SYMBOL = 95, /* IDL_ANNOTATION_SYMBOL */ + YYSYMBOL_96_ = 96, /* ';' */ + YYSYMBOL_97_ = 97, /* '{' */ + YYSYMBOL_98_ = 98, /* '}' */ + YYSYMBOL_99_ = 99, /* '<' */ + YYSYMBOL_100_ = 100, /* '>' */ + YYSYMBOL_101_ = 101, /* ':' */ + YYSYMBOL_102_ = 102, /* ',' */ + YYSYMBOL_103_ = 103, /* '=' */ + YYSYMBOL_104_ = 104, /* '|' */ + YYSYMBOL_105_ = 105, /* '^' */ + YYSYMBOL_106_ = 106, /* '&' */ + YYSYMBOL_107_ = 107, /* '+' */ + YYSYMBOL_108_ = 108, /* '-' */ + YYSYMBOL_109_ = 109, /* '*' */ + YYSYMBOL_110_ = 110, /* '/' */ + YYSYMBOL_111_ = 111, /* '%' */ + YYSYMBOL_112_ = 112, /* '~' */ + YYSYMBOL_113_ = 113, /* '(' */ + YYSYMBOL_114_ = 114, /* ')' */ + YYSYMBOL_115_ = 115, /* '[' */ + YYSYMBOL_116_ = 116, /* ']' */ + YYSYMBOL_YYACCEPT = 117, /* $accept */ + YYSYMBOL_start = 118, /* start */ + YYSYMBOL_definitions = 119, /* definitions */ + YYSYMBOL_at_least_one_definition = 120, /* at_least_one_definition */ + YYSYMBOL_definition = 121, /* definition */ + YYSYMBOL_fixed_definition = 122, /* fixed_definition */ + YYSYMBOL_123_1 = 123, /* $@1 */ + YYSYMBOL_124_2 = 124, /* $@2 */ + YYSYMBOL_125_3 = 125, /* $@3 */ + YYSYMBOL_126_4 = 126, /* $@4 */ + YYSYMBOL_127_5 = 127, /* $@5 */ + YYSYMBOL_128_6 = 128, /* $@6 */ + YYSYMBOL_129_7 = 129, /* $@7 */ + YYSYMBOL_130_8 = 130, /* $@8 */ + YYSYMBOL_131_9 = 131, /* $@9 */ + YYSYMBOL_132_10 = 132, /* $@10 */ + YYSYMBOL_133_11 = 133, /* $@11 */ + YYSYMBOL_134_12 = 134, /* $@12 */ + YYSYMBOL_135_13 = 135, /* $@13 */ + YYSYMBOL_136_14 = 136, /* $@14 */ + YYSYMBOL_137_15 = 137, /* $@15 */ + YYSYMBOL_module_header = 138, /* module_header */ + YYSYMBOL_139_16 = 139, /* $@16 */ + YYSYMBOL_module = 140, /* module */ + YYSYMBOL_141_17 = 141, /* @17 */ + YYSYMBOL_142_18 = 142, /* $@18 */ + YYSYMBOL_143_19 = 143, /* $@19 */ + YYSYMBOL_template_module_header = 144, /* template_module_header */ + YYSYMBOL_template_module = 145, /* template_module */ + YYSYMBOL_146_20 = 146, /* $@20 */ + YYSYMBOL_147_21 = 147, /* $@21 */ + YYSYMBOL_148_22 = 148, /* $@22 */ + YYSYMBOL_149_23 = 149, /* $@23 */ + YYSYMBOL_150_24 = 150, /* $@24 */ + YYSYMBOL_at_least_one_tpl_definition = 151, /* at_least_one_tpl_definition */ + YYSYMBOL_tpl_definitions = 152, /* tpl_definitions */ + YYSYMBOL_tpl_definition = 153, /* tpl_definition */ + YYSYMBOL_template_module_ref = 154, /* template_module_ref */ + YYSYMBOL_155_25 = 155, /* $@25 */ + YYSYMBOL_156_26 = 156, /* $@26 */ + YYSYMBOL_template_module_inst = 157, /* template_module_inst */ + YYSYMBOL_158_27 = 158, /* $@27 */ + YYSYMBOL_159_28 = 159, /* $@28 */ + YYSYMBOL_interface_def = 160, /* interface_def */ + YYSYMBOL_interface = 161, /* interface */ + YYSYMBOL_162_29 = 162, /* $@29 */ + YYSYMBOL_163_30 = 163, /* $@30 */ + YYSYMBOL_164_31 = 164, /* $@31 */ + YYSYMBOL_interface_decl = 165, /* interface_decl */ + YYSYMBOL_166_32 = 166, /* $@32 */ + YYSYMBOL_interface_header = 167, /* interface_header */ + YYSYMBOL_inheritance_spec = 168, /* inheritance_spec */ + YYSYMBOL_169_33 = 169, /* $@33 */ + YYSYMBOL_value_def = 170, /* value_def */ + YYSYMBOL_valuetype = 171, /* valuetype */ + YYSYMBOL_value_concrete_decl = 172, /* value_concrete_decl */ + YYSYMBOL_173_34 = 173, /* @34 */ + YYSYMBOL_174_35 = 174, /* $@35 */ + YYSYMBOL_175_36 = 175, /* $@36 */ + YYSYMBOL_value_abs_decl = 176, /* value_abs_decl */ + YYSYMBOL_177_37 = 177, /* $@37 */ + YYSYMBOL_178_38 = 178, /* $@38 */ + YYSYMBOL_179_39 = 179, /* $@39 */ + YYSYMBOL_value_header = 180, /* value_header */ + YYSYMBOL_181_40 = 181, /* $@40 */ + YYSYMBOL_value_decl = 182, /* value_decl */ + YYSYMBOL_183_41 = 183, /* $@41 */ + YYSYMBOL_opt_truncatable = 184, /* opt_truncatable */ + YYSYMBOL_supports_spec = 185, /* supports_spec */ + YYSYMBOL_value_forward_decl = 186, /* value_forward_decl */ + YYSYMBOL_value_box_decl = 187, /* value_box_decl */ + YYSYMBOL_value_elements = 188, /* value_elements */ + YYSYMBOL_value_element = 189, /* value_element */ + YYSYMBOL_190_42 = 190, /* @42 */ + YYSYMBOL_visibility = 191, /* visibility */ + YYSYMBOL_state_member = 192, /* state_member */ + YYSYMBOL_exports = 193, /* exports */ + YYSYMBOL_at_least_one_export = 194, /* at_least_one_export */ + YYSYMBOL_export = 195, /* export */ + YYSYMBOL_196_43 = 196, /* $@43 */ + YYSYMBOL_197_44 = 197, /* $@44 */ + YYSYMBOL_198_45 = 198, /* $@45 */ + YYSYMBOL_199_46 = 199, /* $@46 */ + YYSYMBOL_200_47 = 200, /* $@47 */ + YYSYMBOL_201_48 = 201, /* $@48 */ + YYSYMBOL_202_49 = 202, /* $@49 */ + YYSYMBOL_203_50 = 203, /* $@50 */ + YYSYMBOL_at_least_one_scoped_name = 204, /* at_least_one_scoped_name */ + YYSYMBOL_scoped_names = 205, /* scoped_names */ + YYSYMBOL_206_51 = 206, /* $@51 */ + YYSYMBOL_scoped_name = 207, /* scoped_name */ + YYSYMBOL_208_52 = 208, /* $@52 */ + YYSYMBOL_209_53 = 209, /* $@53 */ + YYSYMBOL_id = 210, /* id */ + YYSYMBOL_defining_id = 211, /* defining_id */ + YYSYMBOL_interface_forward = 212, /* interface_forward */ + YYSYMBOL_const_dcl = 213, /* const_dcl */ + YYSYMBOL_214_54 = 214, /* $@54 */ + YYSYMBOL_215_55 = 215, /* $@55 */ + YYSYMBOL_216_56 = 216, /* $@56 */ + YYSYMBOL_217_57 = 217, /* $@57 */ + YYSYMBOL_const_type = 218, /* const_type */ + YYSYMBOL_expression = 219, /* expression */ + YYSYMBOL_const_expr = 220, /* const_expr */ + YYSYMBOL_or_expr = 221, /* or_expr */ + YYSYMBOL_xor_expr = 222, /* xor_expr */ + YYSYMBOL_and_expr = 223, /* and_expr */ + YYSYMBOL_shift_expr = 224, /* shift_expr */ + YYSYMBOL_add_expr = 225, /* add_expr */ + YYSYMBOL_mult_expr = 226, /* mult_expr */ + YYSYMBOL_unary_expr = 227, /* unary_expr */ + YYSYMBOL_primary_expr = 228, /* primary_expr */ + YYSYMBOL_literal = 229, /* literal */ + YYSYMBOL_positive_int_expr = 230, /* positive_int_expr */ + YYSYMBOL_annotation_dcl = 231, /* annotation_dcl */ + YYSYMBOL_232_58 = 232, /* $@58 */ + YYSYMBOL_annotation_body = 233, /* annotation_body */ + YYSYMBOL_annotation_statement = 234, /* annotation_statement */ + YYSYMBOL_235_59 = 235, /* $@59 */ + YYSYMBOL_annotation_member_type = 236, /* annotation_member_type */ + YYSYMBOL_annotation_member = 237, /* annotation_member */ + YYSYMBOL_annotation_member_default = 238, /* annotation_member_default */ + YYSYMBOL_at_least_one_annotation = 239, /* at_least_one_annotation */ + YYSYMBOL_annotations_maybe = 240, /* annotations_maybe */ + YYSYMBOL_annotation_appl = 241, /* annotation_appl */ + YYSYMBOL_242_60 = 242, /* @60 */ + YYSYMBOL_annotation_appl_params_maybe = 243, /* annotation_appl_params_maybe */ + YYSYMBOL_annotation_appl_params = 244, /* annotation_appl_params */ + YYSYMBOL_named_annotation_appl_params = 245, /* named_annotation_appl_params */ + YYSYMBOL_more_named_annotation_appl_params = 246, /* more_named_annotation_appl_params */ + YYSYMBOL_named_annotation_appl_param = 247, /* named_annotation_appl_param */ + YYSYMBOL_type_dcl = 248, /* type_dcl */ + YYSYMBOL_249_61 = 249, /* $@61 */ + YYSYMBOL_type_declarator = 250, /* type_declarator */ + YYSYMBOL_251_62 = 251, /* $@62 */ + YYSYMBOL_type_spec = 252, /* type_spec */ + YYSYMBOL_simple_type_spec = 253, /* simple_type_spec */ + YYSYMBOL_base_type_spec = 254, /* base_type_spec */ + YYSYMBOL_template_type_spec = 255, /* template_type_spec */ + YYSYMBOL_constructed_type_spec = 256, /* constructed_type_spec */ + YYSYMBOL_constructed_forward_type_spec = 257, /* constructed_forward_type_spec */ + YYSYMBOL_at_least_one_declarator = 258, /* at_least_one_declarator */ + YYSYMBOL_declarators = 259, /* declarators */ + YYSYMBOL_260_63 = 260, /* $@63 */ + YYSYMBOL_declarator = 261, /* declarator */ + YYSYMBOL_at_least_one_simple_declarator = 262, /* at_least_one_simple_declarator */ + YYSYMBOL_simple_declarators = 263, /* simple_declarators */ + YYSYMBOL_264_64 = 264, /* $@64 */ + YYSYMBOL_simple_declarator = 265, /* simple_declarator */ + YYSYMBOL_complex_declarator = 266, /* complex_declarator */ + YYSYMBOL_integer_type = 267, /* integer_type */ + YYSYMBOL_signed_int = 268, /* signed_int */ + YYSYMBOL_unsigned_int = 269, /* unsigned_int */ + YYSYMBOL_floating_pt_type = 270, /* floating_pt_type */ + YYSYMBOL_fixed_type = 271, /* fixed_type */ + YYSYMBOL_char_type = 272, /* char_type */ + YYSYMBOL_octet_type = 273, /* octet_type */ + YYSYMBOL_boolean_type = 274, /* boolean_type */ + YYSYMBOL_any_type = 275, /* any_type */ + YYSYMBOL_object_type = 276, /* object_type */ + YYSYMBOL_struct_decl = 277, /* struct_decl */ + YYSYMBOL_278_65 = 278, /* $@65 */ + YYSYMBOL_struct_type = 279, /* struct_type */ + YYSYMBOL_280_66 = 280, /* $@66 */ + YYSYMBOL_281_67 = 281, /* $@67 */ + YYSYMBOL_282_68 = 282, /* $@68 */ + YYSYMBOL_at_least_one_member = 283, /* at_least_one_member */ + YYSYMBOL_members = 284, /* members */ + YYSYMBOL_member = 285, /* member */ + YYSYMBOL_member_i = 286, /* member_i */ + YYSYMBOL_287_69 = 287, /* $@69 */ + YYSYMBOL_288_70 = 288, /* $@70 */ + YYSYMBOL_289_71 = 289, /* $@71 */ + YYSYMBOL_union_decl = 290, /* union_decl */ + YYSYMBOL_291_72 = 291, /* $@72 */ + YYSYMBOL_union_type = 292, /* union_type */ + YYSYMBOL_293_73 = 293, /* $@73 */ + YYSYMBOL_294_74 = 294, /* $@74 */ + YYSYMBOL_295_75 = 295, /* $@75 */ + YYSYMBOL_296_76 = 296, /* $@76 */ + YYSYMBOL_297_77 = 297, /* $@77 */ + YYSYMBOL_298_78 = 298, /* $@78 */ + YYSYMBOL_switch_type_spec = 299, /* switch_type_spec */ + YYSYMBOL_at_least_one_case_branch = 300, /* at_least_one_case_branch */ + YYSYMBOL_case_branches = 301, /* case_branches */ + YYSYMBOL_case_branch = 302, /* case_branch */ + YYSYMBOL_303_79 = 303, /* $@79 */ + YYSYMBOL_304_80 = 304, /* $@80 */ + YYSYMBOL_305_81 = 305, /* $@81 */ + YYSYMBOL_at_least_one_case_label = 306, /* at_least_one_case_label */ + YYSYMBOL_case_labels = 307, /* case_labels */ + YYSYMBOL_case_label = 308, /* case_label */ + YYSYMBOL_309_82 = 309, /* $@82 */ + YYSYMBOL_310_83 = 310, /* $@83 */ + YYSYMBOL_311_84 = 311, /* $@84 */ + YYSYMBOL_element_spec = 312, /* element_spec */ + YYSYMBOL_313_85 = 313, /* $@85 */ + YYSYMBOL_struct_forward_type = 314, /* struct_forward_type */ + YYSYMBOL_union_forward_type = 315, /* union_forward_type */ + YYSYMBOL_enum_type = 316, /* enum_type */ + YYSYMBOL_317_86 = 317, /* $@86 */ + YYSYMBOL_318_87 = 318, /* $@87 */ + YYSYMBOL_319_88 = 319, /* $@88 */ + YYSYMBOL_320_89 = 320, /* $@89 */ + YYSYMBOL_at_least_one_enumerator = 321, /* at_least_one_enumerator */ + YYSYMBOL_enumerators = 322, /* enumerators */ + YYSYMBOL_323_90 = 323, /* $@90 */ + YYSYMBOL_enumerator = 324, /* enumerator */ + YYSYMBOL_sequence_type_spec = 325, /* sequence_type_spec */ + YYSYMBOL_326_91 = 326, /* $@91 */ + YYSYMBOL_327_92 = 327, /* $@92 */ + YYSYMBOL_seq_head = 328, /* seq_head */ + YYSYMBOL_329_93 = 329, /* $@93 */ + YYSYMBOL_330_94 = 330, /* $@94 */ + YYSYMBOL_fixed_type_spec = 331, /* fixed_type_spec */ + YYSYMBOL_string_type_spec = 332, /* string_type_spec */ + YYSYMBOL_333_95 = 333, /* $@95 */ + YYSYMBOL_334_96 = 334, /* $@96 */ + YYSYMBOL_string_head = 335, /* string_head */ + YYSYMBOL_wstring_type_spec = 336, /* wstring_type_spec */ + YYSYMBOL_337_97 = 337, /* $@97 */ + YYSYMBOL_338_98 = 338, /* $@98 */ + YYSYMBOL_wstring_head = 339, /* wstring_head */ + YYSYMBOL_array_declarator = 340, /* array_declarator */ + YYSYMBOL_341_99 = 341, /* $@99 */ + YYSYMBOL_at_least_one_array_dim = 342, /* at_least_one_array_dim */ + YYSYMBOL_array_dims = 343, /* array_dims */ + YYSYMBOL_array_dim = 344, /* array_dim */ + YYSYMBOL_345_100 = 345, /* $@100 */ + YYSYMBOL_346_101 = 346, /* $@101 */ + YYSYMBOL_attribute = 347, /* attribute */ + YYSYMBOL_attribute_readonly = 348, /* attribute_readonly */ + YYSYMBOL_349_102 = 349, /* $@102 */ + YYSYMBOL_350_103 = 350, /* $@103 */ + YYSYMBOL_351_104 = 351, /* $@104 */ + YYSYMBOL_352_105 = 352, /* $@105 */ + YYSYMBOL_attribute_readwrite = 353, /* attribute_readwrite */ + YYSYMBOL_354_106 = 354, /* $@106 */ + YYSYMBOL_355_107 = 355, /* $@107 */ + YYSYMBOL_356_108 = 356, /* $@108 */ + YYSYMBOL_357_109 = 357, /* $@109 */ + YYSYMBOL_exception = 358, /* exception */ + YYSYMBOL_359_110 = 359, /* $@110 */ + YYSYMBOL_360_111 = 360, /* @111 */ + YYSYMBOL_361_112 = 361, /* $@112 */ + YYSYMBOL_362_113 = 362, /* $@113 */ + YYSYMBOL_operation = 363, /* operation */ + YYSYMBOL_364_114 = 364, /* $@114 */ + YYSYMBOL_365_115 = 365, /* $@115 */ + YYSYMBOL_366_116 = 366, /* $@116 */ + YYSYMBOL_367_117 = 367, /* $@117 */ + YYSYMBOL_opt_op_attribute = 368, /* opt_op_attribute */ + YYSYMBOL_op_type_spec = 369, /* op_type_spec */ + YYSYMBOL_init_decl = 370, /* init_decl */ + YYSYMBOL_371_118 = 371, /* $@118 */ + YYSYMBOL_372_119 = 372, /* @119 */ + YYSYMBOL_373_120 = 373, /* $@120 */ + YYSYMBOL_init_parameter_list = 374, /* init_parameter_list */ + YYSYMBOL_375_121 = 375, /* $@121 */ + YYSYMBOL_376_122 = 376, /* $@122 */ + YYSYMBOL_at_least_one_in_parameter = 377, /* at_least_one_in_parameter */ + YYSYMBOL_in_parameters = 378, /* in_parameters */ + YYSYMBOL_379_123 = 379, /* $@123 */ + YYSYMBOL_in_parameter = 380, /* in_parameter */ + YYSYMBOL_381_124 = 381, /* $@124 */ + YYSYMBOL_382_125 = 382, /* $@125 */ + YYSYMBOL_parameter_list = 383, /* parameter_list */ + YYSYMBOL_384_126 = 384, /* $@126 */ + YYSYMBOL_385_127 = 385, /* $@127 */ + YYSYMBOL_at_least_one_parameter = 386, /* at_least_one_parameter */ + YYSYMBOL_parameters = 387, /* parameters */ + YYSYMBOL_388_128 = 388, /* $@128 */ + YYSYMBOL_parameter = 389, /* parameter */ + YYSYMBOL_390_129 = 390, /* $@129 */ + YYSYMBOL_391_130 = 391, /* $@130 */ + YYSYMBOL_param_type_spec = 392, /* param_type_spec */ + YYSYMBOL_direction = 393, /* direction */ + YYSYMBOL_opt_raises = 394, /* opt_raises */ + YYSYMBOL_395_131 = 395, /* $@131 */ + YYSYMBOL_396_132 = 396, /* $@132 */ + YYSYMBOL_opt_getraises = 397, /* opt_getraises */ + YYSYMBOL_398_133 = 398, /* $@133 */ + YYSYMBOL_399_134 = 399, /* $@134 */ + YYSYMBOL_opt_setraises = 400, /* opt_setraises */ + YYSYMBOL_401_135 = 401, /* $@135 */ + YYSYMBOL_402_136 = 402, /* $@136 */ + YYSYMBOL_opt_context = 403, /* opt_context */ + YYSYMBOL_404_137 = 404, /* $@137 */ + YYSYMBOL_405_138 = 405, /* $@138 */ + YYSYMBOL_at_least_one_string_literal = 406, /* at_least_one_string_literal */ + YYSYMBOL_string_literals = 407, /* string_literals */ + YYSYMBOL_408_139 = 408, /* $@139 */ + YYSYMBOL_typeid_dcl = 409, /* typeid_dcl */ + YYSYMBOL_typeprefix_dcl = 410, /* typeprefix_dcl */ + YYSYMBOL_component = 411, /* component */ + YYSYMBOL_component_forward_decl = 412, /* component_forward_decl */ + YYSYMBOL_component_decl = 413, /* component_decl */ + YYSYMBOL_414_140 = 414, /* @140 */ + YYSYMBOL_415_141 = 415, /* $@141 */ + YYSYMBOL_416_142 = 416, /* $@142 */ + YYSYMBOL_component_header = 417, /* component_header */ + YYSYMBOL_418_143 = 418, /* $@143 */ + YYSYMBOL_419_144 = 419, /* $@144 */ + YYSYMBOL_component_inheritance_spec = 420, /* component_inheritance_spec */ + YYSYMBOL_421_145 = 421, /* $@145 */ + YYSYMBOL_component_exports = 422, /* component_exports */ + YYSYMBOL_component_export = 423, /* component_export */ + YYSYMBOL_424_146 = 424, /* $@146 */ + YYSYMBOL_425_147 = 425, /* $@147 */ + YYSYMBOL_426_148 = 426, /* $@148 */ + YYSYMBOL_427_149 = 427, /* $@149 */ + YYSYMBOL_428_150 = 428, /* $@150 */ + YYSYMBOL_429_151 = 429, /* $@151 */ + YYSYMBOL_430_152 = 430, /* $@152 */ + YYSYMBOL_provides_decl = 431, /* provides_decl */ + YYSYMBOL_interface_type = 432, /* interface_type */ + YYSYMBOL_uses_decl = 433, /* uses_decl */ + YYSYMBOL_uses_opt_multiple = 434, /* uses_opt_multiple */ + YYSYMBOL_opt_multiple = 435, /* opt_multiple */ + YYSYMBOL_emits_decl = 436, /* emits_decl */ + YYSYMBOL_publishes_decl = 437, /* publishes_decl */ + YYSYMBOL_consumes_decl = 438, /* consumes_decl */ + YYSYMBOL_home_decl = 439, /* home_decl */ + YYSYMBOL_440_153 = 440, /* $@153 */ + YYSYMBOL_home_header = 441, /* home_header */ + YYSYMBOL_442_154 = 442, /* $@154 */ + YYSYMBOL_443_155 = 443, /* $@155 */ + YYSYMBOL_444_156 = 444, /* $@156 */ + YYSYMBOL_445_157 = 445, /* $@157 */ + YYSYMBOL_446_158 = 446, /* $@158 */ + YYSYMBOL_447_159 = 447, /* $@159 */ + YYSYMBOL_home_inheritance_spec = 448, /* home_inheritance_spec */ + YYSYMBOL_449_160 = 449, /* $@160 */ + YYSYMBOL_primary_key_spec = 450, /* primary_key_spec */ + YYSYMBOL_home_body = 451, /* home_body */ + YYSYMBOL_452_161 = 452, /* $@161 */ + YYSYMBOL_453_162 = 453, /* $@162 */ + YYSYMBOL_home_exports = 454, /* home_exports */ + YYSYMBOL_home_export = 455, /* home_export */ + YYSYMBOL_456_163 = 456, /* $@163 */ + YYSYMBOL_457_164 = 457, /* $@164 */ + YYSYMBOL_factory_decl = 458, /* factory_decl */ + YYSYMBOL_459_165 = 459, /* $@165 */ + YYSYMBOL_460_166 = 460, /* $@166 */ + YYSYMBOL_finder_decl = 461, /* finder_decl */ + YYSYMBOL_462_167 = 462, /* $@167 */ + YYSYMBOL_463_168 = 463, /* $@168 */ + YYSYMBOL_event = 464, /* event */ + YYSYMBOL_event_forward_decl = 465, /* event_forward_decl */ + YYSYMBOL_event_concrete_forward_decl = 466, /* event_concrete_forward_decl */ + YYSYMBOL_event_abs_forward_decl = 467, /* event_abs_forward_decl */ + YYSYMBOL_event_abs_decl = 468, /* event_abs_decl */ + YYSYMBOL_469_169 = 469, /* $@169 */ + YYSYMBOL_470_170 = 470, /* $@170 */ + YYSYMBOL_471_171 = 471, /* $@171 */ + YYSYMBOL_event_abs_header = 472, /* event_abs_header */ + YYSYMBOL_event_custom_header = 473, /* event_custom_header */ + YYSYMBOL_event_plain_header = 474, /* event_plain_header */ + YYSYMBOL_event_rest_of_header = 475, /* event_rest_of_header */ + YYSYMBOL_476_172 = 476, /* $@172 */ + YYSYMBOL_event_decl = 477, /* event_decl */ + YYSYMBOL_478_173 = 478, /* @173 */ + YYSYMBOL_479_174 = 479, /* $@174 */ + YYSYMBOL_480_175 = 480, /* $@175 */ + YYSYMBOL_event_header = 481, /* event_header */ + YYSYMBOL_formal_parameter_type = 482, /* formal_parameter_type */ + YYSYMBOL_at_least_one_formal_parameter = 483, /* at_least_one_formal_parameter */ + YYSYMBOL_formal_parameters = 484, /* formal_parameters */ + YYSYMBOL_formal_parameter = 485, /* formal_parameter */ + YYSYMBOL_at_least_one_formal_parameter_name = 486, /* at_least_one_formal_parameter_name */ + YYSYMBOL_formal_parameter_names = 487, /* formal_parameter_names */ + YYSYMBOL_formal_parameter_name = 488, /* formal_parameter_name */ + YYSYMBOL_porttype_decl = 489, /* porttype_decl */ + YYSYMBOL_490_176 = 490, /* $@176 */ + YYSYMBOL_491_177 = 491, /* @177 */ + YYSYMBOL_492_178 = 492, /* $@178 */ + YYSYMBOL_493_179 = 493, /* $@179 */ + YYSYMBOL_at_least_one_port_export = 494, /* at_least_one_port_export */ + YYSYMBOL_port_exports = 495, /* port_exports */ + YYSYMBOL_port_export = 496, /* port_export */ + YYSYMBOL_497_180 = 497, /* $@180 */ + YYSYMBOL_extended_port_decl = 498, /* extended_port_decl */ + YYSYMBOL_at_least_one_actual_parameter = 499, /* at_least_one_actual_parameter */ + YYSYMBOL_actual_parameters = 500, /* actual_parameters */ + YYSYMBOL_actual_parameter = 501, /* actual_parameter */ + YYSYMBOL_connector_decl = 502, /* connector_decl */ + YYSYMBOL_connector_header = 503, /* connector_header */ + YYSYMBOL_504_181 = 504, /* $@181 */ + YYSYMBOL_505_182 = 505, /* $@182 */ + YYSYMBOL_connector_body = 506, /* connector_body */ + YYSYMBOL_507_183 = 507, /* $@183 */ + YYSYMBOL_508_184 = 508, /* $@184 */ + YYSYMBOL_connector_exports = 509, /* connector_exports */ + YYSYMBOL_connector_export = 510, /* connector_export */ + YYSYMBOL_511_185 = 511, /* $@185 */ + YYSYMBOL_512_186 = 512, /* $@186 */ + YYSYMBOL_513_187 = 513, /* $@187 */ + YYSYMBOL_514_188 = 514 /* $@188 */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -911,6 +747,18 @@ typedef int_least16_t yytype_int16; typedef short yytype_int16; #endif +/* Work around bug in HP-UX 11.23, which defines these macros + incorrectly for preprocessor constants. This workaround can likely + be removed in 2023, as HPE has promised support for HP-UX 11.23 + (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of + . */ +#ifdef __hpux +# undef UINT_LEAST8_MAX +# undef UINT_LEAST16_MAX +# define UINT_LEAST8_MAX 255 +# define UINT_LEAST16_MAX 65535 +#endif + #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ typedef __UINT_LEAST8_TYPE__ yytype_uint8; #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ @@ -1008,9 +856,9 @@ typedef int yy_state_fast_t; /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ -# define YYUSE(E) ((void) (E)) +# define YY_USE(E) ((void) (E)) #else -# define YYUSE(E) /* empty */ +# define YY_USE(E) /* empty */ #endif #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ @@ -1177,18 +1025,19 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 4 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1637 +#define YYLAST 2102 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 109 +#define YYNTOKENS 117 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 398 /* YYNRULES -- Number of rules. */ -#define YYNRULES 599 +#define YYNRULES 607 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 880 +#define YYNSTATES 888 -#define YYMAXUTOK 342 +/* YYMAXUTOK -- Last valid token kind. */ +#define YYMAXUTOK 350 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM @@ -1205,16 +1054,16 @@ static const yytype_int8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 103, 98, 2, - 105, 106, 101, 99, 94, 100, 2, 102, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 93, 88, - 91, 95, 92, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 111, 106, 2, + 113, 114, 109, 107, 102, 108, 2, 110, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 101, 96, + 99, 103, 100, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 107, 2, 108, 97, 2, 2, 2, 2, 2, + 2, 115, 2, 116, 105, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 89, 96, 90, 104, 2, 2, 2, + 2, 2, 2, 97, 104, 98, 112, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -1236,73 +1085,75 @@ static const yytype_int8 yytranslate[] = 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, - 85, 86, 87 + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95 }; #if YYDEBUG - /* YYRLINEYYN -- Source line where rule number YYN was defined. */ + /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 404, 404, 407, 408, 416, 431, 435, 436, 437, - 442, 441, 450, 449, 458, 457, 466, 465, 474, 473, - 482, 481, 490, 489, 498, 497, 506, 505, 514, 513, - 522, 521, 530, 529, 538, 537, 546, 545, 554, 553, - 567, 566, 578, 617, 621, 577, 637, 645, 659, 669, - 699, 703, 644, 728, 732, 733, 737, 738, 743, 748, - 742, 834, 839, 833, 910, 911, 916, 954, 958, 915, - 975, 974, 986, 1023, 1053, 1086, 1085, 1094, 1101, 1102, - 1103, 1104, 1108, 1113, 1118, 1165, 1169, 1117, 1198, 1241, - 1245, 1196, 1264, 1262, 1302, 1301, 1313, 1317, 1324, 1329, - 1336, 1361, 1389, 1455, 1474, 1478, 1482, 1483, 1495, 1494, - 1512, 1516, 1523, 1544, 1545, 1549, 1564, 1569, 1568, 1577, - 1576, 1585, 1584, 1593, 1592, 1601, 1600, 1609, 1608, 1617, - 1616, 1625, 1624, 1637, 1649, 1647, 1672, 1679, 1689, 1688, - 1714, 1712, 1737, 1747, 1758, 1802, 1829, 1861, 1865, 1869, - 1873, 1860, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1945, - 1949, 2017, 2019, 2021, 2022, 2034, 2035, 2047, 2048, 2060, - 2061, 2070, 2082, 2083, 2092, 2104, 2105, 2114, 2123, 2135, - 2136, 2145, 2154, 2166, 2223, 2224, 2231, 2235, 2240, 2247, - 2254, 2258, 2263, 2267, 2271, 2275, 2282, 2351, 2350, 2379, - 2380, 2384, 2385, 2386, 2388, 2387, 2396, 2397, 2401, 2457, - 2461, 2468, 2481, 2491, 2499, 2498, 2586, 2590, 2597, 2606, - 2613, 2621, 2627, 2634, 2647, 2646, 2655, 2659, 2663, 2667, - 2695, 2703, 2702, 2773, 2774, 2778, 2785, 2786, 2812, 2813, - 2814, 2815, 2816, 2817, 2818, 2819, 2823, 2824, 2825, 2826, - 2830, 2831, 2832, 2836, 2837, 2841, 2853, 2851, 2876, 2883, - 2884, 2888, 2900, 2898, 2923, 2930, 2946, 2964, 2965, 2969, - 2973, 2977, 2984, 2988, 2992, 2999, 3003, 3007, 3014, 3021, - 3025, 3032, 3039, 3046, 3053, 3061, 3060, 3074, 3105, 3109, - 3073, 3126, 3129, 3130, 3134, 3152, 3156, 3151, 3214, 3213, - 3226, 3225, 3238, 3242, 3275, 3279, 3338, 3342, 3237, 3364, - 3371, 3384, 3393, 3400, 3401, 3510, 3513, 3514, 3519, 3523, - 3518, 3559, 3558, 3570, 3580, 3598, 3606, 3605, 3619, 3623, - 3618, 3639, 3638, 3688, 3713, 3737, 3741, 3772, 3776, 3736, - 3800, 3805, 3803, 3809, 3813, 3853, 3857, 3851, 3941, 4008, - 4017, 4007, 4031, 4041, 4045, 4039, 4087, 4113, 4122, 4126, - 4120, 4168, 4194, 4202, 4201, 4244, 4254, 4272, 4280, 4284, - 4279, 4344, 4345, 4350, 4354, 4358, 4362, 4349, 4421, 4425, - 4429, 4433, 4420, 4501, 4505, 4537, 4541, 4500, 4558, 4562, - 4623, 4627, 4557, 4664, 4669, 4674, 4681, 4682, 4693, 4698, - 4741, 4692, 4763, 4762, 4771, 4770, 4781, 4786, 4784, 4790, - 4795, 4799, 4794, 4838, 4837, 4846, 4845, 4856, 4861, 4859, - 4865, 4870, 4874, 4869, 4919, 4926, 4927, 4928, 5035, 5039, - 5043, 5051, 5055, 5050, 5064, 5072, 5076, 5071, 5085, 5093, - 5097, 5092, 5106, 5114, 5118, 5113, 5127, 5134, 5146, 5144, - 5167, 5174, 5204, 5243, 5244, 5248, 5279, 5321, 5325, 5278, - 5344, 5348, 5342, 5389, 5388, 5396, 5403, 5418, 5419, 5424, - 5423, 5433, 5432, 5442, 5441, 5451, 5450, 5460, 5459, 5469, - 5468, 5478, 5477, 5488, 5581, 5587, 5612, 5719, 5728, 5732, - 5739, 5814, 5886, 5962, 5961, 6011, 6015, 6019, 6023, 6027, - 6031, 6010, 6084, 6083, 6091, 6098, 6103, 6111, 6115, 6110, - 6125, 6126, 6130, 6132, 6131, 6140, 6139, 6152, 6175, 6150, - 6201, 6228, 6199, 6252, 6253, 6254, 6258, 6259, 6263, 6292, - 6324, 6368, 6372, 6322, 6389, 6398, 6416, 6427, 6426, 6464, - 6515, 6519, 6462, 6536, 6540, 6547, 6551, 6555, 6559, 6563, - 6567, 6571, 6575, 6579, 6583, 6591, 6622, 6635, 6642, 6667, - 6685, 6692, 6707, 6714, 6724, 6728, 6747, 6755, 6723, 6770, - 6785, 6789, 6790, 6794, 6795, 6797, 6796, 6807, 6874, 6922, - 6938, 6951, 6958, 7017, 7025, 7029, 7024, 7090, 7094, 7089, - 7107, 7108, 7113, 7112, 7121, 7120, 7129, 7128, 7137, 7136 + 0, 414, 414, 417, 418, 426, 441, 445, 446, 447, + 452, 451, 460, 459, 468, 467, 476, 475, 484, 483, + 492, 491, 500, 499, 508, 507, 516, 515, 524, 523, + 532, 531, 540, 539, 548, 547, 556, 555, 564, 563, + 577, 576, 588, 627, 631, 587, 647, 655, 669, 679, + 709, 713, 654, 738, 742, 743, 747, 748, 753, 758, + 752, 844, 849, 843, 920, 921, 926, 964, 968, 925, + 985, 984, 996, 1033, 1063, 1096, 1095, 1104, 1111, 1112, + 1113, 1114, 1118, 1123, 1128, 1175, 1179, 1127, 1208, 1251, + 1255, 1206, 1274, 1272, 1312, 1311, 1323, 1327, 1334, 1339, + 1346, 1371, 1399, 1465, 1484, 1488, 1492, 1493, 1505, 1504, + 1522, 1526, 1533, 1554, 1555, 1559, 1574, 1579, 1578, 1587, + 1586, 1595, 1594, 1603, 1602, 1611, 1610, 1619, 1618, 1627, + 1626, 1635, 1634, 1647, 1659, 1657, 1682, 1689, 1699, 1698, + 1724, 1722, 1747, 1757, 1768, 1812, 1839, 1871, 1875, 1879, + 1883, 1870, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1955, + 1959, 2027, 2029, 2031, 2032, 2044, 2045, 2057, 2058, 2070, + 2071, 2080, 2092, 2093, 2102, 2114, 2115, 2124, 2133, 2145, + 2146, 2155, 2164, 2176, 2233, 2234, 2241, 2245, 2250, 2257, + 2264, 2268, 2273, 2277, 2281, 2285, 2292, 2361, 2360, 2389, + 2390, 2394, 2395, 2396, 2398, 2397, 2406, 2407, 2411, 2467, + 2471, 2478, 2491, 2501, 2509, 2508, 2596, 2600, 2607, 2616, + 2623, 2631, 2637, 2644, 2657, 2656, 2665, 2669, 2673, 2677, + 2705, 2713, 2712, 2783, 2784, 2788, 2795, 2796, 2822, 2823, + 2824, 2825, 2826, 2827, 2828, 2829, 2833, 2834, 2835, 2836, + 2840, 2841, 2842, 2846, 2847, 2851, 2863, 2861, 2886, 2893, + 2894, 2898, 2910, 2908, 2933, 2940, 2956, 2974, 2975, 2979, + 2983, 2987, 2991, 2995, 2999, 3003, 3010, 3014, 3018, 3022, + 3026, 3030, 3034, 3041, 3045, 3049, 3056, 3063, 3067, 3074, + 3081, 3088, 3095, 3103, 3102, 3116, 3147, 3151, 3115, 3168, + 3171, 3172, 3176, 3194, 3198, 3193, 3256, 3255, 3268, 3267, + 3280, 3284, 3317, 3321, 3380, 3384, 3279, 3406, 3413, 3426, + 3435, 3442, 3443, 3552, 3555, 3556, 3561, 3565, 3560, 3601, + 3600, 3612, 3622, 3640, 3648, 3647, 3661, 3665, 3660, 3681, + 3680, 3730, 3755, 3779, 3783, 3814, 3818, 3778, 3842, 3847, + 3845, 3851, 3855, 3895, 3899, 3893, 3983, 4050, 4059, 4049, + 4073, 4083, 4087, 4081, 4129, 4155, 4164, 4168, 4162, 4210, + 4236, 4244, 4243, 4286, 4296, 4314, 4322, 4326, 4321, 4386, + 4387, 4392, 4396, 4400, 4404, 4391, 4463, 4467, 4471, 4475, + 4462, 4543, 4547, 4579, 4583, 4542, 4600, 4604, 4665, 4669, + 4599, 4706, 4711, 4716, 4723, 4724, 4735, 4740, 4783, 4734, + 4805, 4804, 4813, 4812, 4823, 4828, 4826, 4832, 4837, 4841, + 4836, 4880, 4879, 4888, 4887, 4898, 4903, 4901, 4907, 4912, + 4916, 4911, 4961, 4968, 4969, 4970, 5077, 5081, 5085, 5093, + 5097, 5092, 5106, 5114, 5118, 5113, 5127, 5135, 5139, 5134, + 5148, 5156, 5160, 5155, 5169, 5176, 5188, 5186, 5209, 5216, + 5246, 5285, 5286, 5290, 5321, 5363, 5367, 5320, 5386, 5390, + 5384, 5431, 5430, 5438, 5445, 5460, 5461, 5466, 5465, 5475, + 5474, 5484, 5483, 5493, 5492, 5502, 5501, 5511, 5510, 5520, + 5519, 5530, 5623, 5629, 5654, 5761, 5770, 5774, 5781, 5856, + 5928, 6004, 6003, 6053, 6057, 6061, 6065, 6069, 6073, 6052, + 6126, 6125, 6133, 6140, 6145, 6153, 6157, 6152, 6167, 6168, + 6172, 6174, 6173, 6182, 6181, 6194, 6217, 6192, 6243, 6270, + 6241, 6294, 6295, 6296, 6300, 6301, 6305, 6334, 6366, 6410, + 6414, 6364, 6431, 6440, 6458, 6469, 6468, 6506, 6557, 6561, + 6504, 6578, 6582, 6589, 6593, 6597, 6601, 6605, 6609, 6613, + 6617, 6621, 6625, 6633, 6664, 6677, 6684, 6709, 6727, 6734, + 6749, 6756, 6766, 6770, 6789, 6797, 6765, 6812, 6827, 6831, + 6832, 6836, 6837, 6839, 6838, 6849, 6916, 6964, 6980, 6993, + 7000, 7059, 7067, 7071, 7066, 7132, 7136, 7131, 7149, 7150, + 7155, 7154, 7163, 7162, 7171, 7170, 7179, 7178 }; #endif @@ -1336,21 +1187,22 @@ static const char *const yytname[] = "IDL_PORTTYPE", "IDL_CONNECTOR", "IDL_ALIAS", "IDL_INTEGER_LITERAL", "IDL_UINTEGER_LITERAL", "IDL_STRING_LITERAL", "IDL_CHARACTER_LITERAL", "IDL_FLOATING_PT_LITERAL", "IDL_FIXED_PT_LITERAL", "IDL_TRUETOK", - "IDL_FALSETOK", "IDL_SCOPE_DELIMITOR", "IDL_LEFT_SHIFT", - "IDL_RIGHT_SHIFT", "IDL_WCHAR_LITERAL", "IDL_WSTRING_LITERAL", - "IDL_ANNOTATION_DECL", "IDL_ANNOTATION_SYMBOL", "';'", "'{'", "'}'", - "'<'", "'>'", "':'", "','", "'='", "'|'", "'^'", "'&'", "'+'", "'-'", - "'*'", "'/'", "'%'", "'~'", "'('", "')'", "'['", "']'", "$accept", - "start", "definitions", "at_least_one_definition", "definition", - "fixed_definition", "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", - "$@8", "$@9", "$@10", "$@11", "$@12", "$@13", "$@14", "$@15", - "module_header", "$@16", "module", "@17", "$@18", "$@19", - "template_module_header", "template_module", "$@20", "$@21", "$@22", - "$@23", "$@24", "at_least_one_tpl_definition", "tpl_definitions", - "tpl_definition", "template_module_ref", "$@25", "$@26", - "template_module_inst", "$@27", "$@28", "interface_def", "interface", - "$@29", "$@30", "$@31", "interface_decl", "$@32", "interface_header", - "inheritance_spec", "$@33", "value_def", "valuetype", + "IDL_FALSETOK", "IDL_INT8", "IDL_UINT8", "IDL_INT16", "IDL_UINT16", + "IDL_INT32", "IDL_UINT32", "IDL_INT64", "IDL_UINT64", + "IDL_SCOPE_DELIMITOR", "IDL_LEFT_SHIFT", "IDL_RIGHT_SHIFT", + "IDL_WCHAR_LITERAL", "IDL_WSTRING_LITERAL", "IDL_ANNOTATION_DECL", + "IDL_ANNOTATION_SYMBOL", "';'", "'{'", "'}'", "'<'", "'>'", "':'", "','", + "'='", "'|'", "'^'", "'&'", "'+'", "'-'", "'*'", "'/'", "'%'", "'~'", + "'('", "')'", "'['", "']'", "$accept", "start", "definitions", + "at_least_one_definition", "definition", "fixed_definition", "$@1", + "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "$@9", "$@10", "$@11", + "$@12", "$@13", "$@14", "$@15", "module_header", "$@16", "module", "@17", + "$@18", "$@19", "template_module_header", "template_module", "$@20", + "$@21", "$@22", "$@23", "$@24", "at_least_one_tpl_definition", + "tpl_definitions", "tpl_definition", "template_module_ref", "$@25", + "$@26", "template_module_inst", "$@27", "$@28", "interface_def", + "interface", "$@29", "$@30", "$@31", "interface_decl", "$@32", + "interface_header", "inheritance_spec", "$@33", "value_def", "valuetype", "value_concrete_decl", "@34", "$@35", "$@36", "value_abs_decl", "$@37", "$@38", "$@39", "value_header", "$@40", "value_decl", "$@41", "opt_truncatable", "supports_spec", "value_forward_decl", @@ -1447,800 +1299,899 @@ static const yytype_int16 yytoknum[] = 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, - 335, 336, 337, 338, 339, 340, 341, 342, 59, 123, - 125, 60, 62, 58, 44, 61, 124, 94, 38, 43, - 45, 42, 47, 37, 126, 40, 41, 91, 93 + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 59, 123, 125, 60, + 62, 58, 44, 61, 124, 94, 38, 43, 45, 42, + 47, 37, 126, 40, 41, 91, 93 }; #endif -#define YYPACT_NINF (-613) +#define YYPACT_NINF (-672) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-568) +#define YYTABLE_NINF (-576) #define yytable_value_is_error(Yyn) \ 0 - /* YYPACTSTATE-NUM -- Index in YYTABLE of the portion describing + /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { - -613, 52, 1211, -613, -613, -613, -613, -613, -613, -613, - -613, -613, -613, -613, 57, 78, 45, 157, -613, 57, - 57, -613, 85, 85, -613, -613, 57, -613, -613, 12, - -613, 237, -17, 9, -613, -613, -20, -613, -613, -613, - -613, -613, -613, 537, -613, -613, -613, -613, -613, 1342, - 32, -613, -613, 44, -613, 119, -613, -613, -613, -613, - -613, -613, -613, -613, -613, -613, -613, -613, -613, -613, - -613, -613, -613, -613, 111, -613, -613, -613, 111, -613, - -613, 75, 132, 857, 85, 57, 1556, 57, 57, 57, - 57, -613, -613, -613, -19, 57, 77, -613, 107, 57, - -613, 111, 57, 134, 144, 57, -613, -613, -25, -613, - 1, 256, -613, 151, -613, 173, 184, 331, -613, -613, - -613, 199, 251, -613, 218, 220, 229, 207, -613, 190, - -613, -613, -613, -613, -613, -613, 234, -613, -613, -613, - -613, -613, -613, 239, -613, -613, -613, -613, -613, -613, - -613, -613, -613, -613, -613, -613, -613, -613, -613, -613, - -613, 119, -613, -613, -613, 65, -613, -613, 236, -613, - 241, 245, 246, -613, 85, 249, 252, 250, -613, 255, - 257, 265, 268, 270, 269, 271, 273, -613, -613, -613, - 274, 275, -613, -613, -613, -613, 239, -613, -613, -613, - -613, -613, -613, -613, -613, -613, 239, -613, -613, -613, - -613, -613, -613, -613, -613, 278, -613, 280, -613, -613, - 235, -613, 341, -613, -613, -613, -613, 55, -613, -613, - -613, 857, -613, -613, -613, -613, 281, -613, -613, -613, - -613, 367, -613, -613, 50, 293, -613, -613, -613, -613, - -613, -613, -613, -613, 363, -613, 171, 287, 343, -613, - -613, -613, -613, -613, -613, 239, -613, -613, 292, -613, - -613, -613, -613, -613, -613, -613, -613, -613, 343, 302, - 310, -613, -613, -613, 57, 57, 311, 312, -613, -613, - -613, 313, -613, 341, 315, -613, -613, -613, -613, -613, - 402, -613, 318, 319, -613, -613, -613, -613, -613, -613, - -613, -613, -613, -613, 204, 204, 204, 171, 239, -613, - -613, 316, 324, 309, 131, 135, 136, -613, -613, -613, - -613, -613, 85, -613, -613, -613, -613, 321, -613, 85, - -613, 171, 171, 171, 317, -613, -613, -613, -613, -613, - -613, -613, 159, -613, 71, -613, -613, -613, -613, -613, - -613, -613, -613, 85, 343, -613, -613, -613, -613, 235, - 689, 1264, 326, 333, -613, 331, -613, -613, -613, 320, - 171, 171, 171, 171, 171, 171, 171, 171, 171, 171, - 334, 57, -613, 239, 986, -613, 564, 171, -613, -613, - -613, -613, -613, 171, -613, 876, -613, -613, -613, 601, - 902, -613, -613, -613, -613, 98, 369, 85, 85, -613, - -613, -613, -613, -613, 98, -613, 339, -613, 335, -613, - 337, -613, -613, 1021, 239, -613, 85, 343, -613, -613, - -613, -613, 344, -613, -613, 57, -613, -613, 345, 346, - 431, 348, -613, -613, 324, 309, 131, 135, 135, 136, - 136, -613, -613, -613, -613, -613, 347, -613, -613, -613, - 349, -613, -613, 1497, -613, -613, -613, -613, 463, -613, - -613, -613, -613, -613, 350, -613, 1531, -613, -613, 1422, - -613, 351, 1079, 352, 358, 360, 364, -613, 336, -613, - 359, -613, -613, -613, 372, 373, 130, 85, 85, 85, - 461, -613, 377, -613, -613, -613, -613, -613, -613, -613, - 57, 57, -613, 379, -613, -613, -613, 1106, 817, 452, - 96, -613, 239, 341, -613, -613, 88, 90, 405, 406, - 407, 341, 408, -613, -613, 86, -613, 60, -613, -613, - 400, 409, 239, -613, 410, 137, 1556, -613, 469, -613, - -613, -613, -613, 50, -613, 413, -613, 414, -613, 415, - 416, 417, 421, -613, 239, -613, -613, -613, -613, -613, - 426, 429, 517, -613, -613, -613, 435, -613, -613, -613, - -613, -613, 171, -613, 341, -613, 437, 57, -613, -613, - 519, 239, -613, -613, -613, -613, -613, -613, 113, 113, - 113, -613, 440, -613, 443, 444, 445, 447, 448, 450, - -613, -613, -613, 451, 453, 474, 476, -613, -613, -613, - -613, -613, -613, -613, -613, -613, -613, 171, -613, -613, - -613, 57, -613, 479, 465, 496, -613, 522, 502, 137, - -613, 454, 505, -613, 511, 171, 512, 1289, -613, 85, - -613, -613, -613, -613, -613, -613, 598, -613, -613, -613, - -613, -613, 364, 359, -613, -613, 497, -613, -613, -613, - -613, -613, -613, -613, -613, -613, -613, 501, 501, -613, - -613, -613, -613, 96, 57, -613, 171, 495, -613, -613, - -613, -613, -613, -613, -613, 523, -613, -613, -613, -613, - -613, 85, -613, -613, -613, -613, 524, 239, -613, 501, - -613, 525, -613, 572, -613, -613, -613, -613, -613, -613, - -613, -613, 85, -613, 239, 526, 1157, -613, 509, -613, - -613, 528, 513, 580, 582, 582, 57, 566, 532, 514, - -613, 239, 538, -613, -613, 527, -613, 582, -613, -613, - -613, 529, -613, -613, -613, -613, -613, -613, -613, -613, - -613, 575, 633, 533, 230, 582, -613, 202, 96, -613, - 544, 535, 582, 536, 581, 57, 85, -613, -613, 550, - -613, -613, -613, -613, -613, 540, -613, -613, -613, -613, - -613, -613, -613, -613, -613, -613, -613, -613, -613, -613, - -613, -613, -613, -613, 239, -613, 553, -613, 554, 96, - 605, 562, 171, 563, 565, 58, -613, 240, 57, 580, - 85, 85, 552, 57, 633, -613, -613, -613, -613, -613, - -613, -613, -613, -613, 708, -613, -613, -613, 558, 559, - -613, -613, -613, 230, 57, 555, 574, -613, -613, -613, - -613, 85, -613, -613, -613, -613, 57, 570, 571, 584, - -613, -613, -613, -613, 573, 578, -613, -613, 593, -613 + -672, 90, 1339, -672, -672, -672, -672, -672, -672, -672, + -672, -672, -672, -672, 141, 144, 57, 58, -672, 141, + 141, -672, 56, 56, -672, -672, 141, -672, -672, 60, + -672, 461, 79, 81, -672, -672, -8, -672, -672, -672, + -672, -672, -672, 537, -672, -672, -672, -672, -672, 1539, + 61, -672, -672, 85, -672, 146, -672, -672, -672, -672, + -672, -672, -672, -672, -672, -672, -672, -672, -672, -672, + -672, -672, -672, -672, 70, -672, -672, -672, 70, -672, + -672, 119, 139, 2013, 56, 141, 1892, 141, 141, 141, + 141, -672, -672, -672, 13, 141, 39, -672, 40, 141, + -672, 70, 141, 149, 150, 141, -672, -672, 26, -672, + 33, 233, -672, 153, -672, 154, 157, 1651, -672, -672, + -672, 158, 207, -672, 168, 170, 172, 140, -672, 198, + -672, -672, -672, -672, -672, -672, 171, -672, -672, -672, + -672, -672, -672, -672, -672, -672, -672, -672, -672, -672, + -672, 184, -672, -672, -672, -672, -672, -672, -672, -672, + -672, -672, -672, -672, -672, -672, -672, -672, -672, 146, + -672, -672, -672, 72, -672, -672, 175, -672, 178, 182, + 185, -672, 56, 188, 190, 187, -672, 191, 194, 195, + 196, 197, 199, 202, 204, -672, -672, -672, 205, 208, + -672, -672, -672, -672, 184, -672, -672, -672, -672, -672, + -672, -672, -672, -672, 184, -672, -672, -672, -672, -672, + -672, -672, -672, 211, -672, 206, -672, -672, 148, -672, + 276, -672, -672, -672, -672, 44, -672, -672, -672, 2013, + -672, -672, -672, -672, 181, -672, -672, -672, -672, 290, + -672, -672, 54, 210, -672, -672, -672, -672, -672, -672, + -672, -672, 303, -672, 135, 214, 267, -672, -672, -672, + -672, -672, -672, 184, -672, -672, 203, -672, -672, -672, + -672, -672, -672, -672, -672, -672, 267, 218, 223, -672, + -672, -672, 141, 141, 224, 230, -672, -672, -672, 227, + -672, 276, 236, -672, -672, -672, -672, -672, 327, -672, + 238, 239, -672, -672, -672, -672, -672, -672, -672, -672, + -672, -672, 183, 183, 183, 135, 184, -672, -672, 235, + 241, 234, 128, 114, 14, -672, -672, -672, -672, -672, + 56, -672, -672, -672, -672, 240, -672, 56, -672, 135, + 135, 135, 231, -672, -672, -672, -672, -672, -672, -672, + 133, -672, 1, -672, -672, -672, -672, -672, -672, -672, + -672, 56, 267, -672, -672, -672, -672, 148, 565, 1453, + 245, 247, -672, 1651, -672, -672, -672, 244, 135, 135, + 135, 135, 135, 135, 135, 135, 135, 135, 246, 141, + -672, 184, 1103, -672, 825, 135, -672, -672, -672, -672, + -672, 135, -672, 1403, -672, -672, -672, 381, 1011, -672, + -672, -672, -672, 68, 292, 56, 56, -672, -672, -672, + -672, -672, 68, -672, 253, -672, 249, -672, 252, -672, + -672, 1196, 184, -672, 56, 267, -672, -672, -672, -672, + 263, -672, -672, 141, -672, -672, 264, 265, 359, 268, + -672, -672, 241, 234, 128, 114, 114, 14, 14, -672, + -672, -672, -672, -672, 262, -672, -672, -672, 269, -672, + -672, 1805, -672, -672, -672, -672, 1926, -672, -672, -672, + -672, -672, 270, -672, 1839, -672, -672, 1716, -672, 266, + 1627, 271, 277, 278, 280, -672, 255, -672, 285, -672, + -672, -672, 281, 282, 711, 56, 56, 56, 237, -672, + 294, -672, -672, -672, -672, -672, -672, -672, 141, 141, + -672, 295, -672, -672, -672, 1289, 918, 357, 1979, -672, + 184, 276, -672, -672, 65, 66, 298, 302, 309, 276, + 310, -672, -672, 2, -672, 47, -672, -672, 301, 311, + 184, -672, 315, 160, 1892, -672, 378, -672, -672, -672, + -672, 54, -672, 312, -672, 319, -672, 322, 324, 325, + 328, -672, 184, -672, -672, -672, -672, -672, 329, 330, + 420, -672, -672, -672, 338, -672, -672, -672, -672, -672, + 135, -672, 276, -672, 339, 141, -672, -672, 428, 184, + -672, -672, -672, -672, -672, -672, 69, 69, 69, -672, + 342, -672, 343, 348, 349, 351, 355, 356, -672, -672, + -672, 364, 365, 368, 372, -672, -672, -672, -672, -672, + -672, -672, -672, -672, -672, 135, -672, -672, -672, 141, + -672, 373, 375, 376, -672, 409, 382, 160, -672, 387, + 390, -672, 391, 135, 393, 1514, -672, 56, -672, -672, + -672, -672, -672, -672, 487, -672, -672, -672, -672, -672, + 280, 285, -672, -672, 377, -672, -672, -672, -672, -672, + -672, -672, -672, -672, -672, 383, 383, -672, -672, -672, + -672, 1979, 141, -672, 135, 384, -672, -672, -672, -672, + -672, -672, -672, 401, -672, -672, -672, -672, -672, 56, + -672, -672, -672, -672, 402, 184, -672, 383, -672, 404, + -672, 466, -672, -672, -672, -672, -672, -672, -672, -672, + 56, -672, 184, 405, 635, -672, 389, -672, -672, 407, + 394, 470, 471, 471, 141, 456, 410, 397, -672, 184, + 416, -672, -672, 403, -672, 471, -672, -672, -672, 406, + -672, -672, -672, -672, -672, -672, -672, -672, -672, 462, + 519, 411, 152, 471, -672, 75, 1979, -672, 427, 417, + 471, 418, 472, 141, 56, -672, -672, 433, -672, -672, + -672, -672, -672, 421, -672, -672, -672, -672, -672, -672, + -672, -672, -672, -672, -672, -672, -672, -672, -672, -672, + -672, -672, 184, -672, 434, -672, 436, 1979, 500, 445, + 135, 442, 446, 55, -672, 201, 141, 470, 56, 56, + 451, 141, 519, -672, -672, -672, -672, -672, -672, -672, + -672, -672, 1603, -672, -672, -672, 452, 453, -672, -672, + -672, 152, 141, 457, 464, -672, -672, -672, -672, 56, + -672, -672, -672, -672, 141, 475, 473, 509, -672, -672, + -672, -672, 478, 483, -672, -672, 514, -672 }; - /* YYDEFACTSTATE-NUM -- Default reduction number in state STATE-NUM. + /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ static const yytype_int16 yydefact[] = { 4, 0, 0, 3, 1, 38, 147, 40, 70, 224, - 285, 300, 335, 383, 0, 0, 0, 0, 94, 0, - 0, 495, 0, 0, 564, 584, 0, 6, 7, 42, + 293, 308, 343, 391, 0, 0, 0, 0, 94, 0, + 0, 503, 0, 0, 572, 592, 0, 6, 7, 42, 24, 61, 0, 0, 22, 64, 77, 66, 26, 78, 83, 79, 84, 77, 80, 81, 65, 18, 10, 0, - 0, 12, 230, 287, 226, 334, 227, 253, 254, 228, - 20, 14, 16, 28, 454, 453, 456, 30, 493, 32, - 525, 527, 526, 524, 77, 543, 544, 523, 77, 34, + 0, 12, 230, 295, 226, 342, 227, 253, 254, 228, + 20, 14, 16, 28, 462, 461, 464, 30, 501, 32, + 533, 535, 534, 532, 77, 551, 552, 531, 77, 34, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143, 265, 229, 77, 0, 77, 88, 77, 0, - 82, 77, 0, 460, 536, 0, 142, 138, 0, 137, + 82, 77, 0, 468, 544, 0, 142, 138, 0, 137, 0, 0, 213, 0, 46, 0, 0, 0, 213, 8, 9, 0, 97, 72, 0, 0, 0, 269, 271, 0, - 275, 276, 279, 280, 281, 282, 278, 283, 284, 349, - 357, 362, 92, 237, 102, 233, 235, 236, 234, 238, - 267, 268, 239, 243, 240, 242, 241, 244, 245, 287, - 250, 0, 251, 252, 246, 0, 249, 247, 356, 248, - 361, 0, 0, 5, 0, 211, 0, 0, 302, 0, - 0, 0, 0, 0, 0, 0, 0, 537, 530, 539, - 0, 0, 587, 583, 39, 278, 160, 148, 152, 156, - 157, 153, 154, 155, 158, 159, 41, 71, 225, 231, - 286, 301, 336, 384, 73, 534, 74, 0, 535, 95, - 465, 496, 0, 451, 140, 452, 565, 0, 197, 43, - 25, 0, 550, 546, 547, 552, 549, 553, 551, 548, - 545, 0, 48, 557, 0, 0, 23, 96, 75, 67, - 27, 85, 270, 277, 272, 274, 0, 0, 99, 348, - 345, 353, 358, 19, 11, 214, 13, 288, 0, 21, - 15, 17, 29, 457, 31, 507, 494, 33, 99, 0, - 0, 35, 37, 591, 0, 0, 0, 0, 89, 463, - 461, 504, 139, 0, 0, 585, 212, 200, 4, 554, - 0, 558, 0, 555, 186, 187, 188, 190, 193, 192, - 194, 195, 191, 189, 0, 0, 0, 0, 183, 582, - 161, 162, 163, 165, 167, 169, 172, 175, 179, 184, - 581, 62, 0, 114, 105, 273, 196, 0, 350, 0, - 93, 0, 0, 0, 217, 213, 303, 468, 511, 538, - 531, 540, 588, 149, 265, 232, 258, 259, 260, 266, - 337, 385, 114, 0, 99, 502, 497, 141, 566, 465, - 0, 0, 3, 0, 49, 0, 180, 181, 182, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 579, 0, 76, 136, 0, 113, 0, 0, 213, 98, - 346, 354, 359, 0, 215, 0, 289, 293, 213, 213, - 0, 114, 105, 373, 378, 0, 489, 0, 0, 596, - 371, 372, 592, 594, 0, 598, 0, 590, 0, 213, - 255, 213, 293, 0, 464, 462, 0, 99, 572, 586, - 204, 198, 0, 206, 199, 0, 201, 207, 0, 0, - 0, 0, 556, 185, 164, 166, 168, 170, 171, 173, - 174, 176, 177, 178, 213, 63, 133, 131, 393, 394, - 0, 116, 123, 0, 117, 127, 125, 129, 0, 119, - 121, 398, 111, 110, 0, 104, 0, 106, 107, 0, - 108, 0, 0, 0, 0, 0, 137, 218, 0, 219, - 222, 298, 295, 294, 0, 213, 0, 0, 0, 0, - 0, 479, 0, 467, 469, 471, 473, 475, 477, 481, - 0, 0, 512, 0, 510, 513, 515, 0, 0, 0, - 0, 485, 484, 0, 488, 487, 0, 0, 0, 0, - 0, 0, 0, 589, 150, 0, 256, 0, 338, 343, - 213, 0, 503, 498, 571, 213, 0, 202, 210, 203, - 45, 559, 50, 0, 134, 0, 69, 0, 115, 0, - 0, 0, 0, 397, 427, 424, 425, 426, 388, 396, - 0, 0, 0, 87, 112, 103, 0, 352, 351, 347, - 355, 360, 0, 216, 0, 220, 0, 0, 290, 292, - 269, 314, 309, 310, 311, 312, 304, 313, 0, 0, - 0, 466, 0, 459, 0, 0, 0, 0, 0, 0, - 517, 520, 509, 0, 0, 0, 0, 374, 379, 483, - 577, 578, 597, 593, 595, 486, 599, 0, 368, 364, - 367, 0, 344, 0, 340, 0, 91, 0, 0, 0, - 575, 0, 0, 570, 0, 0, 0, 0, 580, 0, - 132, 124, 118, 128, 126, 130, 0, 120, 122, 399, - 109, 223, 0, 222, 299, 296, 0, 492, 490, 491, - 480, 470, 472, 474, 476, 478, 482, 0, 0, 514, - 516, 533, 542, 0, 0, 151, 0, 365, 257, 339, - 341, 387, 499, 568, 569, 0, 573, 574, 205, 209, - 208, 0, 56, 42, 51, 55, 0, 135, 389, 0, - 221, 0, 305, 402, 518, 521, 375, 380, 264, 369, - 366, 213, 0, 576, 58, 0, 0, 57, 0, 400, - 297, 0, 0, 0, 434, 434, 0, 438, 261, 0, - 342, 500, 0, 52, 54, 415, 390, 434, 306, 403, - 410, 0, 409, 431, 519, 522, 376, 435, 381, 262, - 370, 506, 0, 0, 0, 434, 401, 0, 0, 405, - 406, 0, 434, 0, 442, 0, 0, 501, 563, 0, - 562, 414, 428, 429, 430, 0, 420, 421, 391, 321, - 328, 326, 307, 317, 318, 325, 411, 407, 432, 377, - 436, 439, 382, 263, 505, 59, 560, 416, 417, 0, - 446, 0, 0, 0, 0, 0, 213, 323, 0, 0, - 0, 0, 0, 0, 0, 418, 422, 443, 392, 322, - 329, 327, 308, 316, 0, 324, 412, 408, 0, 0, - 440, 60, 561, 0, 0, 0, 0, 331, 319, 433, - 437, 0, 419, 423, 444, 330, 0, 0, 0, 0, - 332, 320, 441, 450, 0, 447, 445, 448, 0, 449 + 283, 284, 287, 288, 289, 290, 286, 291, 292, 357, + 365, 370, 272, 279, 273, 280, 274, 281, 275, 282, + 92, 237, 102, 233, 235, 236, 234, 238, 267, 268, + 239, 243, 240, 242, 241, 244, 245, 295, 250, 0, + 251, 252, 246, 0, 249, 247, 364, 248, 369, 0, + 0, 5, 0, 211, 0, 0, 310, 0, 0, 0, + 0, 0, 0, 0, 0, 545, 538, 547, 0, 0, + 595, 591, 39, 286, 160, 148, 152, 156, 157, 153, + 154, 155, 158, 159, 41, 71, 225, 231, 294, 309, + 344, 392, 73, 542, 74, 0, 543, 95, 473, 504, + 0, 459, 140, 460, 573, 0, 197, 43, 25, 0, + 558, 554, 555, 560, 557, 561, 559, 556, 553, 0, + 48, 565, 0, 0, 23, 96, 75, 67, 27, 85, + 270, 285, 276, 278, 0, 0, 99, 356, 353, 361, + 366, 19, 11, 214, 13, 296, 0, 21, 15, 17, + 29, 465, 31, 515, 502, 33, 99, 0, 0, 35, + 37, 599, 0, 0, 0, 0, 89, 471, 469, 512, + 139, 0, 0, 593, 212, 200, 4, 562, 0, 566, + 0, 563, 186, 187, 188, 190, 193, 192, 194, 195, + 191, 189, 0, 0, 0, 0, 183, 590, 161, 162, + 163, 165, 167, 169, 172, 175, 179, 184, 589, 62, + 0, 114, 105, 277, 196, 0, 358, 0, 93, 0, + 0, 0, 217, 213, 311, 476, 519, 546, 539, 548, + 596, 149, 265, 232, 258, 259, 260, 266, 345, 393, + 114, 0, 99, 510, 505, 141, 574, 473, 0, 0, + 3, 0, 49, 0, 180, 181, 182, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 587, 0, + 76, 136, 0, 113, 0, 0, 213, 98, 354, 362, + 367, 0, 215, 0, 297, 301, 213, 213, 0, 114, + 105, 381, 386, 0, 497, 0, 0, 604, 379, 380, + 600, 602, 0, 606, 0, 598, 0, 213, 255, 213, + 301, 0, 472, 470, 0, 99, 580, 594, 204, 198, + 0, 206, 199, 0, 201, 207, 0, 0, 0, 0, + 564, 185, 164, 166, 168, 170, 171, 173, 174, 176, + 177, 178, 213, 63, 133, 131, 401, 402, 0, 116, + 123, 0, 117, 127, 125, 129, 0, 119, 121, 406, + 111, 110, 0, 104, 0, 106, 107, 0, 108, 0, + 0, 0, 0, 0, 137, 218, 0, 219, 222, 306, + 303, 302, 0, 213, 0, 0, 0, 0, 0, 487, + 0, 475, 477, 479, 481, 483, 485, 489, 0, 0, + 520, 0, 518, 521, 523, 0, 0, 0, 0, 493, + 492, 0, 496, 495, 0, 0, 0, 0, 0, 0, + 0, 597, 150, 0, 256, 0, 346, 351, 213, 0, + 511, 506, 579, 213, 0, 202, 210, 203, 45, 567, + 50, 0, 134, 0, 69, 0, 115, 0, 0, 0, + 0, 405, 435, 432, 433, 434, 396, 404, 0, 0, + 0, 87, 112, 103, 0, 360, 359, 355, 363, 368, + 0, 216, 0, 220, 0, 0, 298, 300, 269, 322, + 317, 318, 319, 320, 312, 321, 0, 0, 0, 474, + 0, 467, 0, 0, 0, 0, 0, 0, 525, 528, + 517, 0, 0, 0, 0, 382, 387, 491, 585, 586, + 605, 601, 603, 494, 607, 0, 376, 372, 375, 0, + 352, 0, 348, 0, 91, 0, 0, 0, 583, 0, + 0, 578, 0, 0, 0, 0, 588, 0, 132, 124, + 118, 128, 126, 130, 0, 120, 122, 407, 109, 223, + 0, 222, 307, 304, 0, 500, 498, 499, 488, 478, + 480, 482, 484, 486, 490, 0, 0, 522, 524, 541, + 550, 0, 0, 151, 0, 373, 257, 347, 349, 395, + 507, 576, 577, 0, 581, 582, 205, 209, 208, 0, + 56, 42, 51, 55, 0, 135, 397, 0, 221, 0, + 313, 410, 526, 529, 383, 388, 264, 377, 374, 213, + 0, 584, 58, 0, 0, 57, 0, 408, 305, 0, + 0, 0, 442, 442, 0, 446, 261, 0, 350, 508, + 0, 52, 54, 423, 398, 442, 314, 411, 418, 0, + 417, 439, 527, 530, 384, 443, 389, 262, 378, 514, + 0, 0, 0, 442, 409, 0, 0, 413, 414, 0, + 442, 0, 450, 0, 0, 509, 571, 0, 570, 422, + 436, 437, 438, 0, 428, 429, 399, 329, 336, 334, + 315, 325, 326, 333, 419, 415, 440, 385, 444, 447, + 390, 263, 513, 59, 568, 424, 425, 0, 454, 0, + 0, 0, 0, 0, 213, 331, 0, 0, 0, 0, + 0, 0, 0, 426, 430, 451, 400, 330, 337, 335, + 316, 324, 0, 332, 420, 416, 0, 0, 448, 60, + 569, 0, 0, 0, 0, 339, 327, 441, 445, 0, + 427, 431, 452, 338, 0, 0, 0, 0, 340, 328, + 449, 458, 0, 455, 453, 456, 0, 457 }; - /* YYPGOTONTERM-NUM. */ + /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -613, -613, 378, 382, 632, -585, -613, -613, -613, -613, - -613, -613, -613, -613, -613, -613, -613, -613, -613, -613, - -613, -576, -613, -613, -613, -613, -613, -613, -613, -613, - -613, -613, -613, -613, -613, -613, -54, -613, -613, -613, - -613, -613, -613, -613, -613, -613, -613, -613, 279, -613, - -613, 127, -613, -613, -613, 666, -613, -613, -613, -613, - -613, -613, -613, 669, -613, 286, -613, -613, -246, -613, - -613, 276, 197, -613, -613, -613, -315, -613, -353, -613, - -613, -613, -613, -613, -613, -613, -613, -324, -613, -613, - -22, -613, -613, -191, -10, -613, 6, -613, -613, -613, - -613, -189, 53, -217, -613, 314, 332, 353, -78, -73, - -96, -18, -613, -302, -613, -613, -613, -613, -613, -613, - -613, -613, 15, -82, 645, -613, -613, -613, -613, 64, - 146, 16, -613, 174, -613, -31, 253, -440, -613, -613, - -613, 141, -613, -613, -612, -5, -613, -613, -7, -613, - -59, -613, -613, -46, -39, -55, -49, -48, 376, -613, - -40, -613, -38, -613, -613, -613, -613, 323, 398, 261, - -613, -613, -613, -37, -613, -32, -613, -613, -613, -613, - -613, -613, -613, -613, -613, -77, -613, -613, -613, -613, - -613, -76, -613, -613, -613, -613, -613, -613, -613, -41, - -613, -613, -613, -613, -613, -613, -613, 27, -613, -613, - -613, -613, -613, -613, -613, -70, -613, -613, -613, -69, - -613, -613, -613, -613, -613, -613, -613, 62, -613, -613, - -326, -613, -613, -613, -613, -613, -613, -613, -613, -613, - -613, 17, -613, -613, -613, -613, -613, -613, -613, -613, - -613, -613, -613, -613, -613, -613, -613, -532, -613, -613, - -613, -613, -613, -68, -613, -613, -613, -613, -613, -613, - -613, -613, -93, -613, -613, -505, -613, -549, -613, -613, - -613, -613, -613, -613, -613, -613, -613, -613, -613, -613, - -613, -613, 18, 21, -613, -613, -613, -613, -613, -613, - -613, -613, -613, 393, -613, -613, 258, -613, -613, -613, - -613, -613, -613, -613, -330, 342, -319, -613, -613, -613, - -613, -613, -613, -613, -613, -613, -613, -613, -613, -613, - -613, -613, -613, -613, -613, -613, -613, -613, -613, -613, - -613, -613, -613, -613, -613, -613, -613, -613, -613, -613, - -613, -613, -613, -613, -613, -613, -613, -613, 685, -613, - -613, -613, -613, -613, -613, -613, -613, -613, 390, -613, - -613, -67, -613, -613, -613, -613, -613, -613, -613, 120, - -613, 419, -613, -613, 209, -613, -613, -613, -613, -613, - -613, -613, -613, -613, -613, -613, -613, -613 + -672, -672, 287, 288, 546, -592, -672, -672, -672, -672, + -672, -672, -672, -672, -672, -672, -672, -672, -672, -672, + -672, -579, -672, -672, -672, -672, -672, -672, -672, -672, + -672, -672, -672, -672, -672, -672, -148, -672, -672, -672, + -672, -672, -672, -672, -672, -672, -672, -672, 37, -672, + -672, 24, -672, -672, -672, 580, -672, -672, -672, -672, + -672, -672, -672, 582, -672, 215, -672, -672, -246, -672, + -672, 179, 103, -672, -672, -672, -319, -672, -360, -672, + -672, -672, -672, -672, -672, -672, -672, -332, -672, -672, + -22, -672, -672, -188, -10, -672, 6, -672, -672, -672, + -672, -196, -44, -226, -672, 217, 213, 216, -158, -154, + -201, -119, -672, -318, -672, -672, -672, -672, -672, -672, + -672, -672, 23, -82, 553, -672, -672, -672, -672, -74, + 7, 16, -672, 46, -672, -31, 108, -457, -672, -672, + -672, 8, -672, -672, -610, -143, -672, -672, -7, -672, + -66, -672, -672, -61, -42, -59, -56, -55, 250, -672, + -40, -672, -38, -672, -672, -672, -672, 174, 259, 121, + -672, -672, -672, -37, -672, -32, -672, -672, -672, -672, + -672, -672, -672, -672, -672, -217, -672, -672, -672, -672, + -672, -218, -672, -672, -672, -672, -672, -672, -672, -41, + -672, -672, -672, -672, -672, -672, -672, -112, -672, -672, + -672, -672, -672, -672, -672, -70, -672, -672, -672, -69, + -672, -672, -672, -672, -672, -672, -672, -76, -672, -672, + -326, -672, -672, -672, -672, -672, -672, -672, -672, -672, + -672, 17, -672, -672, -672, -672, -672, -672, -672, -672, + -672, -672, -672, -672, -672, -672, -672, -622, -672, -672, + -672, -672, -672, -207, -672, -672, -672, -672, -672, -672, + -672, -672, -227, -672, -672, -501, -672, -671, -672, -672, + -672, -672, -672, -672, -672, -672, -672, -672, -672, -672, + -672, -672, 18, 21, -672, -672, -672, -672, -672, -672, + -672, -672, -672, 258, -672, -672, 125, -672, -672, -672, + -672, -672, -672, -672, -325, 212, -322, -672, -672, -672, + -672, -672, -672, -672, -672, -672, -672, -672, -672, -672, + -672, -672, -672, -672, -672, -672, -672, -672, -672, -672, + -672, -672, -672, -672, -672, -672, -672, -672, -672, -672, + -672, -672, -672, -672, -672, -672, -672, -672, 559, -672, + -672, -672, -672, -672, -672, -672, -672, -672, 283, -672, + -672, -183, -672, -672, -672, -672, -672, -672, -672, 3, + -672, 304, -672, -672, 94, -672, -672, -672, -672, -672, + -672, -672, -672, -672, -672, -672, -672, -672 }; - /* YYDEFGOTONTERM-NUM. */ + /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 2, 3, 27, 28, 172, 176, 180, 181, - 171, 179, 121, 116, 125, 182, 184, 186, 190, 191, - 82, 29, 84, 30, 115, 298, 449, 31, 32, 117, - 302, 451, 657, 735, 714, 736, 715, 716, 752, 833, - 33, 118, 391, 34, 35, 124, 333, 470, 36, 85, - 37, 142, 332, 38, 39, 40, 126, 334, 484, 41, - 217, 362, 551, 42, 258, 43, 102, 248, 340, 44, - 45, 396, 485, 586, 486, 487, 394, 395, 471, 569, - 580, 581, 567, 571, 570, 572, 565, 392, 466, 659, - 318, 222, 293, 109, 354, 46, 472, 83, 284, 428, - 637, 197, 319, 336, 321, 322, 323, 324, 325, 326, - 327, 328, 329, 337, 48, 297, 370, 444, 556, 445, - 446, 656, 473, 50, 296, 344, 404, 498, 499, 595, - 500, 474, 86, 208, 285, 209, 145, 146, 147, 148, - 52, 355, 430, 641, 356, 727, 748, 785, 357, 358, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 53, 87, 54, 177, 345, 504, 406, 505, 599, 503, - 597, 721, 596, 55, 88, 56, 268, 408, 676, 741, - 777, 824, 606, 802, 825, 803, 826, 867, 821, 804, - 827, 805, 823, 822, 856, 858, 866, 57, 58, 59, - 89, 286, 431, 643, 548, 644, 731, 549, 164, 341, - 493, 165, 257, 398, 166, 167, 342, 494, 168, 169, - 343, 495, 170, 359, 429, 639, 697, 640, 696, 749, - 475, 420, 529, 693, 746, 782, 421, 530, 694, 747, - 784, 476, 90, 287, 432, 645, 477, 666, 738, 775, - 820, 478, 578, 490, 582, 719, 757, 724, 742, 743, - 761, 780, 829, 762, 778, 828, 756, 773, 774, 795, - 818, 853, 796, 819, 854, 579, 797, 764, 781, 830, - 768, 783, 831, 812, 832, 861, 838, 855, 869, 874, - 875, 878, 479, 480, 63, 64, 65, 183, 347, 512, - 66, 220, 364, 290, 363, 409, 513, 614, 615, 616, - 617, 618, 612, 619, 514, 533, 515, 424, 535, 516, - 517, 518, 67, 185, 68, 105, 291, 437, 647, 732, - 771, 366, 436, 787, 276, 348, 523, 410, 524, 623, - 624, 525, 687, 744, 526, 688, 745, 69, 70, 71, - 72, 73, 279, 411, 625, 74, 75, 76, 188, 278, - 77, 280, 412, 626, 78, 241, 242, 303, 243, 789, - 816, 790, 79, 111, 294, 438, 648, 554, 555, 653, - 705, 519, 245, 390, 330, 80, 81, 112, 369, 193, - 283, 426, 352, 427, 539, 540, 538, 542 + 0, 1, 2, 3, 27, 28, 180, 184, 188, 189, + 179, 187, 121, 116, 125, 190, 192, 194, 198, 199, + 82, 29, 84, 30, 115, 306, 457, 31, 32, 117, + 310, 459, 665, 743, 722, 744, 723, 724, 760, 841, + 33, 118, 399, 34, 35, 124, 341, 478, 36, 85, + 37, 150, 340, 38, 39, 40, 126, 342, 492, 41, + 225, 370, 559, 42, 266, 43, 102, 256, 348, 44, + 45, 404, 493, 594, 494, 495, 402, 403, 479, 577, + 588, 589, 575, 579, 578, 580, 573, 400, 474, 667, + 326, 230, 301, 109, 362, 46, 480, 83, 292, 436, + 645, 205, 327, 344, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 345, 48, 305, 378, 452, 564, 453, + 454, 664, 481, 50, 304, 352, 412, 506, 507, 603, + 508, 482, 86, 216, 293, 217, 153, 154, 155, 156, + 52, 363, 438, 649, 364, 735, 756, 793, 365, 366, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 53, 87, 54, 185, 353, 512, 414, 513, 607, 511, + 605, 729, 604, 55, 88, 56, 276, 416, 684, 749, + 785, 832, 614, 810, 833, 811, 834, 875, 829, 812, + 835, 813, 831, 830, 864, 866, 874, 57, 58, 59, + 89, 294, 439, 651, 556, 652, 739, 557, 172, 349, + 501, 173, 265, 406, 174, 175, 350, 502, 176, 177, + 351, 503, 178, 367, 437, 647, 705, 648, 704, 757, + 483, 428, 537, 701, 754, 790, 429, 538, 702, 755, + 792, 484, 90, 295, 440, 653, 485, 674, 746, 783, + 828, 486, 586, 498, 590, 727, 765, 732, 750, 751, + 769, 788, 837, 770, 786, 836, 764, 781, 782, 803, + 826, 861, 804, 827, 862, 587, 805, 772, 789, 838, + 776, 791, 839, 820, 840, 869, 846, 863, 877, 882, + 883, 886, 487, 488, 63, 64, 65, 191, 355, 520, + 66, 228, 372, 298, 371, 417, 521, 622, 623, 624, + 625, 626, 620, 627, 522, 541, 523, 432, 543, 524, + 525, 526, 67, 193, 68, 105, 299, 445, 655, 740, + 779, 374, 444, 795, 284, 356, 531, 418, 532, 631, + 632, 533, 695, 752, 534, 696, 753, 69, 70, 71, + 72, 73, 287, 419, 633, 74, 75, 76, 196, 286, + 77, 288, 420, 634, 78, 249, 250, 311, 251, 797, + 824, 798, 79, 111, 302, 446, 656, 562, 563, 661, + 713, 527, 253, 398, 338, 80, 81, 112, 377, 201, + 291, 434, 360, 435, 547, 548, 546, 550 }; - /* YYTABLEYYPACT[STATE-NUM] -- What to do in state STATE-NUM. If + /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 108, 110, 163, 159, 92, 160, 161, 93, 47, 103, - 104, 162, 144, 204, 205, 399, 113, 49, 51, 60, - 61, 143, 422, 62, 198, 628, 419, 320, 201, 698, - 227, 292, 349, 423, 202, 203, 244, 199, 575, 400, - 401, 402, 299, 488, 200, 163, 159, 433, 160, 161, - 223, 8, 4, 106, 162, 47, 224, 522, 295, 799, - 91, 196, 206, 642, 143, 51, 60, 61, -144, -145, - 62, 119, 712, 122, 122, 207, 225, 210, 211, 212, - 213, 713, 224, 511, 8, 215, 800, 801, 106, 218, - 575, 630, 219, 631, 18, 221, 527, 120, 95, 106, - 379, 106, 367, 114, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 195, 137, 138, 106, 531, 435, 174, - 568, 140, 141, 304, 305, 306, 307, 308, 309, 310, - 311, 107, -333, 106, 312, 313, 488, 174, 600, 128, - 129, 178, 174, 132, 133, 134, 135, 174, -315, 314, - 315, 712, 265, 12, 316, 317, 725, 259, -363, 260, - 713, 204, 205, 123, 192, -146, 107, 413, 414, 224, - 122, 224, 198, 174, 106, 488, 201, 107, -363, 107, - 491, 443, 202, 203, 511, 199, 497, 739, 726, 413, - 414, 553, 200, 638, 224, -100, 765, 415, 254, 255, - 122, 187, 416, 799, 122, 187, 18, 106, 776, 196, - 99, 107, 496, 383, 384, 252, 846, 174, 253, 415, - 194, 214, -455, 216, 416, 651, 798, 417, 418, 650, - 800, 801, -528, 809, 385, 386, 652, 387, 388, 389, - 228, -47, 863, -47, 304, 305, 306, 307, 308, 309, - 310, 311, 107, 575, 870, 312, 313, -47, -47, 226, - -47, -47, 229, 405, -47, 792, 793, 794, 800, 801, - 314, 315, 230, 806, 353, 316, 317, 304, 305, 306, - 307, 308, 309, 310, 311, 107, -47, 246, 312, 313, - -47, 461, 462, 463, 94, 96, 376, 377, 378, 247, - 204, 205, 98, 101, -47, 457, 458, 249, 250, 317, - 393, 198, 459, 460, 836, 201, 492, 393, 251, 651, - 224, 202, 203, 650, 199, 256, 506, 261, 289, 448, - 652, 200, 262, 263, 264, 231, -212, 232, 575, 267, - 266, 434, 629, 269, 106, 270, 320, 545, 196, 547, - 635, 233, 234, 271, 235, 236, 272, 274, 237, 273, - 275, 277, 281, 282, 163, 159, -529, 160, 161, 288, - 301, 335, 300, 162, 502, 671, 442, 47, 338, 575, - 238, 465, 563, 143, 239, 331, 49, 51, 60, 61, - 339, 350, 62, 532, 729, 536, 537, 346, 240, 351, - 360, 361, 532, 672, 368, 373, 365, 382, 576, 577, - 374, 489, 380, 375, 552, 397, -44, 677, 678, 679, - 320, 381, 403, 405, 510, 450, 453, 534, 464, 543, - 544, 546, 557, 559, 561, 558, 560, 562, 709, 566, - 583, 564, 593, 587, 589, 163, 159, 602, 160, 161, - 590, 603, 591, 594, 162, 502, 574, 604, 605, 592, - 576, 577, 598, -291, 143, 607, 106, 613, 405, 622, - 143, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 195, 137, 138, 627, 601, 608, 609, 610, 140, 141, - -386, 413, 414, 632, 633, 634, 636, 573, 655, 646, - -567, 660, 661, 662, 663, 664, 848, 849, 574, 665, - 620, 621, 507, 508, 667, 163, 159, 668, 160, 161, - 669, 415, 509, 670, 162, 674, 416, 252, 680, 417, - 418, 681, 682, 683, 143, 684, 685, 868, 686, 689, - 106, 690, 706, 489, 107, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 10, 11, 700, - 12, 139, 140, 141, 691, 467, 692, -395, 6, 699, - 649, 9, -395, -395, -395, -395, -395, -395, -395, -395, - -395, -395, -395, -395, 10, 11, 701, 12, 702, -395, - -395, 13, 703, 707, 413, 414, 468, 469, -395, 708, - 710, 718, 638, 722, 14, 840, 723, -404, 481, 482, - 483, 733, 737, 740, 755, 760, 753, 758, 107, 759, - 763, 767, 770, 576, 577, -101, 769, 22, 23, 772, - 122, 413, 414, -413, 786, 779, 788, 717, 807, 791, - 808, 810, 815, 811, 837, -395, 817, 834, 835, 547, - 839, -213, 507, 508, -86, 842, 841, 850, 871, 873, - 864, 415, 509, 47, 859, 860, 416, 865, 879, 417, - 418, 574, 877, 51, 60, 61, 371, 872, 62, 876, - 372, 173, 754, 100, 92, 97, 585, 728, 528, 734, - 695, -458, 106, 6, 454, 175, 440, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 195, 137, 576, 577, - 751, 106, 12, 455, 140, 141, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 10, 11, - 654, 12, 139, 140, 141, 456, 92, 720, 675, 728, - 673, 766, 47, 407, 844, 588, 447, 584, 843, 576, - 577, 845, 51, 60, 61, 550, 574, 62, 750, 730, - 862, 847, 439, 189, 814, 452, 541, 852, 611, 704, - 107, 425, 658, 0, 0, 92, 0, 0, 813, 441, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 107, - 0, 0, 0, 0, 0, 174, 0, 574, 0, 0, - 0, 0, 0, 163, 159, 0, 160, 161, 393, 393, - 0, 0, 162, 857, 0, 0, 0, 0, 467, 0, - -395, 6, 143, 851, 9, -395, -395, -395, -395, -395, - -395, -395, -395, -395, -395, -395, -395, 10, 11, 393, - 12, 0, -395, -395, 13, 0, 0, 413, 414, 468, - 469, -395, 0, 0, 0, 0, 0, 14, 0, 0, - 106, 481, 482, 483, 0, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 195, 0, 0, 501, 0, 106, - 22, 23, 140, 141, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 10, 11, -395, 12, - 139, 140, 141, 467, -213, -395, 6, -541, 0, 9, - -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, - -395, -395, 10, 11, 0, 12, 0, -395, -395, 13, - 0, 0, 413, 414, 468, 469, -395, 0, 107, 0, - 0, 0, 14, 0, 0, 0, 520, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 521, 107, 0, 0, - 0, 0, 0, 174, 0, 22, 23, 0, 0, 0, + 108, 110, 171, 167, 92, 168, 169, 93, 47, 103, + 104, 170, 152, 212, 213, 407, 113, 206, 51, 60, + 61, 151, 207, 62, 209, 49, 328, 210, 211, 583, + 235, 408, 409, 410, 427, 430, 252, 636, 431, 706, + 357, 208, 300, 307, 496, 171, 167, 303, 168, 169, + 650, 441, 94, 96, 170, 47, 807, 106, 530, 106, + 123, 204, 214, 8, 151, 51, 60, 61, 638, 639, + 62, 106, 106, 720, 733, 215, 807, 218, 219, 220, + 221, 583, 773, 808, 809, 223, 721, 539, -144, 226, + 4, 519, 227, 122, 784, 229, -371, 182, 195, 387, + 535, 231, 195, 808, 809, 747, 18, 18, 233, -145, + 95, 99, 806, 375, 122, 232, -371, 646, 222, 817, + 224, 576, 232, 395, 396, 397, 443, 312, 313, 314, + 315, 316, 317, 318, 319, -146, -100, 496, 106, 182, + 122, 122, 182, 107, 91, 107, 320, 321, 260, 182, + 8, 261, 720, -323, 232, 232, 182, 107, 232, 114, + 273, 322, 323, 421, 422, 721, 324, 325, 186, 212, + 213, 122, 267, 206, 268, 119, 496, 120, 207, 499, + 209, -341, 451, 210, 211, 505, 106, 800, 801, 802, + 421, 422, 519, 423, 469, 470, 471, 208, 424, 561, + 734, 425, 426, 384, 385, 386, 262, 263, 312, 313, + 314, 315, 316, 317, 318, 319, 200, 204, 391, 392, + 423, 393, 394, 504, 107, 424, 854, 320, 321, 808, + 809, 98, 101, 465, 466, 202, 234, 658, 659, 467, + 468, 660, 322, 323, 583, -463, -536, 324, 325, 297, + 236, 237, 871, 238, 254, 255, 312, 313, 314, 315, + 316, 317, 318, 319, 878, 257, 258, 421, 422, 259, + 264, 413, 107, 232, 269, 320, 321, 270, 271, 106, + 308, 272, 361, -212, 275, 814, 274, 277, 515, 516, + 278, 279, 280, 309, 281, 282, 325, 423, 517, 283, + 285, 289, 424, 296, 290, 425, 426, -537, 212, 213, + 339, 343, 206, 346, 347, 358, 354, 207, 401, 209, + 359, 368, 210, 211, 500, 401, 844, 369, 373, 583, + 381, 658, 659, 376, 514, 660, 208, 456, 382, 388, + 390, 383, 405, -44, 411, 328, 389, 458, 472, 442, + 542, 551, 552, 637, 554, 553, 204, 555, 461, 565, + 567, 643, 569, 568, 572, 570, 595, 574, 591, 601, + 583, 597, 171, 167, 679, 168, 169, 598, 599, 606, + -299, 170, 510, 600, 450, 47, 737, 602, 635, 473, + 571, 151, 621, 630, 640, 51, 60, 61, 641, -394, + 62, 540, 49, 544, 545, 642, 644, 663, 668, 654, + 540, 421, 422, -575, 680, 669, 584, 585, 670, 328, + 671, 672, 560, 677, 673, 675, 676, 497, 685, 686, + 687, 413, 515, 516, 678, 682, 260, 717, 688, 689, + 518, 423, 517, 566, 690, 691, 424, 692, 610, 425, + 426, 693, 694, 171, 167, 611, 168, 169, 612, 613, + 697, 698, 170, 510, 582, -47, 699, -47, 584, 585, + 700, 707, 151, 615, 709, 710, 413, 708, 151, -466, + 711, -47, -47, 714, -47, -47, 715, 716, -47, 718, + 726, 730, 609, 616, 617, 618, 731, 741, 745, 646, + 748, -412, 763, 761, 766, 768, 856, 857, 767, 771, + -47, 775, 777, 778, -47, 780, 582, -421, 628, 629, + 787, 794, 796, 171, 167, 799, 168, 169, -47, 815, + 816, 818, 170, 823, 819, 825, 842, 876, 843, 845, + 106, 847, 151, 849, 850, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 10, 11, 497, + 12, 139, 140, 141, 858, 873, 867, 868, 106, 6, + 872, 879, 448, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 203, 137, 881, 885, 657, 880, 12, 887, + 140, 141, 884, 379, 380, 181, 762, 100, 97, 536, + 593, 703, 463, 183, 848, 462, 464, 728, 596, 681, + 662, 774, 415, 683, 558, 592, 851, 853, 142, 143, + 144, 145, 146, 147, 148, 149, 107, 758, 455, 738, + 855, 584, 585, -101, 870, 447, 5, 197, 122, 6, + 7, 8, 9, 619, 549, 725, 142, 143, 144, 145, + 146, 147, 148, 149, 107, 10, 11, 555, 12, 860, + 712, 0, 13, 449, 433, 666, 460, 0, 0, 0, + 0, 47, 0, 0, 0, 14, 15, 16, 17, 582, + 0, 51, 60, 61, 18, 19, 62, 0, 20, 0, + 0, 21, 92, 0, 0, 736, 0, 742, 22, 23, + 0, 0, 0, 0, 0, 24, 25, 719, 0, 0, + 0, 0, 0, 0, 106, 0, 584, 585, 759, 608, + 128, 129, 0, 0, 132, 133, 134, 135, 0, 26, + 0, 0, 0, -53, 12, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 92, 0, 0, 736, 0, 0, + 47, 0, 852, 0, 0, 0, 0, 584, 585, 0, + 51, 60, 61, 0, 582, 62, 0, 0, 0, 0, + 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 92, 0, 0, 821, 0, 0, 0, + 0, 0, 142, 143, 144, 145, 146, 147, 148, 149, + 107, 0, 0, 0, 0, 582, 182, 0, 0, 0, + 0, 171, 167, 0, 168, 169, 401, 401, 0, 0, + 170, 865, 0, 0, 0, 0, 475, 0, -403, 6, + 151, 859, 9, -403, -403, -403, -403, -403, -403, -403, + -403, -403, -403, -403, -403, 10, 11, 401, 12, 0, + -403, -403, 13, 0, 0, 421, 422, 476, 477, -403, + 0, 0, 0, 0, 0, 14, 0, 0, 0, 489, + 490, 491, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 22, 23, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -403, -403, -403, -403, + -403, -403, -403, -403, -403, 0, 0, 0, 0, 475, + -213, -403, 6, -86, 0, 9, -403, -403, -403, -403, + -403, -403, -403, -403, -403, -403, -403, -403, 10, 11, + 0, 12, 0, -403, -403, 13, 0, 0, 421, 422, + 476, 477, -403, 0, 0, 0, 0, 0, 14, 0, + 0, 0, 489, 490, 491, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 22, 23, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -403, + -403, -403, -403, -403, -403, -403, -403, -403, 0, 0, + 0, 0, 475, -213, -403, 6, -549, 0, 9, -403, + -403, -403, -403, -403, -403, -403, -403, -403, -403, -403, + -403, 10, 11, 0, 12, 0, -403, -403, 13, 0, + 0, 421, 422, 476, 477, -403, 0, 0, 0, 0, + 0, 14, 0, 0, 0, 528, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, + 0, 0, 0, 0, 22, 23, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, -403, -403, -403, -403, -403, -403, -403, -403, + -403, 0, 0, 0, 475, 0, -403, 6, 0, -516, + 9, -403, -403, -403, -403, -403, -403, -403, -403, -403, + -403, -403, -403, 10, 11, 0, 12, 0, -403, -403, + 13, 0, 0, 421, 422, 476, 477, -403, 0, 0, + 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -395, 0, 0, 0, 467, 0, -395, - 6, 0, -508, 9, -395, -395, -395, -395, -395, -395, - -395, -395, -395, -395, -395, -395, 10, 11, 0, 12, - 0, -395, -395, 13, 0, 0, 413, 414, 468, 469, - -395, 0, 467, 0, -395, 6, 14, 0, 9, -395, - -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, - -395, 10, 11, 0, 12, 0, -395, -395, 13, 22, - 23, 413, 414, 468, 469, -395, 0, 0, 0, 0, - 0, 14, 0, 0, 0, 0, 0, -395, 0, 0, - 0, 0, 0, -213, 0, 0, -68, 0, 0, 0, - 0, 0, 106, 0, 22, 23, 0, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 0, - 0, 0, -395, 139, 140, 141, 0, 467, -213, -395, - 6, -90, 0, 9, -395, -395, -395, -395, -395, -395, - -395, -395, -395, -395, -395, -395, 10, 11, 0, 12, - 0, -395, -395, 13, 0, 0, 413, 414, 468, 469, - -395, 0, 0, 0, 0, 0, 14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, - 107, 6, 7, 8, 9, 0, 174, 0, 0, 22, - 23, 0, 0, 0, 0, 0, 0, 10, 11, 0, - 12, 0, 0, 0, 13, 0, 0, -395, 0, 0, - 0, 0, 0, -213, 0, 0, -532, 14, 15, 16, - 17, 0, 0, 0, 0, 0, 18, 19, 0, 0, - 20, -2, 5, 21, 0, 6, 7, 8, 9, 0, - 22, 23, 0, 0, 0, 0, 0, 24, 25, 711, - 0, 10, 11, 0, 12, 0, 0, 0, 13, 0, - 0, 0, 0, 26, 0, 0, 0, -53, 0, 0, - 0, 14, 15, 16, 17, 0, 0, 0, 0, 0, - 18, 19, 0, 0, 20, 5, 0, 21, 6, 7, - 8, 9, 0, 0, 22, 23, 0, 0, 0, 0, - 0, 24, 25, 0, 10, 11, 0, 12, 0, 0, + 0, 0, 0, 0, 0, 0, 22, 23, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, -403, -403, -403, -403, -403, -403, + -403, -403, -403, 0, 0, 0, 0, 475, -213, -403, + 6, -68, 0, 9, -403, -403, -403, -403, -403, -403, + -403, -403, -403, -403, -403, -403, 10, 11, 0, 12, + 0, -403, -403, 13, 0, 0, 421, 422, 476, 477, + -403, 0, 0, 0, 0, 0, 14, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, + 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -403, -403, -403, + -403, -403, -403, -403, -403, -403, 0, 0, 0, 0, + 475, -213, -403, 6, -90, 0, 9, -403, -403, -403, + -403, -403, -403, -403, -403, -403, -403, -403, -403, 10, + 11, 0, 12, 0, -403, -403, 13, 0, 0, 421, + 422, 476, 477, -403, 0, 0, 0, 0, 0, 14, + 0, 0, 0, 0, 0, 0, 0, 0, 0, -2, + 5, 0, 0, 6, 7, 8, 9, 0, 0, 0, + 0, 0, 22, 23, 0, 0, 0, 0, 0, 10, + 11, 0, 12, 0, 0, 0, 13, 0, 0, 0, + -403, -403, -403, -403, -403, -403, -403, -403, -403, 14, + 15, 16, 17, 0, -213, 0, 0, -540, 18, 19, + 0, 0, 20, 0, 0, 21, 0, 0, 0, 0, + 0, 0, 22, 23, 509, 0, 106, 0, 0, 24, + 25, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 10, 11, 0, 12, 139, 140, 141, + 0, 0, 0, 26, -213, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 0, 0, 6, 7, 8, + 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 10, 11, 0, 12, 0, 0, 0, + 13, 0, 0, 0, 142, 143, 144, 145, 146, 147, + 148, 149, 107, 14, 15, 16, 17, 0, 182, 0, + 0, 0, 18, 19, 0, 0, 20, 0, 0, 21, + 0, 0, 0, 0, 0, 5, 22, 23, 6, 7, + 8, 9, 0, 24, 25, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 10, 11, 0, 12, 0, 0, 5, 13, 0, 6, 7, 8, 9, 26, -213, 0, 0, 0, 0, 0, 14, 15, 16, 17, 0, 10, 11, 0, 12, 18, 19, 0, 13, 20, 0, 0, 21, 0, 0, 0, 0, 0, 0, 22, 23, 14, - 15, 16, 17, 0, 24, 25, 0, 0, 18, 19, - 0, 0, 20, 5, 0, 21, 6, 7, 8, 9, - 26, -213, 22, 23, 0, 0, 0, 0, 0, 24, - 25, 711, 10, 11, 0, 12, 0, 0, 0, 13, - 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, - 0, 0, 14, 15, 16, 17, 0, 0, 0, 0, - 0, 18, 19, 0, 0, 20, 0, 0, 21, 0, - 0, 0, 0, 0, 0, 22, 23, 0, 0, 0, - 0, 0, 24, 25, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 467, 0, -395, 6, 0, 26, 9, - -395, -395, -395, -395, -395, -395, -395, -395, -395, -395, - -395, -395, 10, 11, 0, 12, 0, -395, -395, 13, - 0, 0, 413, 414, 468, 469, -395, 0, 0, 0, - 0, 0, 14, 0, 0, 0, 481, 482, 483, 0, + 15, 16, 17, 0, 24, 25, 719, 0, 18, 19, + 0, 0, 20, 0, 0, 21, 0, 0, 0, 0, + 0, 0, 22, 23, 0, 0, 106, 0, 26, 24, + 25, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 10, 11, 0, 12, 139, 140, 141, + 106, 0, 0, 26, 0, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 0, 0, 0, + 0, 139, 140, 141, 0, 239, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 22, 23, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 467, 0, - -395, 6, 0, -395, 9, -395, -395, -395, -395, -395, - -395, -395, -395, -395, -395, -395, -395, 10, 11, 0, - 12, 0, -395, -395, 13, 0, 0, 413, 414, 468, - 469, -395, 501, 0, 106, 0, 0, 14, 0, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 10, 11, 0, 12, 139, 140, 141, 0, 106, - 22, 23, 0, 0, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 10, 11, -395, 12, - 139, 140, 141, 0, 0, 0, 0, 0, 0, 0, + 0, 241, 242, 0, 243, 244, 0, 0, 245, 0, + 0, 0, 0, 0, 142, 143, 144, 145, 146, 147, + 148, 149, 107, 0, 0, 0, 0, 0, 182, 0, + 246, 0, 0, 0, 247, 0, 0, 0, 142, 143, + 144, 145, 146, 147, 148, 149, 107, 475, 248, -403, + 6, 0, 182, 9, -403, -403, -403, -403, -403, -403, + -403, -403, -403, -403, -403, -403, 10, 11, 0, 12, + 0, -403, -403, 13, 0, 0, 421, 422, 476, 477, + -403, 0, 0, 0, 0, 0, 14, 0, 0, 0, + 489, 490, 491, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, + 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, -403, -403, -403, + -403, -403, -403, -403, -403, -403, 475, 0, -403, 6, + 0, 0, 9, -403, -403, -403, -403, -403, -403, -403, + -403, -403, -403, -403, -403, 10, 11, 0, 12, 0, + -403, -403, 13, 0, 0, 421, 422, 476, 477, -403, + 509, 0, 106, 0, 0, 14, 0, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 10, + 11, 0, 12, 139, 140, 141, 0, 0, 22, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, -403, -403, -403, -403, + -403, -403, -403, -403, -403, 106, 0, 0, 0, 0, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 10, 11, 0, 12, 139, 140, 141, 0, + 142, 143, 144, 145, 146, 147, 148, 149, 107, 106, + 0, 0, 0, 0, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 203, 137, 138, 0, 0, 0, 0, + 0, 140, 141, 0, 0, 0, 0, 0, 0, 0, + 581, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 142, 143, 144, 145, 146, 147, 148, + 149, 107, 106, 0, 0, 0, 0, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 203, 137, 138, 0, + 0, 0, 0, 0, 140, 141, 0, 142, 143, 144, + 145, 146, 147, 148, 149, 107, 106, 0, 0, 0, + 0, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 203, 0, 0, 0, 0, 0, 0, 0, 140, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 107 + 142, 143, 144, 145, 146, 147, 148, 149, 107, 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, 142, 143, 144, 145, 146, 147, + 148, 149, 107 }; static const yytype_int16 yycheck[] = { 22, 23, 43, 43, 14, 43, 43, 14, 2, 19, - 20, 43, 43, 83, 83, 339, 26, 2, 2, 2, - 2, 43, 352, 2, 83, 530, 352, 244, 83, 641, - 112, 222, 278, 352, 83, 83, 118, 83, 478, 341, - 342, 343, 231, 396, 83, 86, 86, 362, 86, 86, - 75, 6, 0, 3, 86, 49, 81, 410, 3, 1, - 3, 83, 84, 3, 86, 49, 49, 49, 88, 88, - 49, 88, 657, 93, 93, 85, 75, 87, 88, 89, - 90, 657, 81, 409, 6, 95, 28, 29, 3, 99, - 530, 3, 102, 3, 49, 105, 411, 88, 53, 3, - 317, 3, 293, 91, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 3, 19, 364, 87, - 473, 25, 26, 73, 74, 75, 76, 77, 78, 79, - 80, 81, 88, 3, 84, 85, 489, 87, 8, 9, - 10, 22, 87, 13, 14, 15, 16, 87, 90, 99, - 100, 736, 174, 23, 104, 105, 688, 92, 87, 94, - 736, 231, 231, 36, 89, 88, 81, 30, 31, 81, - 93, 81, 231, 87, 3, 528, 231, 81, 107, 81, - 397, 370, 231, 231, 510, 231, 403, 719, 693, 30, - 31, 437, 231, 107, 81, 88, 745, 60, 8, 9, - 93, 74, 65, 1, 93, 78, 49, 3, 757, 231, - 53, 81, 403, 82, 83, 8, 828, 87, 11, 60, - 88, 94, 88, 96, 65, 555, 775, 68, 69, 555, - 28, 29, 88, 782, 99, 100, 555, 101, 102, 103, - 89, 4, 854, 6, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 693, 866, 84, 85, 20, 21, 3, - 23, 24, 89, 345, 27, 35, 36, 37, 28, 29, - 99, 100, 88, 778, 284, 104, 105, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 49, 88, 84, 85, - 53, 387, 388, 389, 15, 16, 314, 315, 316, 48, - 370, 370, 16, 17, 67, 383, 384, 89, 88, 105, - 332, 370, 385, 386, 819, 370, 398, 339, 89, 649, - 81, 370, 370, 649, 370, 91, 408, 91, 93, 370, - 649, 370, 91, 88, 88, 4, 87, 6, 778, 89, - 88, 363, 533, 88, 3, 88, 563, 429, 370, 431, - 541, 20, 21, 88, 23, 24, 88, 88, 27, 89, - 89, 88, 88, 88, 405, 405, 88, 405, 405, 89, - 3, 8, 91, 405, 405, 592, 370, 371, 91, 819, - 49, 391, 464, 405, 53, 92, 371, 371, 371, 371, - 47, 89, 371, 415, 696, 417, 418, 105, 67, 89, - 89, 89, 424, 594, 89, 3, 93, 98, 478, 478, - 92, 396, 96, 94, 436, 94, 90, 608, 609, 610, - 637, 97, 105, 505, 409, 92, 106, 58, 94, 90, - 95, 94, 88, 88, 3, 445, 90, 89, 655, 90, - 90, 94, 106, 92, 92, 486, 486, 506, 486, 486, - 92, 506, 92, 94, 486, 486, 478, 506, 506, 95, - 530, 530, 90, 90, 486, 506, 3, 90, 550, 90, - 492, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 31, 506, 507, 508, 509, 25, 26, - 90, 30, 31, 88, 88, 88, 88, 34, 29, 90, - 90, 88, 88, 88, 88, 88, 830, 831, 530, 88, - 520, 521, 51, 52, 88, 556, 556, 88, 556, 556, - 3, 60, 61, 88, 556, 88, 65, 8, 88, 68, - 69, 88, 88, 88, 556, 88, 88, 861, 88, 88, - 3, 88, 88, 528, 81, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 94, - 23, 24, 25, 26, 90, 1, 90, 3, 4, 90, - 555, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 90, 23, 66, 25, - 26, 27, 90, 88, 30, 31, 32, 33, 34, 88, - 88, 3, 107, 106, 40, 822, 105, 35, 44, 45, - 46, 88, 88, 88, 105, 35, 90, 89, 81, 106, - 38, 55, 108, 693, 693, 88, 94, 63, 64, 91, - 93, 30, 31, 106, 59, 106, 3, 659, 94, 106, - 105, 105, 92, 62, 39, 81, 106, 94, 94, 731, - 88, 87, 51, 52, 90, 90, 93, 105, 88, 75, - 105, 60, 61, 657, 106, 106, 65, 93, 75, 68, - 69, 693, 94, 657, 657, 657, 298, 106, 657, 106, - 298, 49, 736, 17, 694, 16, 489, 694, 412, 711, - 637, 90, 3, 4, 380, 50, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 778, 778, - 732, 3, 23, 381, 25, 26, 8, 9, 10, 11, + 20, 43, 43, 83, 83, 347, 26, 83, 2, 2, + 2, 43, 83, 2, 83, 2, 252, 83, 83, 486, + 112, 349, 350, 351, 360, 360, 118, 538, 360, 649, + 286, 83, 230, 239, 404, 86, 86, 3, 86, 86, + 3, 370, 15, 16, 86, 49, 1, 3, 418, 3, + 36, 83, 84, 6, 86, 49, 49, 49, 3, 3, + 49, 3, 3, 665, 696, 85, 1, 87, 88, 89, + 90, 538, 753, 28, 29, 95, 665, 19, 96, 99, + 0, 417, 102, 101, 765, 105, 95, 95, 74, 325, + 419, 75, 78, 28, 29, 727, 49, 49, 75, 96, + 53, 53, 783, 301, 101, 89, 115, 115, 94, 790, + 96, 481, 89, 109, 110, 111, 372, 73, 74, 75, + 76, 77, 78, 79, 80, 96, 96, 497, 3, 95, + 101, 101, 95, 89, 3, 89, 92, 93, 8, 95, + 6, 11, 744, 98, 89, 89, 95, 89, 89, 99, + 182, 107, 108, 30, 31, 744, 112, 113, 22, 239, + 239, 101, 100, 239, 102, 96, 536, 96, 239, 405, + 239, 96, 378, 239, 239, 411, 3, 35, 36, 37, + 30, 31, 518, 60, 395, 396, 397, 239, 65, 445, + 701, 68, 69, 322, 323, 324, 8, 9, 73, 74, + 75, 76, 77, 78, 79, 80, 97, 239, 90, 91, + 60, 107, 108, 411, 89, 65, 836, 92, 93, 28, + 29, 16, 17, 391, 392, 96, 3, 563, 563, 393, + 394, 563, 107, 108, 701, 96, 96, 112, 113, 101, + 97, 97, 862, 96, 96, 48, 73, 74, 75, 76, + 77, 78, 79, 80, 874, 97, 96, 30, 31, 97, + 99, 353, 89, 89, 99, 92, 93, 99, 96, 3, + 99, 96, 292, 95, 97, 786, 96, 96, 51, 52, + 96, 96, 96, 3, 97, 96, 113, 60, 61, 97, + 96, 96, 65, 97, 96, 68, 69, 96, 378, 378, + 100, 8, 378, 99, 47, 97, 113, 378, 340, 378, + 97, 97, 378, 378, 406, 347, 827, 97, 101, 786, + 3, 657, 657, 97, 416, 657, 378, 378, 100, 104, + 106, 102, 102, 98, 113, 571, 105, 100, 102, 371, + 58, 98, 103, 541, 102, 437, 378, 439, 114, 96, + 96, 549, 3, 98, 102, 97, 100, 98, 98, 114, + 827, 100, 413, 413, 600, 413, 413, 100, 100, 98, + 98, 413, 413, 103, 378, 379, 704, 102, 31, 399, + 472, 413, 98, 98, 96, 379, 379, 379, 96, 98, + 379, 423, 379, 425, 426, 96, 96, 29, 96, 98, + 432, 30, 31, 98, 602, 96, 486, 486, 96, 645, + 96, 96, 444, 3, 96, 96, 96, 404, 616, 617, + 618, 513, 51, 52, 96, 96, 8, 663, 96, 96, + 417, 60, 61, 453, 96, 96, 65, 96, 514, 68, + 69, 96, 96, 494, 494, 514, 494, 494, 514, 514, + 96, 96, 494, 494, 486, 4, 98, 6, 538, 538, + 98, 98, 494, 514, 98, 66, 558, 102, 500, 98, + 98, 20, 21, 96, 23, 24, 96, 96, 27, 96, + 3, 114, 514, 515, 516, 517, 113, 96, 96, 115, + 96, 35, 113, 98, 97, 35, 838, 839, 114, 38, + 49, 55, 102, 116, 53, 99, 538, 114, 528, 529, + 114, 59, 3, 564, 564, 114, 564, 564, 67, 102, + 113, 113, 564, 100, 62, 114, 102, 869, 102, 39, + 3, 96, 564, 101, 98, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 536, + 23, 24, 25, 26, 113, 101, 114, 114, 3, 4, + 113, 96, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 75, 102, 563, 114, 23, 75, + 25, 26, 114, 306, 306, 49, 744, 17, 16, 420, + 497, 645, 389, 50, 830, 388, 390, 681, 500, 602, + 564, 754, 353, 605, 440, 494, 833, 835, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 739, 378, 705, + 837, 701, 701, 96, 861, 377, 1, 78, 101, 4, + 5, 6, 7, 518, 432, 667, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 20, 21, 739, 23, 842, + 657, -1, 27, 98, 360, 571, 383, -1, -1, -1, + -1, 665, -1, -1, -1, 40, 41, 42, 43, 701, + -1, 665, 665, 665, 49, 50, 665, -1, 53, -1, + -1, 56, 702, -1, -1, 702, -1, 719, 63, 64, + -1, -1, -1, -1, -1, 70, 71, 72, -1, -1, + -1, -1, -1, -1, 3, -1, 786, 786, 740, 8, + 9, 10, -1, -1, 13, 14, 15, 16, -1, 94, + -1, -1, -1, 98, 23, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 754, -1, -1, 754, -1, -1, + 744, -1, 834, -1, -1, -1, -1, 827, 827, -1, + 744, 744, 744, -1, 786, 744, -1, -1, -1, -1, + -1, -1, 794, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 793, -1, -1, 793, -1, -1, -1, + -1, -1, 81, 82, 83, 84, 85, 86, 87, 88, + 89, -1, -1, -1, -1, 827, 95, -1, -1, -1, + -1, 852, 852, -1, 852, 852, 838, 839, -1, -1, + 852, 852, -1, -1, -1, -1, 1, -1, 3, 4, + 852, 841, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 869, 23, -1, + 25, 26, 27, -1, -1, 30, 31, 32, 33, 34, + -1, -1, -1, -1, -1, 40, -1, -1, -1, 44, + 45, 46, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 63, 64, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 81, 82, 83, 84, + 85, 86, 87, 88, 89, -1, -1, -1, -1, 1, + 95, 3, 4, 98, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 556, 23, 24, 25, 26, 382, 746, 673, 597, 746, - 594, 746, 736, 345, 826, 492, 370, 486, 825, 819, - 819, 827, 736, 736, 736, 432, 778, 736, 731, 697, - 853, 829, 369, 78, 786, 375, 424, 834, 510, 649, - 81, 352, 563, -1, -1, 785, -1, -1, 785, 90, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, - -1, -1, -1, -1, -1, 87, -1, 819, -1, -1, - -1, -1, -1, 844, 844, -1, 844, 844, 830, 831, - -1, -1, 844, 844, -1, -1, -1, -1, 1, -1, - 3, 4, 844, 833, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, 861, - 23, -1, 25, 26, 27, -1, -1, 30, 31, 32, - 33, 34, -1, -1, -1, -1, -1, 40, -1, -1, - 3, 44, 45, 46, -1, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, -1, -1, 1, -1, 3, - 63, 64, 25, 26, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 81, 23, - 24, 25, 26, 1, 87, 3, 4, 90, -1, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, -1, 23, -1, 25, 26, 27, - -1, -1, 30, 31, 32, 33, 34, -1, 81, -1, - -1, -1, 40, -1, -1, -1, 44, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 54, 81, -1, -1, - -1, -1, -1, 87, -1, 63, 64, -1, -1, -1, + -1, 23, -1, 25, 26, 27, -1, -1, 30, 31, + 32, 33, 34, -1, -1, -1, -1, -1, 40, -1, + -1, -1, 44, 45, 46, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 81, -1, -1, -1, 1, -1, 3, - 4, -1, 90, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, - -1, 25, 26, 27, -1, -1, 30, 31, 32, 33, - 34, -1, 1, -1, 3, 4, 40, -1, 7, 8, + -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, + 82, 83, 84, 85, 86, 87, 88, 89, -1, -1, + -1, -1, 1, 95, 3, 4, 98, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, -1, 23, -1, 25, 26, 27, 63, - 64, 30, 31, 32, 33, 34, -1, -1, -1, -1, - -1, 40, -1, -1, -1, -1, -1, 81, -1, -1, - -1, -1, -1, 87, -1, -1, 90, -1, -1, -1, - -1, -1, 3, -1, 63, 64, -1, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, - -1, -1, 81, 24, 25, 26, -1, 1, 87, 3, - 4, 90, -1, 7, 8, 9, 10, 11, 12, 13, + 19, 20, 21, -1, 23, -1, 25, 26, 27, -1, + -1, 30, 31, 32, 33, 34, -1, -1, -1, -1, + -1, 40, -1, -1, -1, 44, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 54, -1, -1, -1, -1, + -1, -1, -1, -1, 63, 64, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 81, 82, 83, 84, 85, 86, 87, 88, + 89, -1, -1, -1, 1, -1, 3, 4, -1, 98, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, -1, 23, -1, 25, 26, + 27, -1, -1, 30, 31, 32, 33, 34, -1, -1, + -1, -1, -1, 40, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 63, 64, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 81, 82, 83, 84, 85, 86, + 87, 88, 89, -1, -1, -1, -1, 1, 95, 3, + 4, 98, -1, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, -1, 25, 26, 27, -1, -1, 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, 40, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, - 81, 4, 5, 6, 7, -1, 87, -1, -1, 63, - 64, -1, -1, -1, -1, -1, -1, 20, 21, -1, - 23, -1, -1, -1, 27, -1, -1, 81, -1, -1, - -1, -1, -1, 87, -1, -1, 90, 40, 41, 42, - 43, -1, -1, -1, -1, -1, 49, 50, -1, -1, - 53, 0, 1, 56, -1, 4, 5, 6, 7, -1, - 63, 64, -1, -1, -1, -1, -1, 70, 71, 72, - -1, 20, 21, -1, 23, -1, -1, -1, 27, -1, - -1, -1, -1, 86, -1, -1, -1, 90, -1, -1, - -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, - 49, 50, -1, -1, 53, 1, -1, 56, 4, 5, - 6, 7, -1, -1, 63, 64, -1, -1, -1, -1, - -1, 70, 71, -1, 20, 21, -1, 23, -1, -1, - 1, 27, -1, 4, 5, 6, 7, 86, 87, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, + 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, + 84, 85, 86, 87, 88, 89, -1, -1, -1, -1, + 1, 95, 3, 4, 98, -1, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, -1, 23, -1, 25, 26, 27, -1, -1, 30, + 31, 32, 33, 34, -1, -1, -1, -1, -1, 40, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, + 1, -1, -1, 4, 5, 6, 7, -1, -1, -1, + -1, -1, 63, 64, -1, -1, -1, -1, -1, 20, + 21, -1, 23, -1, -1, -1, 27, -1, -1, -1, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 40, + 41, 42, 43, -1, 95, -1, -1, 98, 49, 50, + -1, -1, 53, -1, -1, 56, -1, -1, -1, -1, + -1, -1, 63, 64, 1, -1, 3, -1, -1, 70, + 71, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, -1, 23, 24, 25, 26, + -1, -1, -1, 94, 95, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1, -1, -1, 4, 5, 6, + 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 20, 21, -1, 23, -1, -1, -1, + 27, -1, -1, -1, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 40, 41, 42, 43, -1, 95, -1, + -1, -1, 49, 50, -1, -1, 53, -1, -1, 56, + -1, -1, -1, -1, -1, 1, 63, 64, 4, 5, + 6, 7, -1, 70, 71, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 20, 21, -1, 23, -1, -1, + 1, 27, -1, 4, 5, 6, 7, 94, 95, -1, -1, -1, -1, -1, 40, 41, 42, 43, -1, 20, 21, -1, 23, 49, 50, -1, 27, 53, -1, -1, 56, -1, -1, -1, -1, -1, -1, 63, 64, 40, - 41, 42, 43, -1, 70, 71, -1, -1, 49, 50, - -1, -1, 53, 1, -1, 56, 4, 5, 6, 7, - 86, 87, 63, 64, -1, -1, -1, -1, -1, 70, - 71, 72, 20, 21, -1, 23, -1, -1, -1, 27, - -1, -1, -1, -1, -1, 86, -1, -1, -1, -1, - -1, -1, 40, 41, 42, 43, -1, -1, -1, -1, - -1, 49, 50, -1, -1, 53, -1, -1, 56, -1, - -1, -1, -1, -1, -1, 63, 64, -1, -1, -1, - -1, -1, 70, 71, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 1, -1, 3, 4, -1, 86, 7, + 41, 42, 43, -1, 70, 71, 72, -1, 49, 50, + -1, -1, 53, -1, -1, 56, -1, -1, -1, -1, + -1, -1, 63, 64, -1, -1, 3, -1, 94, 70, + 71, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, -1, 23, 24, 25, 26, + 3, -1, -1, 94, -1, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, + -1, 24, 25, 26, -1, 4, -1, 6, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 20, 21, -1, 23, 24, -1, -1, 27, -1, + -1, -1, -1, -1, 81, 82, 83, 84, 85, 86, + 87, 88, 89, -1, -1, -1, -1, -1, 95, -1, + 49, -1, -1, -1, 53, -1, -1, -1, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 1, 67, 3, + 4, -1, 95, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, + -1, 25, 26, 27, -1, -1, 30, 31, 32, 33, + 34, -1, -1, -1, -1, -1, 40, -1, -1, -1, + 44, 45, 46, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 63, + 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 1, -1, 3, 4, + -1, -1, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, -1, 23, -1, + 25, 26, 27, -1, -1, 30, 31, 32, 33, 34, + 1, -1, 3, -1, -1, 40, -1, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, -1, 23, 24, 25, 26, -1, -1, 63, 64, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 3, -1, -1, -1, -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, -1, 23, -1, 25, 26, 27, - -1, -1, 30, 31, 32, 33, 34, -1, -1, -1, - -1, -1, 40, -1, -1, -1, 44, 45, 46, -1, + 18, 19, 20, 21, -1, 23, 24, 25, 26, -1, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 3, + -1, -1, -1, -1, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, -1, -1, -1, -1, + -1, 25, 26, -1, -1, -1, -1, -1, -1, -1, + 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, 82, 83, 84, 85, 86, 87, + 88, 89, 3, -1, -1, -1, -1, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, + -1, -1, -1, -1, 25, 26, -1, 81, 82, 83, + 84, 85, 86, 87, 88, 89, 3, -1, -1, -1, + -1, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, -1, -1, -1, -1, -1, -1, -1, 25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 63, 64, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 1, -1, - 3, 4, -1, 81, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, - 23, -1, 25, 26, 27, -1, -1, 30, 31, 32, - 33, 34, 1, -1, 3, -1, -1, 40, -1, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, -1, 23, 24, 25, 26, -1, 3, - 63, 64, -1, -1, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 81, 23, - 24, 25, 26, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 81, 82, 83, 84, 85, 86, 87, 88, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 81, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 81 + -1, -1, -1, -1, 81, 82, 83, 84, 85, 86, + 87, 88, 89 }; - /* YYSTOSSTATE-NUM -- The (internal number of the) accessing + /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_int16 yystos[] = { - 0, 110, 111, 112, 0, 1, 4, 5, 6, 7, + 0, 118, 119, 120, 0, 1, 4, 5, 6, 7, 20, 21, 23, 27, 40, 41, 42, 43, 49, 50, - 53, 56, 63, 64, 70, 71, 86, 113, 114, 130, - 132, 136, 137, 149, 152, 153, 157, 159, 162, 163, - 164, 168, 172, 174, 178, 179, 204, 205, 223, 231, - 232, 240, 249, 269, 271, 282, 284, 306, 307, 308, - 350, 401, 402, 403, 404, 405, 409, 431, 433, 456, - 457, 458, 459, 460, 464, 465, 466, 469, 473, 481, - 494, 495, 129, 206, 131, 158, 241, 270, 283, 309, - 351, 3, 203, 257, 157, 53, 157, 172, 174, 53, - 164, 174, 175, 203, 203, 434, 3, 81, 199, 202, - 199, 482, 496, 203, 91, 133, 122, 138, 150, 88, - 88, 121, 93, 160, 154, 123, 165, 8, 9, 10, + 53, 56, 63, 64, 70, 71, 94, 121, 122, 138, + 140, 144, 145, 157, 160, 161, 165, 167, 170, 171, + 172, 176, 180, 182, 186, 187, 212, 213, 231, 239, + 240, 248, 257, 277, 279, 290, 292, 314, 315, 316, + 358, 409, 410, 411, 412, 413, 417, 439, 441, 464, + 465, 466, 467, 468, 472, 473, 474, 477, 481, 489, + 502, 503, 137, 214, 139, 166, 249, 278, 291, 317, + 359, 3, 211, 265, 165, 53, 165, 180, 182, 53, + 172, 182, 183, 211, 211, 442, 3, 89, 207, 210, + 207, 490, 504, 211, 99, 141, 130, 146, 158, 96, + 96, 129, 101, 168, 162, 131, 173, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 24, - 25, 26, 160, 199, 244, 245, 246, 247, 248, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 271, 282, 284, 308, 317, 320, 323, 324, 327, 328, - 331, 119, 115, 113, 87, 233, 116, 272, 22, 120, - 117, 118, 124, 406, 125, 432, 126, 160, 467, 467, - 127, 128, 89, 498, 88, 17, 199, 210, 259, 262, - 263, 264, 265, 266, 324, 328, 199, 203, 242, 244, - 203, 203, 203, 203, 160, 203, 160, 169, 203, 203, - 410, 203, 200, 75, 81, 75, 3, 232, 89, 89, - 88, 4, 6, 20, 21, 23, 24, 27, 49, 53, - 67, 474, 475, 477, 232, 491, 88, 48, 176, 89, - 88, 89, 8, 11, 8, 9, 91, 321, 173, 92, - 94, 91, 91, 88, 88, 199, 88, 89, 285, 88, - 88, 88, 88, 89, 88, 89, 443, 88, 468, 461, - 470, 88, 88, 499, 207, 243, 310, 352, 89, 93, - 412, 435, 202, 201, 483, 3, 233, 224, 134, 210, - 91, 3, 139, 476, 73, 74, 75, 76, 77, 78, - 79, 80, 84, 85, 99, 100, 104, 105, 199, 211, - 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, - 493, 92, 161, 155, 166, 8, 212, 222, 91, 47, - 177, 318, 325, 329, 234, 273, 105, 407, 444, 177, - 89, 89, 501, 203, 203, 250, 253, 257, 258, 332, - 89, 89, 170, 413, 411, 93, 440, 202, 89, 497, - 225, 111, 112, 3, 92, 94, 220, 220, 220, 212, - 96, 97, 98, 82, 83, 99, 100, 101, 102, 103, - 492, 151, 196, 199, 185, 186, 180, 94, 322, 196, - 222, 222, 222, 105, 235, 232, 275, 277, 286, 414, - 446, 462, 471, 30, 31, 60, 65, 68, 69, 339, - 340, 345, 423, 425, 426, 490, 500, 502, 208, 333, - 251, 311, 353, 185, 199, 177, 441, 436, 484, 412, - 7, 90, 205, 210, 226, 228, 229, 267, 308, 135, - 92, 140, 477, 106, 214, 215, 216, 217, 217, 218, - 218, 219, 219, 219, 94, 203, 197, 1, 32, 33, - 156, 187, 205, 231, 240, 339, 350, 355, 360, 401, - 402, 44, 45, 46, 167, 181, 183, 184, 187, 231, - 362, 212, 232, 319, 326, 330, 202, 212, 236, 237, - 239, 1, 244, 278, 274, 276, 232, 51, 52, 61, - 231, 339, 408, 415, 423, 425, 428, 429, 430, 490, - 44, 54, 187, 445, 447, 450, 453, 185, 180, 341, - 346, 19, 199, 424, 58, 427, 199, 199, 505, 503, - 504, 424, 506, 90, 95, 232, 94, 232, 313, 316, - 276, 171, 199, 177, 486, 487, 227, 88, 203, 88, - 90, 3, 89, 232, 94, 195, 90, 191, 187, 188, - 193, 192, 194, 34, 199, 246, 324, 328, 361, 384, - 189, 190, 363, 90, 278, 181, 182, 92, 245, 92, - 92, 92, 95, 106, 94, 238, 281, 279, 90, 277, - 8, 199, 259, 264, 265, 266, 291, 308, 199, 199, - 199, 415, 421, 90, 416, 417, 418, 419, 420, 422, - 203, 203, 90, 448, 449, 463, 472, 31, 384, 202, - 3, 3, 88, 88, 88, 202, 88, 209, 107, 334, - 336, 252, 3, 312, 314, 354, 90, 437, 485, 231, - 339, 423, 425, 488, 242, 29, 230, 141, 493, 198, - 88, 88, 88, 88, 88, 88, 356, 88, 88, 3, - 88, 212, 202, 239, 88, 250, 287, 202, 202, 202, - 88, 88, 88, 88, 88, 88, 88, 451, 454, 88, - 88, 90, 90, 342, 347, 211, 337, 335, 253, 90, - 94, 90, 66, 90, 488, 489, 88, 88, 88, 212, - 88, 72, 114, 130, 143, 145, 146, 199, 3, 364, - 238, 280, 106, 105, 366, 366, 384, 254, 257, 222, - 336, 315, 438, 88, 199, 142, 144, 88, 357, 366, - 88, 288, 367, 368, 452, 455, 343, 348, 255, 338, - 316, 199, 147, 90, 145, 105, 375, 365, 89, 106, - 35, 369, 372, 38, 386, 386, 254, 55, 389, 94, - 108, 439, 91, 376, 377, 358, 386, 289, 373, 106, - 370, 387, 344, 390, 349, 256, 59, 442, 3, 478, - 480, 106, 35, 36, 37, 378, 381, 385, 386, 1, - 28, 29, 292, 294, 298, 300, 384, 94, 105, 386, - 105, 62, 392, 257, 199, 92, 479, 106, 379, 382, - 359, 297, 302, 301, 290, 293, 295, 299, 374, 371, - 388, 391, 393, 148, 94, 94, 384, 39, 395, 88, - 212, 93, 90, 294, 232, 300, 253, 372, 196, 196, - 105, 203, 480, 380, 383, 396, 303, 244, 304, 106, - 106, 394, 381, 253, 105, 93, 305, 296, 196, 397, - 253, 88, 106, 75, 398, 399, 106, 94, 400, 75 + 25, 26, 81, 82, 83, 84, 85, 86, 87, 88, + 168, 207, 252, 253, 254, 255, 256, 267, 268, 269, + 270, 271, 272, 273, 274, 275, 276, 277, 279, 290, + 292, 316, 325, 328, 331, 332, 335, 336, 339, 127, + 123, 121, 95, 241, 124, 280, 22, 128, 125, 126, + 132, 414, 133, 440, 134, 168, 475, 475, 135, 136, + 97, 506, 96, 17, 207, 218, 267, 270, 271, 272, + 273, 274, 332, 336, 207, 211, 250, 252, 211, 211, + 211, 211, 168, 211, 168, 177, 211, 211, 418, 211, + 208, 75, 89, 75, 3, 240, 97, 97, 96, 4, + 6, 20, 21, 23, 24, 27, 49, 53, 67, 482, + 483, 485, 240, 499, 96, 48, 184, 97, 96, 97, + 8, 11, 8, 9, 99, 329, 181, 100, 102, 99, + 99, 96, 96, 207, 96, 97, 293, 96, 96, 96, + 96, 97, 96, 97, 451, 96, 476, 469, 478, 96, + 96, 507, 215, 251, 318, 360, 97, 101, 420, 443, + 210, 209, 491, 3, 241, 232, 142, 218, 99, 3, + 147, 484, 73, 74, 75, 76, 77, 78, 79, 80, + 92, 93, 107, 108, 112, 113, 207, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 501, 100, + 169, 163, 174, 8, 220, 230, 99, 47, 185, 326, + 333, 337, 242, 281, 113, 415, 452, 185, 97, 97, + 509, 211, 211, 258, 261, 265, 266, 340, 97, 97, + 178, 421, 419, 101, 448, 210, 97, 505, 233, 119, + 120, 3, 100, 102, 228, 228, 228, 220, 104, 105, + 106, 90, 91, 107, 108, 109, 110, 111, 500, 159, + 204, 207, 193, 194, 188, 102, 330, 204, 230, 230, + 230, 113, 243, 240, 283, 285, 294, 422, 454, 470, + 479, 30, 31, 60, 65, 68, 69, 347, 348, 353, + 431, 433, 434, 498, 508, 510, 216, 341, 259, 319, + 361, 193, 207, 185, 449, 444, 492, 420, 7, 98, + 213, 218, 234, 236, 237, 275, 316, 143, 100, 148, + 485, 114, 222, 223, 224, 225, 225, 226, 226, 227, + 227, 227, 102, 211, 205, 1, 32, 33, 164, 195, + 213, 239, 248, 347, 358, 363, 368, 409, 410, 44, + 45, 46, 175, 189, 191, 192, 195, 239, 370, 220, + 240, 327, 334, 338, 210, 220, 244, 245, 247, 1, + 252, 286, 282, 284, 240, 51, 52, 61, 239, 347, + 416, 423, 431, 433, 436, 437, 438, 498, 44, 54, + 195, 453, 455, 458, 461, 193, 188, 349, 354, 19, + 207, 432, 58, 435, 207, 207, 513, 511, 512, 432, + 514, 98, 103, 240, 102, 240, 321, 324, 284, 179, + 207, 185, 494, 495, 235, 96, 211, 96, 98, 3, + 97, 240, 102, 203, 98, 199, 195, 196, 201, 200, + 202, 34, 207, 254, 332, 336, 369, 392, 197, 198, + 371, 98, 286, 189, 190, 100, 253, 100, 100, 100, + 103, 114, 102, 246, 289, 287, 98, 285, 8, 207, + 267, 272, 273, 274, 299, 316, 207, 207, 207, 423, + 429, 98, 424, 425, 426, 427, 428, 430, 211, 211, + 98, 456, 457, 471, 480, 31, 392, 210, 3, 3, + 96, 96, 96, 210, 96, 217, 115, 342, 344, 260, + 3, 320, 322, 362, 98, 445, 493, 239, 347, 431, + 433, 496, 250, 29, 238, 149, 501, 206, 96, 96, + 96, 96, 96, 96, 364, 96, 96, 3, 96, 220, + 210, 247, 96, 258, 295, 210, 210, 210, 96, 96, + 96, 96, 96, 96, 96, 459, 462, 96, 96, 98, + 98, 350, 355, 219, 345, 343, 261, 98, 102, 98, + 66, 98, 496, 497, 96, 96, 96, 220, 96, 72, + 122, 138, 151, 153, 154, 207, 3, 372, 246, 288, + 114, 113, 374, 374, 392, 262, 265, 230, 344, 323, + 446, 96, 207, 150, 152, 96, 365, 374, 96, 296, + 375, 376, 460, 463, 351, 356, 263, 346, 324, 207, + 155, 98, 153, 113, 383, 373, 97, 114, 35, 377, + 380, 38, 394, 394, 262, 55, 397, 102, 116, 447, + 99, 384, 385, 366, 394, 297, 381, 114, 378, 395, + 352, 398, 357, 264, 59, 450, 3, 486, 488, 114, + 35, 36, 37, 386, 389, 393, 394, 1, 28, 29, + 300, 302, 306, 308, 392, 102, 113, 394, 113, 62, + 400, 265, 207, 100, 487, 114, 387, 390, 367, 305, + 310, 309, 298, 301, 303, 307, 382, 379, 396, 399, + 401, 156, 102, 102, 392, 39, 403, 96, 220, 101, + 98, 302, 240, 308, 261, 380, 204, 204, 113, 211, + 488, 388, 391, 404, 311, 252, 312, 114, 114, 402, + 389, 261, 113, 101, 313, 304, 204, 405, 261, 96, + 114, 75, 406, 407, 114, 102, 408, 75 }; - /* YYR1YYN -- Symbol number of symbol that rule YYN derives. */ + /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_int16 yyr1[] = { - 0, 109, 110, 111, 111, 112, 112, 113, 113, 113, - 115, 114, 116, 114, 117, 114, 118, 114, 119, 114, - 120, 114, 121, 114, 122, 114, 123, 114, 124, 114, - 125, 114, 126, 114, 127, 114, 128, 114, 129, 114, - 131, 130, 133, 134, 135, 132, 136, 138, 139, 140, - 141, 142, 137, 143, 144, 144, 145, 145, 147, 148, - 146, 150, 151, 149, 152, 152, 154, 155, 156, 153, - 158, 157, 159, 159, 159, 161, 160, 160, 162, 162, - 162, 162, 163, 163, 165, 166, 167, 164, 169, 170, - 171, 168, 173, 172, 175, 174, 176, 176, 177, 177, - 178, 178, 179, 180, 180, 180, 181, 181, 182, 181, - 183, 183, 184, 185, 185, 186, 186, 188, 187, 189, - 187, 190, 187, 191, 187, 192, 187, 193, 187, 194, - 187, 195, 187, 196, 198, 197, 197, 199, 200, 199, - 201, 199, 202, 203, 204, 204, 204, 206, 207, 208, - 209, 205, 210, 210, 210, 210, 210, 210, 210, 210, - 210, 211, 212, 213, 213, 214, 214, 215, 215, 216, - 216, 216, 217, 217, 217, 218, 218, 218, 218, 219, - 219, 219, 219, 220, 220, 220, 221, 221, 221, 221, - 221, 221, 221, 221, 221, 221, 222, 224, 223, 225, - 225, 226, 226, 226, 227, 226, 228, 228, 229, 230, - 230, 231, 232, 232, 234, 233, 235, 235, 236, 236, - 237, 238, 238, 239, 241, 240, 240, 240, 240, 240, - 240, 243, 242, 244, 244, 245, 245, 245, 246, 246, - 246, 246, 246, 246, 246, 246, 247, 247, 247, 247, - 248, 248, 248, 249, 249, 250, 252, 251, 251, 253, - 253, 254, 256, 255, 255, 257, 258, 259, 259, 260, - 260, 260, 261, 261, 261, 262, 262, 262, 263, 264, - 264, 265, 266, 267, 268, 270, 269, 272, 273, 274, - 271, 275, 276, 276, 277, 279, 280, 278, 281, 278, - 283, 282, 285, 286, 287, 288, 289, 290, 284, 291, - 291, 291, 291, 291, 291, 292, 293, 293, 295, 296, - 294, 297, 294, 298, 299, 299, 301, 300, 302, 303, - 300, 305, 304, 306, 307, 309, 310, 311, 312, 308, - 313, 315, 314, 314, 316, 318, 319, 317, 317, 321, - 322, 320, 323, 325, 326, 324, 324, 327, 329, 330, - 328, 328, 331, 333, 332, 334, 335, 335, 337, 338, - 336, 339, 339, 341, 342, 343, 344, 340, 346, 347, - 348, 349, 345, 351, 352, 353, 354, 350, 356, 357, - 358, 359, 355, 360, 360, 360, 361, 361, 363, 364, - 365, 362, 367, 366, 368, 366, 369, 371, 370, 370, - 373, 374, 372, 376, 375, 377, 375, 378, 380, 379, - 379, 382, 383, 381, 384, 384, 384, 384, 385, 385, - 385, 387, 388, 386, 386, 390, 391, 389, 389, 393, - 394, 392, 392, 396, 397, 395, 395, 398, 400, 399, - 399, 401, 402, 403, 403, 404, 406, 407, 408, 405, - 410, 411, 409, 413, 412, 412, 414, 414, 414, 416, - 415, 417, 415, 418, 415, 419, 415, 420, 415, 421, - 415, 422, 415, 423, 424, 424, 425, 426, 427, 427, - 428, 429, 430, 432, 431, 434, 435, 436, 437, 438, - 439, 433, 441, 440, 440, 442, 442, 444, 445, 443, - 446, 446, 447, 448, 447, 449, 447, 451, 452, 450, - 454, 455, 453, 456, 456, 456, 457, 457, 458, 459, - 461, 462, 463, 460, 464, 465, 466, 468, 467, 470, - 471, 472, 469, 473, 473, 474, 474, 474, 474, 474, - 474, 474, 474, 474, 474, 475, 476, 476, 477, 477, - 478, 479, 479, 480, 482, 483, 484, 485, 481, 486, - 486, 487, 487, 488, 488, 489, 488, 490, 490, 491, - 492, 492, 493, 494, 496, 497, 495, 499, 500, 498, - 501, 501, 503, 502, 504, 502, 505, 502, 506, 502 + 0, 117, 118, 119, 119, 120, 120, 121, 121, 121, + 123, 122, 124, 122, 125, 122, 126, 122, 127, 122, + 128, 122, 129, 122, 130, 122, 131, 122, 132, 122, + 133, 122, 134, 122, 135, 122, 136, 122, 137, 122, + 139, 138, 141, 142, 143, 140, 144, 146, 147, 148, + 149, 150, 145, 151, 152, 152, 153, 153, 155, 156, + 154, 158, 159, 157, 160, 160, 162, 163, 164, 161, + 166, 165, 167, 167, 167, 169, 168, 168, 170, 170, + 170, 170, 171, 171, 173, 174, 175, 172, 177, 178, + 179, 176, 181, 180, 183, 182, 184, 184, 185, 185, + 186, 186, 187, 188, 188, 188, 189, 189, 190, 189, + 191, 191, 192, 193, 193, 194, 194, 196, 195, 197, + 195, 198, 195, 199, 195, 200, 195, 201, 195, 202, + 195, 203, 195, 204, 206, 205, 205, 207, 208, 207, + 209, 207, 210, 211, 212, 212, 212, 214, 215, 216, + 217, 213, 218, 218, 218, 218, 218, 218, 218, 218, + 218, 219, 220, 221, 221, 222, 222, 223, 223, 224, + 224, 224, 225, 225, 225, 226, 226, 226, 226, 227, + 227, 227, 227, 228, 228, 228, 229, 229, 229, 229, + 229, 229, 229, 229, 229, 229, 230, 232, 231, 233, + 233, 234, 234, 234, 235, 234, 236, 236, 237, 238, + 238, 239, 240, 240, 242, 241, 243, 243, 244, 244, + 245, 246, 246, 247, 249, 248, 248, 248, 248, 248, + 248, 251, 250, 252, 252, 253, 253, 253, 254, 254, + 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, + 256, 256, 256, 257, 257, 258, 260, 259, 259, 261, + 261, 262, 264, 263, 263, 265, 266, 267, 267, 268, + 268, 268, 268, 268, 268, 268, 269, 269, 269, 269, + 269, 269, 269, 270, 270, 270, 271, 272, 272, 273, + 274, 275, 276, 278, 277, 280, 281, 282, 279, 283, + 284, 284, 285, 287, 288, 286, 289, 286, 291, 290, + 293, 294, 295, 296, 297, 298, 292, 299, 299, 299, + 299, 299, 299, 300, 301, 301, 303, 304, 302, 305, + 302, 306, 307, 307, 309, 308, 310, 311, 308, 313, + 312, 314, 315, 317, 318, 319, 320, 316, 321, 323, + 322, 322, 324, 326, 327, 325, 325, 329, 330, 328, + 331, 333, 334, 332, 332, 335, 337, 338, 336, 336, + 339, 341, 340, 342, 343, 343, 345, 346, 344, 347, + 347, 349, 350, 351, 352, 348, 354, 355, 356, 357, + 353, 359, 360, 361, 362, 358, 364, 365, 366, 367, + 363, 368, 368, 368, 369, 369, 371, 372, 373, 370, + 375, 374, 376, 374, 377, 379, 378, 378, 381, 382, + 380, 384, 383, 385, 383, 386, 388, 387, 387, 390, + 391, 389, 392, 392, 392, 392, 393, 393, 393, 395, + 396, 394, 394, 398, 399, 397, 397, 401, 402, 400, + 400, 404, 405, 403, 403, 406, 408, 407, 407, 409, + 410, 411, 411, 412, 414, 415, 416, 413, 418, 419, + 417, 421, 420, 420, 422, 422, 422, 424, 423, 425, + 423, 426, 423, 427, 423, 428, 423, 429, 423, 430, + 423, 431, 432, 432, 433, 434, 435, 435, 436, 437, + 438, 440, 439, 442, 443, 444, 445, 446, 447, 441, + 449, 448, 448, 450, 450, 452, 453, 451, 454, 454, + 455, 456, 455, 457, 455, 459, 460, 458, 462, 463, + 461, 464, 464, 464, 465, 465, 466, 467, 469, 470, + 471, 468, 472, 473, 474, 476, 475, 478, 479, 480, + 477, 481, 481, 482, 482, 482, 482, 482, 482, 482, + 482, 482, 482, 483, 484, 484, 485, 485, 486, 487, + 487, 488, 490, 491, 492, 493, 489, 494, 494, 495, + 495, 496, 496, 497, 496, 498, 498, 499, 500, 500, + 501, 502, 504, 505, 503, 507, 508, 506, 509, 509, + 511, 510, 512, 510, 513, 510, 514, 510 }; - /* YYR2YYN -- Number of symbols on the right hand side of rule YYN. */ + /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_int8 yyr2[] = { 0, 2, 1, 1, 0, 3, 2, 1, 2, 2, @@ -2270,39 +2221,40 @@ static const yytype_int8 yyr2[] = 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, 1, 0, 3, 0, 0, 0, - 7, 2, 2, 0, 2, 0, 0, 5, 0, 3, - 0, 3, 0, 0, 0, 0, 0, 0, 15, 1, - 1, 1, 1, 1, 1, 2, 2, 0, 0, 0, - 6, 0, 3, 2, 2, 0, 0, 3, 0, 0, - 5, 0, 3, 1, 1, 0, 0, 0, 0, 9, - 2, 0, 4, 0, 2, 0, 0, 6, 2, 0, - 0, 6, 6, 0, 0, 6, 1, 1, 0, 0, - 6, 1, 1, 0, 4, 2, 2, 0, 0, 0, - 5, 1, 1, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 9, 0, 0, 0, 0, 9, 0, 0, - 0, 0, 10, 1, 1, 0, 1, 1, 0, 0, - 0, 7, 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, 0, - 0, 6, 0, 0, 0, 6, 0, 2, 0, 4, - 0, 3, 3, 1, 1, 2, 0, 0, 0, 7, - 0, 0, 6, 0, 3, 0, 3, 2, 0, 0, + 2, 1, 1, 1, 1, 1, 2, 3, 2, 1, + 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, + 1, 1, 1, 0, 3, 0, 0, 0, 7, 2, + 2, 0, 2, 0, 0, 5, 0, 3, 0, 3, + 0, 0, 0, 0, 0, 0, 15, 1, 1, 1, + 1, 1, 1, 2, 2, 0, 0, 0, 6, 0, + 3, 2, 2, 0, 0, 3, 0, 0, 5, 0, + 3, 1, 1, 0, 0, 0, 0, 9, 2, 0, + 4, 0, 2, 0, 0, 6, 2, 0, 0, 6, + 6, 0, 0, 6, 1, 1, 0, 0, 6, 1, + 1, 0, 4, 2, 2, 0, 0, 0, 5, 1, + 1, 0, 0, 0, 0, 9, 0, 0, 0, 0, + 9, 0, 0, 0, 0, 9, 0, 0, 0, 0, + 10, 1, 1, 0, 1, 1, 0, 0, 0, 7, + 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, 0, 0, 6, + 0, 0, 0, 6, 0, 2, 0, 4, 0, 3, + 3, 1, 1, 2, 0, 0, 0, 7, 0, 0, + 6, 0, 3, 0, 3, 2, 0, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, 3, 0, - 3, 0, 3, 3, 1, 1, 3, 2, 1, 0, - 3, 3, 3, 0, 3, 0, 0, 0, 0, 0, - 0, 13, 0, 3, 0, 2, 0, 0, 0, 5, - 2, 0, 1, 0, 3, 0, 3, 0, 0, 6, - 0, 0, 6, 1, 1, 1, 1, 1, 2, 3, - 0, 0, 0, 8, 3, 3, 2, 0, 3, 0, - 0, 0, 8, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 3, 0, 2, 5, - 2, 3, 0, 1, 0, 0, 0, 0, 9, 3, - 2, 1, 0, 2, 2, 0, 3, 3, 3, 3, - 4, 0, 1, 2, 0, 0, 6, 0, 0, 5, - 2, 0, 0, 3, 0, 3, 0, 3, 0, 3 + 3, 3, 1, 1, 3, 2, 1, 0, 3, 3, + 3, 0, 3, 0, 0, 0, 0, 0, 0, 13, + 0, 3, 0, 2, 0, 0, 0, 5, 2, 0, + 1, 0, 3, 0, 3, 0, 0, 6, 0, 0, + 6, 1, 1, 1, 1, 1, 2, 3, 0, 0, + 0, 8, 3, 3, 2, 0, 3, 0, 0, 0, + 8, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 2, 2, 3, 0, 2, 5, 2, 3, + 0, 1, 0, 0, 0, 0, 9, 3, 2, 1, + 0, 2, 2, 0, 3, 3, 3, 3, 4, 0, + 1, 2, 0, 0, 6, 0, 0, 5, 2, 0, + 0, 3, 0, 3, 0, 3, 0, 3 }; @@ -2381,7 +2333,7 @@ yy_symbol_value_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep) { FILE *yyoutput = yyo; - YYUSE (yyoutput); + YY_USE (yyoutput); if (!yyvaluep) return; # ifdef YYPRINT @@ -2389,7 +2341,7 @@ yy_symbol_value_print (FILE *yyo, YYPRINT (yyo, yytoknum[yykind], *yyvaluep); # endif YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yykind); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } @@ -2503,18 +2455,18 @@ static void yydestruct (const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep) { - YYUSE (yyvaluep); + YY_USE (yyvaluep); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN - YYUSE (yykind); + YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } -/* The lookahead symbol. */ +/* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ @@ -2532,34 +2484,30 @@ int yynerrs; int yyparse (void) { - yy_state_fast_t yystate; + yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ - int yyerrstatus; + int yyerrstatus = 0; - /* The stacks and their tools: - 'yyss': related to states. - 'yyvs': related to semantic values. - - Refer to the stacks through separate pointers, to allow yyoverflow + /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* Their size. */ - YYPTRDIFF_T yystacksize; + YYPTRDIFF_T yystacksize = YYINITDEPTH; - /* The state stack. */ + /* The state stack: array, bottom, top. */ yy_state_t yyssa[YYINITDEPTH]; - yy_state_t *yyss; - yy_state_t *yyssp; + yy_state_t *yyss = yyssa; + yy_state_t *yyssp = yyss; - /* The semantic value stack. */ + /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; - YYSTYPE *yyvs; - YYSTYPE *yyvsp; + YYSTYPE *yyvs = yyvsa; + YYSTYPE *yyvsp = yyvs; int yyn; /* The return value of yyparse. */ int yyresult; - /* Lookahead token as an internal (translated) token number. */ + /* Lookahead symbol kind. */ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ @@ -2573,15 +2521,6 @@ yyparse (void) Keep to zero when no symbol should be popped. */ int yylen = 0; - yynerrs = 0; - yystate = 0; - yyerrstatus = 0; - - yystacksize = YYINITDEPTH; - yyssp = yyss = yyssa; - yyvsp = yyvs = yyvsa; - - YYDPRINTF ((stderr, "Starting parse\n")); yychar = YYEMPTY; /* Cause a token to be read. */ @@ -2782,8 +2721,8 @@ yyparse (void) YY_REDUCE_PRINT (yyn); switch (yyn) { - case 5: -#line 417 "fe/idl.ypp" + case 5: /* at_least_one_definition: definitions at_least_one_annotation definition */ +#line 427 "fe/idl.ypp" { AST_Annotation_Appls *&annotations = (yyvsp[-1].annotations_val); AST_Decl *&node = (yyvsp[0].dcval); @@ -2798,269 +2737,269 @@ yyparse (void) } delete annotations; } -#line 2802 "fe/idl.tab.cpp" +#line 2741 "fe/idl.tab.cpp" break; - case 10: -#line 442 "fe/idl.ypp" + case 10: /* $@1: %empty */ +#line 452 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_AnnotationDeclSeen); } -#line 2810 "fe/idl.tab.cpp" +#line 2749 "fe/idl.tab.cpp" break; - case 11: -#line 446 "fe/idl.ypp" + case 11: /* fixed_definition: annotation_dcl $@1 ';' */ +#line 456 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 2818 "fe/idl.tab.cpp" +#line 2757 "fe/idl.tab.cpp" break; - case 12: -#line 450 "fe/idl.ypp" + case 12: /* $@2: %empty */ +#line 460 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_TypeDeclSeen); } -#line 2826 "fe/idl.tab.cpp" +#line 2765 "fe/idl.tab.cpp" break; - case 13: -#line 454 "fe/idl.ypp" + case 13: /* fixed_definition: type_dcl $@2 ';' */ +#line 464 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 2834 "fe/idl.tab.cpp" +#line 2773 "fe/idl.tab.cpp" break; - case 14: -#line 458 "fe/idl.ypp" + case 14: /* $@3: %empty */ +#line 468 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_TypeIdDeclSeen); } -#line 2842 "fe/idl.tab.cpp" +#line 2781 "fe/idl.tab.cpp" break; - case 15: -#line 462 "fe/idl.ypp" + case 15: /* fixed_definition: typeid_dcl $@3 ';' */ +#line 472 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 2850 "fe/idl.tab.cpp" +#line 2789 "fe/idl.tab.cpp" break; - case 16: -#line 466 "fe/idl.ypp" + case 16: /* $@4: %empty */ +#line 476 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_TypePrefixDeclSeen); } -#line 2858 "fe/idl.tab.cpp" +#line 2797 "fe/idl.tab.cpp" break; - case 17: -#line 470 "fe/idl.ypp" + case 17: /* fixed_definition: typeprefix_dcl $@4 ';' */ +#line 480 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 2866 "fe/idl.tab.cpp" +#line 2805 "fe/idl.tab.cpp" break; - case 18: -#line 474 "fe/idl.ypp" + case 18: /* $@5: %empty */ +#line 484 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ConstDeclSeen); } -#line 2874 "fe/idl.tab.cpp" +#line 2813 "fe/idl.tab.cpp" break; - case 19: -#line 478 "fe/idl.ypp" + case 19: /* fixed_definition: const_dcl $@5 ';' */ +#line 488 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 2882 "fe/idl.tab.cpp" +#line 2821 "fe/idl.tab.cpp" break; - case 20: -#line 482 "fe/idl.ypp" + case 20: /* $@6: %empty */ +#line 492 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ExceptDeclSeen); } -#line 2890 "fe/idl.tab.cpp" +#line 2829 "fe/idl.tab.cpp" break; - case 21: -#line 486 "fe/idl.ypp" + case 21: /* fixed_definition: exception $@6 ';' */ +#line 496 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 2898 "fe/idl.tab.cpp" +#line 2837 "fe/idl.tab.cpp" break; - case 22: -#line 490 "fe/idl.ypp" + case 22: /* $@7: %empty */ +#line 500 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceDeclSeen); } -#line 2906 "fe/idl.tab.cpp" +#line 2845 "fe/idl.tab.cpp" break; - case 23: -#line 494 "fe/idl.ypp" + case 23: /* fixed_definition: interface_def $@7 ';' */ +#line 504 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 2914 "fe/idl.tab.cpp" +#line 2853 "fe/idl.tab.cpp" break; - case 24: -#line 498 "fe/idl.ypp" + case 24: /* $@8: %empty */ +#line 508 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ModuleDeclSeen); } -#line 2922 "fe/idl.tab.cpp" +#line 2861 "fe/idl.tab.cpp" break; - case 25: -#line 502 "fe/idl.ypp" + case 25: /* fixed_definition: module $@8 ';' */ +#line 512 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 2930 "fe/idl.tab.cpp" +#line 2869 "fe/idl.tab.cpp" break; - case 26: -#line 506 "fe/idl.ypp" + case 26: /* $@9: %empty */ +#line 516 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeDeclSeen); } -#line 2938 "fe/idl.tab.cpp" +#line 2877 "fe/idl.tab.cpp" break; - case 27: -#line 510 "fe/idl.ypp" + case 27: /* fixed_definition: value_def $@9 ';' */ +#line 520 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 2946 "fe/idl.tab.cpp" +#line 2885 "fe/idl.tab.cpp" break; - case 28: -#line 514 "fe/idl.ypp" + case 28: /* $@10: %empty */ +#line 524 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ComponentDeclSeen); } -#line 2954 "fe/idl.tab.cpp" +#line 2893 "fe/idl.tab.cpp" break; - case 29: -#line 518 "fe/idl.ypp" + case 29: /* fixed_definition: component $@10 ';' */ +#line 528 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 2962 "fe/idl.tab.cpp" +#line 2901 "fe/idl.tab.cpp" break; - case 30: -#line 522 "fe/idl.ypp" + case 30: /* $@11: %empty */ +#line 532 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_HomeDeclSeen); } -#line 2970 "fe/idl.tab.cpp" +#line 2909 "fe/idl.tab.cpp" break; - case 31: -#line 526 "fe/idl.ypp" + case 31: /* fixed_definition: home_decl $@11 ';' */ +#line 536 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 2978 "fe/idl.tab.cpp" +#line 2917 "fe/idl.tab.cpp" break; - case 32: -#line 530 "fe/idl.ypp" + case 32: /* $@12: %empty */ +#line 540 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EventDeclSeen); } -#line 2986 "fe/idl.tab.cpp" +#line 2925 "fe/idl.tab.cpp" break; - case 33: -#line 534 "fe/idl.ypp" + case 33: /* fixed_definition: event $@12 ';' */ +#line 544 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 2994 "fe/idl.tab.cpp" +#line 2933 "fe/idl.tab.cpp" break; - case 34: -#line 538 "fe/idl.ypp" + case 34: /* $@13: %empty */ +#line 548 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeDeclSeen); } -#line 3002 "fe/idl.tab.cpp" +#line 2941 "fe/idl.tab.cpp" break; - case 35: -#line 542 "fe/idl.ypp" + case 35: /* fixed_definition: porttype_decl $@13 ';' */ +#line 552 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 3010 "fe/idl.tab.cpp" +#line 2949 "fe/idl.tab.cpp" break; - case 36: -#line 546 "fe/idl.ypp" + case 36: /* $@14: %empty */ +#line 556 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorDeclSeen); } -#line 3018 "fe/idl.tab.cpp" +#line 2957 "fe/idl.tab.cpp" break; - case 37: -#line 550 "fe/idl.ypp" + case 37: /* fixed_definition: connector_decl $@14 ';' */ +#line 560 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 3026 "fe/idl.tab.cpp" +#line 2965 "fe/idl.tab.cpp" break; - case 38: -#line 554 "fe/idl.ypp" + case 38: /* $@15: %empty */ +#line 564 "fe/idl.ypp" { idl_global->err ()->syntax_error (idl_global->parse_state ()); } -#line 3034 "fe/idl.tab.cpp" +#line 2973 "fe/idl.tab.cpp" break; - case 39: -#line 558 "fe/idl.ypp" + case 39: /* fixed_definition: error $@15 ';' */ +#line 568 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); yyerrok; (yyval.dcval) = 0; } -#line 3044 "fe/idl.tab.cpp" +#line 2983 "fe/idl.tab.cpp" break; - case 40: -#line 567 "fe/idl.ypp" + case 40: /* $@16: %empty */ +#line 577 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ModuleSeen); } -#line 3052 "fe/idl.tab.cpp" +#line 2991 "fe/idl.tab.cpp" break; - case 41: -#line 571 "fe/idl.ypp" + case 41: /* module_header: IDL_MODULE $@16 scoped_name */ +#line 581 "fe/idl.ypp" { (yyval.idlist) = (yyvsp[0].idlist); } -#line 3060 "fe/idl.tab.cpp" +#line 2999 "fe/idl.tab.cpp" break; - case 42: -#line 578 "fe/idl.ypp" + case 42: /* @17: %empty */ +#line 588 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ModuleIDSeen); @@ -3099,27 +3038,27 @@ yyparse (void) (yyval.dcval) = m; } -#line 3103 "fe/idl.tab.cpp" +#line 3042 "fe/idl.tab.cpp" break; - case 43: -#line 617 "fe/idl.ypp" + case 43: /* $@18: %empty */ +#line 627 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ModuleSqSeen); } -#line 3111 "fe/idl.tab.cpp" +#line 3050 "fe/idl.tab.cpp" break; - case 44: -#line 621 "fe/idl.ypp" + case 44: /* $@19: %empty */ +#line 631 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ModuleBodySeen); } -#line 3119 "fe/idl.tab.cpp" +#line 3058 "fe/idl.tab.cpp" break; - case 45: -#line 625 "fe/idl.ypp" + case 45: /* module: module_header @17 '{' $@18 at_least_one_definition $@19 '}' */ +#line 635 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ModuleQsSeen); /* @@ -3129,19 +3068,19 @@ yyparse (void) idl_global->scopes ().pop (); (yyval.dcval) = (yyvsp[-5].dcval); } -#line 3133 "fe/idl.tab.cpp" +#line 3072 "fe/idl.tab.cpp" break; - case 46: -#line 638 "fe/idl.ypp" + case 46: /* template_module_header: module_header '<' */ +#line 648 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleIDSeen); } -#line 3141 "fe/idl.tab.cpp" +#line 3080 "fe/idl.tab.cpp" break; - case 47: -#line 645 "fe/idl.ypp" + case 47: /* $@20: %empty */ +#line 655 "fe/idl.ypp" { // The module_header rule is common to template module, fixed // module and instantiated template module. In the last @@ -3155,11 +3094,11 @@ yyparse (void) IDL_GlobalData::PS_ModuleIDSeen); } } -#line 3159 "fe/idl.tab.cpp" +#line 3098 "fe/idl.tab.cpp" break; - case 48: -#line 659 "fe/idl.ypp" + case 48: /* $@21: %empty */ +#line 669 "fe/idl.ypp" { if (FE_Utils::duplicate_param_id ((yyvsp[0].plval))) { @@ -3169,11 +3108,11 @@ yyparse (void) return 1; } } -#line 3173 "fe/idl.tab.cpp" +#line 3112 "fe/idl.tab.cpp" break; - case 49: -#line 669 "fe/idl.ypp" + case 49: /* $@22: %empty */ +#line 679 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleParamsSeen); @@ -3203,27 +3142,27 @@ yyparse (void) // of the template module. idl_global->current_params ((yyvsp[-2].plval)); } -#line 3207 "fe/idl.tab.cpp" +#line 3146 "fe/idl.tab.cpp" break; - case 50: -#line 699 "fe/idl.ypp" + case 50: /* $@23: %empty */ +#line 709 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleSqSeen); } -#line 3215 "fe/idl.tab.cpp" +#line 3154 "fe/idl.tab.cpp" break; - case 51: -#line 703 "fe/idl.ypp" + case 51: /* $@24: %empty */ +#line 713 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleBodySeen); } -#line 3223 "fe/idl.tab.cpp" +#line 3162 "fe/idl.tab.cpp" break; - case 52: -#line 707 "fe/idl.ypp" + case 52: /* template_module: template_module_header $@20 at_least_one_formal_parameter $@21 '>' $@22 '{' $@23 at_least_one_tpl_definition $@24 '}' */ +#line 717 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleQsSeen); @@ -3242,29 +3181,29 @@ yyparse (void) (yyval.dcval) = 0; } -#line 3246 "fe/idl.tab.cpp" +#line 3185 "fe/idl.tab.cpp" break; - case 58: -#line 743 "fe/idl.ypp" + case 58: /* $@25: %empty */ +#line 753 "fe/idl.ypp" { idl_global->set_parse_state ( IDL_GlobalData::PS_ModuleRefSeen); } -#line 3255 "fe/idl.tab.cpp" +#line 3194 "fe/idl.tab.cpp" break; - case 59: -#line 748 "fe/idl.ypp" + case 59: /* $@26: %empty */ +#line 758 "fe/idl.ypp" { idl_global->set_parse_state ( IDL_GlobalData::PS_ModuleRefParamsSeen); } -#line 3264 "fe/idl.tab.cpp" +#line 3203 "fe/idl.tab.cpp" break; - case 60: -#line 753 "fe/idl.ypp" + case 60: /* template_module_ref: IDL_ALIAS scoped_name $@25 '<' at_least_one_formal_parameter_name '>' $@26 defining_id */ +#line 763 "fe/idl.ypp" { idl_global->set_parse_state ( IDL_GlobalData::PS_ModuleRefIDSeen); @@ -3342,29 +3281,29 @@ yyparse (void) idl_global->in_tmpl_mod_no_alias (itmna_flag); idl_global->in_tmpl_mod_alias (false); } -#line 3346 "fe/idl.tab.cpp" +#line 3285 "fe/idl.tab.cpp" break; - case 61: -#line 834 "fe/idl.ypp" + case 61: /* $@27: %empty */ +#line 844 "fe/idl.ypp" { idl_global->set_parse_state ( IDL_GlobalData::PS_InstModuleSeen); } -#line 3355 "fe/idl.tab.cpp" +#line 3294 "fe/idl.tab.cpp" break; - case 62: -#line 839 "fe/idl.ypp" + case 62: /* $@28: %empty */ +#line 849 "fe/idl.ypp" { idl_global->set_parse_state ( IDL_GlobalData::PS_InstModuleArgsSeen); } -#line 3364 "fe/idl.tab.cpp" +#line 3303 "fe/idl.tab.cpp" break; - case 63: -#line 844 "fe/idl.ypp" + case 63: /* template_module_inst: template_module_header $@27 at_least_one_actual_parameter '>' $@28 defining_id */ +#line 854 "fe/idl.ypp" { idl_global->set_parse_state ( IDL_GlobalData::PS_InstModuleIDSeen); @@ -3428,11 +3367,11 @@ yyparse (void) (yyval.dcval) = 0; } -#line 3432 "fe/idl.tab.cpp" +#line 3371 "fe/idl.tab.cpp" break; - case 66: -#line 916 "fe/idl.ypp" + case 66: /* $@29: %empty */ +#line 926 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Interface *i = 0; @@ -3470,27 +3409,27 @@ yyparse (void) */ idl_global->scopes ().push (i); } -#line 3474 "fe/idl.tab.cpp" +#line 3413 "fe/idl.tab.cpp" break; - case 67: -#line 954 "fe/idl.ypp" + case 67: /* $@30: %empty */ +#line 964 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceSqSeen); } -#line 3482 "fe/idl.tab.cpp" +#line 3421 "fe/idl.tab.cpp" break; - case 68: -#line 958 "fe/idl.ypp" + case 68: /* $@31: %empty */ +#line 968 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceBodySeen); } -#line 3490 "fe/idl.tab.cpp" +#line 3429 "fe/idl.tab.cpp" break; - case 69: -#line 962 "fe/idl.ypp" + case 69: /* interface: interface_header $@29 '{' $@30 exports $@31 '}' */ +#line 972 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceQsSeen); @@ -3500,28 +3439,28 @@ yyparse (void) */ idl_global->scopes ().pop (); } -#line 3504 "fe/idl.tab.cpp" +#line 3443 "fe/idl.tab.cpp" break; - case 70: -#line 975 "fe/idl.ypp" + case 70: /* $@32: %empty */ +#line 985 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceSeen); } -#line 3512 "fe/idl.tab.cpp" +#line 3451 "fe/idl.tab.cpp" break; - case 71: -#line 979 "fe/idl.ypp" + case 71: /* interface_decl: IDL_INTERFACE $@32 defining_id */ +#line 989 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceIDSeen); (yyval.idval) = (yyvsp[0].idval); } -#line 3521 "fe/idl.tab.cpp" +#line 3460 "fe/idl.tab.cpp" break; - case 72: -#line 987 "fe/idl.ypp" + case 72: /* interface_header: interface_decl inheritance_spec */ +#line 997 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen); @@ -3557,11 +3496,11 @@ yyparse (void) (yyvsp[0].nlval) = 0; } } -#line 3561 "fe/idl.tab.cpp" +#line 3500 "fe/idl.tab.cpp" break; - case 73: -#line 1024 "fe/idl.ypp" + case 73: /* interface_header: IDL_LOCAL interface_decl inheritance_spec */ +#line 1034 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen); @@ -3590,11 +3529,11 @@ yyparse (void) (yyvsp[0].nlval) = 0; } } -#line 3594 "fe/idl.tab.cpp" +#line 3533 "fe/idl.tab.cpp" break; - case 74: -#line 1054 "fe/idl.ypp" + case 74: /* interface_header: IDL_ABSTRACT interface_decl inheritance_spec */ +#line 1064 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen); @@ -3623,45 +3562,45 @@ yyparse (void) (yyvsp[0].nlval) = 0; } } -#line 3627 "fe/idl.tab.cpp" +#line 3566 "fe/idl.tab.cpp" break; - case 75: -#line 1086 "fe/idl.ypp" + case 75: /* $@33: %empty */ +#line 1096 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InheritColonSeen); } -#line 3635 "fe/idl.tab.cpp" +#line 3574 "fe/idl.tab.cpp" break; - case 76: -#line 1090 "fe/idl.ypp" + case 76: /* inheritance_spec: ':' opt_truncatable $@33 at_least_one_scoped_name */ +#line 1100 "fe/idl.ypp" { (yyvsp[0].nlval)->truncatable ((yyvsp[-2].bval)); (yyval.nlval) = (yyvsp[0].nlval); } -#line 3644 "fe/idl.tab.cpp" +#line 3583 "fe/idl.tab.cpp" break; - case 77: -#line 1095 "fe/idl.ypp" + case 77: /* inheritance_spec: %empty */ +#line 1105 "fe/idl.ypp" { (yyval.nlval) = 0; } -#line 3652 "fe/idl.tab.cpp" +#line 3591 "fe/idl.tab.cpp" break; - case 82: -#line 1109 "fe/idl.ypp" + case 82: /* valuetype: IDL_CUSTOM value_concrete_decl */ +#line 1119 "fe/idl.ypp" { idl_global->err ()->unsupported_error ("custom is not supported"); (yyval.dcval) = (yyvsp[0].dcval); } -#line 3661 "fe/idl.tab.cpp" +#line 3600 "fe/idl.tab.cpp" break; - case 84: -#line 1118 "fe/idl.ypp" + case 84: /* @34: %empty */ +#line 1128 "fe/idl.ypp" { FE_OBVHeader *&valuetype_header = (yyvsp[0].vhval); UTL_Scope *scope = idl_global->scopes ().top_non_null (); @@ -3708,27 +3647,27 @@ yyparse (void) (yyval.dcval) = valuetype; } -#line 3712 "fe/idl.tab.cpp" +#line 3651 "fe/idl.tab.cpp" break; - case 85: -#line 1165 "fe/idl.ypp" + case 85: /* $@35: %empty */ +#line 1175 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeSqSeen); } -#line 3720 "fe/idl.tab.cpp" +#line 3659 "fe/idl.tab.cpp" break; - case 86: -#line 1169 "fe/idl.ypp" + case 86: /* $@36: %empty */ +#line 1179 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeBodySeen); } -#line 3728 "fe/idl.tab.cpp" +#line 3667 "fe/idl.tab.cpp" break; - case 87: -#line 1173 "fe/idl.ypp" + case 87: /* value_concrete_decl: value_header @34 '{' $@35 value_elements $@36 '}' */ +#line 1183 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeQsSeen); @@ -3749,11 +3688,11 @@ yyparse (void) (yyval.dcval) = (yyvsp[-5].dcval); } -#line 3753 "fe/idl.tab.cpp" +#line 3692 "fe/idl.tab.cpp" break; - case 88: -#line 1198 "fe/idl.ypp" + case 88: /* $@37: %empty */ +#line 1208 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_ValueType *v = 0; @@ -3796,27 +3735,27 @@ yyparse (void) */ idl_global->scopes ().push (v); } -#line 3800 "fe/idl.tab.cpp" +#line 3739 "fe/idl.tab.cpp" break; - case 89: -#line 1241 "fe/idl.ypp" + case 89: /* $@38: %empty */ +#line 1251 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeSqSeen); } -#line 3808 "fe/idl.tab.cpp" +#line 3747 "fe/idl.tab.cpp" break; - case 90: -#line 1245 "fe/idl.ypp" + case 90: /* $@39: %empty */ +#line 1255 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeBodySeen); } -#line 3816 "fe/idl.tab.cpp" +#line 3755 "fe/idl.tab.cpp" break; - case 91: -#line 1249 "fe/idl.ypp" + case 91: /* value_abs_decl: IDL_ABSTRACT value_header $@37 '{' $@38 exports $@39 '}' */ +#line 1259 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeQsSeen); @@ -3827,19 +3766,19 @@ yyparse (void) (yyval.dcval) = 0; } -#line 3831 "fe/idl.tab.cpp" +#line 3770 "fe/idl.tab.cpp" break; - case 92: -#line 1264 "fe/idl.ypp" + case 92: /* $@40: %empty */ +#line 1274 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen); } -#line 3839 "fe/idl.tab.cpp" +#line 3778 "fe/idl.tab.cpp" break; - case 93: -#line 1268 "fe/idl.ypp" + case 93: /* value_header: value_decl inheritance_spec $@40 supports_spec */ +#line 1278 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SupportSpecSeen); @@ -3870,60 +3809,60 @@ yyparse (void) (yyvsp[-2].nlval) = 0; } } -#line 3874 "fe/idl.tab.cpp" +#line 3813 "fe/idl.tab.cpp" break; - case 94: -#line 1302 "fe/idl.ypp" + case 94: /* $@41: %empty */ +#line 1312 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeSeen); } -#line 3882 "fe/idl.tab.cpp" +#line 3821 "fe/idl.tab.cpp" break; - case 95: -#line 1306 "fe/idl.ypp" + case 95: /* value_decl: IDL_VALUETYPE $@41 defining_id */ +#line 1316 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeIDSeen); (yyval.idval) = (yyvsp[0].idval); } -#line 3891 "fe/idl.tab.cpp" +#line 3830 "fe/idl.tab.cpp" break; - case 96: -#line 1314 "fe/idl.ypp" + case 96: /* opt_truncatable: IDL_TRUNCATABLE */ +#line 1324 "fe/idl.ypp" { (yyval.bval) = true; } -#line 3899 "fe/idl.tab.cpp" +#line 3838 "fe/idl.tab.cpp" break; - case 97: -#line 1318 "fe/idl.ypp" + case 97: /* opt_truncatable: %empty */ +#line 1328 "fe/idl.ypp" { (yyval.bval) = false; } -#line 3907 "fe/idl.tab.cpp" +#line 3846 "fe/idl.tab.cpp" break; - case 98: -#line 1326 "fe/idl.ypp" + case 98: /* supports_spec: IDL_SUPPORTS at_least_one_scoped_name */ +#line 1336 "fe/idl.ypp" { (yyval.nlval) = (yyvsp[0].nlval); } -#line 3915 "fe/idl.tab.cpp" +#line 3854 "fe/idl.tab.cpp" break; - case 99: -#line 1330 "fe/idl.ypp" + case 99: /* supports_spec: %empty */ +#line 1340 "fe/idl.ypp" { (yyval.nlval) = 0; } -#line 3923 "fe/idl.tab.cpp" +#line 3862 "fe/idl.tab.cpp" break; - case 100: -#line 1338 "fe/idl.ypp" + case 100: /* value_forward_decl: IDL_ABSTRACT value_decl */ +#line 1348 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -3946,11 +3885,11 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 3950 "fe/idl.tab.cpp" +#line 3889 "fe/idl.tab.cpp" break; - case 101: -#line 1362 "fe/idl.ypp" + case 101: /* value_forward_decl: value_decl */ +#line 1372 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -3975,11 +3914,11 @@ yyparse (void) (yyval.dcval) = 0; } -#line 3979 "fe/idl.tab.cpp" +#line 3918 "fe/idl.tab.cpp" break; - case 102: -#line 1390 "fe/idl.ypp" + case 102: /* value_box_decl: value_decl type_spec */ +#line 1400 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ValueBoxDeclSeen); @@ -4042,11 +3981,11 @@ yyparse (void) (yyval.dcval) = 0; } -#line 4046 "fe/idl.tab.cpp" +#line 3985 "fe/idl.tab.cpp" break; - case 103: -#line 1456 "fe/idl.ypp" + case 103: /* value_elements: value_elements at_least_one_annotation value_element */ +#line 1466 "fe/idl.ypp" { AST_Annotation_Appls *&annotations = (yyvsp[-1].annotations_val); AST_Decls *&decls = (yyvsp[0].decls_val); @@ -4065,19 +4004,19 @@ yyparse (void) delete annotations; delete decls; } -#line 4069 "fe/idl.tab.cpp" +#line 4008 "fe/idl.tab.cpp" break; - case 104: -#line 1475 "fe/idl.ypp" + case 104: /* value_elements: value_elements value_element */ +#line 1485 "fe/idl.ypp" { delete (yyvsp[0].decls_val); } -#line 4077 "fe/idl.tab.cpp" +#line 4016 "fe/idl.tab.cpp" break; - case 107: -#line 1484 "fe/idl.ypp" + case 107: /* value_element: export */ +#line 1494 "fe/idl.ypp" { AST_Decl *&node = (yyvsp[0].dcval); AST_Decls *value = 0; @@ -4088,11 +4027,11 @@ yyparse (void) } (yyval.decls_val) = value; } -#line 4092 "fe/idl.tab.cpp" +#line 4031 "fe/idl.tab.cpp" break; - case 108: -#line 1495 "fe/idl.ypp" + case 108: /* @42: %empty */ +#line 1505 "fe/idl.ypp" { AST_Decl *&node = (yyvsp[0].dcval); AST_Decls *value = 0; @@ -4103,35 +4042,35 @@ yyparse (void) } (yyval.decls_val) = value; } -#line 4107 "fe/idl.tab.cpp" +#line 4046 "fe/idl.tab.cpp" break; - case 109: -#line 1506 "fe/idl.ypp" + case 109: /* value_element: init_decl @42 ';' */ +#line 1516 "fe/idl.ypp" { (yyval.decls_val) = (yyvsp[-1].decls_val); } -#line 4115 "fe/idl.tab.cpp" +#line 4054 "fe/idl.tab.cpp" break; - case 110: -#line 1513 "fe/idl.ypp" + case 110: /* visibility: IDL_PUBLIC */ +#line 1523 "fe/idl.ypp" { (yyval.vival) = AST_Field::vis_PUBLIC; } -#line 4123 "fe/idl.tab.cpp" +#line 4062 "fe/idl.tab.cpp" break; - case 111: -#line 1517 "fe/idl.ypp" + case 111: /* visibility: IDL_PRIVATE */ +#line 1527 "fe/idl.ypp" { (yyval.vival) = AST_Field::vis_PRIVATE; } -#line 4131 "fe/idl.tab.cpp" +#line 4070 "fe/idl.tab.cpp" break; - case 112: -#line 1524 "fe/idl.ypp" + case 112: /* state_member: visibility member_i */ +#line 1534 "fe/idl.ypp" { AST_Field::Visibility &visibility = (yyvsp[-1].vival); AST_Decls *&decls_ptr = (yyvsp[0].decls_val); @@ -4149,11 +4088,11 @@ yyparse (void) } (yyval.decls_val) = decls_ptr; } -#line 4153 "fe/idl.tab.cpp" +#line 4092 "fe/idl.tab.cpp" break; - case 115: -#line 1550 "fe/idl.ypp" + case 115: /* at_least_one_export: exports at_least_one_annotation export */ +#line 1560 "fe/idl.ypp" { AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val); AST_Decl *d = (yyvsp[0].dcval); @@ -4168,160 +4107,160 @@ yyparse (void) } delete annotations; } -#line 4172 "fe/idl.tab.cpp" +#line 4111 "fe/idl.tab.cpp" break; - case 117: -#line 1569 "fe/idl.ypp" + case 117: /* $@43: %empty */ +#line 1579 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_TypeDeclSeen); } -#line 4180 "fe/idl.tab.cpp" +#line 4119 "fe/idl.tab.cpp" break; - case 118: -#line 1573 "fe/idl.ypp" + case 118: /* export: type_dcl $@43 ';' */ +#line 1583 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 4188 "fe/idl.tab.cpp" +#line 4127 "fe/idl.tab.cpp" break; - case 119: -#line 1577 "fe/idl.ypp" + case 119: /* $@44: %empty */ +#line 1587 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_TypeIdDeclSeen); } -#line 4196 "fe/idl.tab.cpp" +#line 4135 "fe/idl.tab.cpp" break; - case 120: -#line 1581 "fe/idl.ypp" + case 120: /* export: typeid_dcl $@44 ';' */ +#line 1591 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 4204 "fe/idl.tab.cpp" +#line 4143 "fe/idl.tab.cpp" break; - case 121: -#line 1585 "fe/idl.ypp" + case 121: /* $@45: %empty */ +#line 1595 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_TypePrefixDeclSeen); } -#line 4212 "fe/idl.tab.cpp" +#line 4151 "fe/idl.tab.cpp" break; - case 122: -#line 1589 "fe/idl.ypp" + case 122: /* export: typeprefix_dcl $@45 ';' */ +#line 1599 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 4220 "fe/idl.tab.cpp" +#line 4159 "fe/idl.tab.cpp" break; - case 123: -#line 1593 "fe/idl.ypp" + case 123: /* $@46: %empty */ +#line 1603 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ConstDeclSeen); } -#line 4228 "fe/idl.tab.cpp" +#line 4167 "fe/idl.tab.cpp" break; - case 124: -#line 1597 "fe/idl.ypp" + case 124: /* export: const_dcl $@46 ';' */ +#line 1607 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 4236 "fe/idl.tab.cpp" +#line 4175 "fe/idl.tab.cpp" break; - case 125: -#line 1601 "fe/idl.ypp" + case 125: /* $@47: %empty */ +#line 1611 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ExceptDeclSeen); } -#line 4244 "fe/idl.tab.cpp" +#line 4183 "fe/idl.tab.cpp" break; - case 126: -#line 1605 "fe/idl.ypp" + case 126: /* export: exception $@47 ';' */ +#line 1615 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 4252 "fe/idl.tab.cpp" +#line 4191 "fe/idl.tab.cpp" break; - case 127: -#line 1609 "fe/idl.ypp" + case 127: /* $@48: %empty */ +#line 1619 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclSeen); } -#line 4260 "fe/idl.tab.cpp" +#line 4199 "fe/idl.tab.cpp" break; - case 128: -#line 1613 "fe/idl.ypp" + case 128: /* export: attribute $@48 ';' */ +#line 1623 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 4268 "fe/idl.tab.cpp" +#line 4207 "fe/idl.tab.cpp" break; - case 129: -#line 1617 "fe/idl.ypp" + case 129: /* $@49: %empty */ +#line 1627 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpDeclSeen); } -#line 4276 "fe/idl.tab.cpp" +#line 4215 "fe/idl.tab.cpp" break; - case 130: -#line 1621 "fe/idl.ypp" + case 130: /* export: operation $@49 ';' */ +#line 1631 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 4284 "fe/idl.tab.cpp" +#line 4223 "fe/idl.tab.cpp" break; - case 131: -#line 1625 "fe/idl.ypp" + case 131: /* $@50: %empty */ +#line 1635 "fe/idl.ypp" { idl_global->err ()->syntax_error (idl_global->parse_state ()); } -#line 4292 "fe/idl.tab.cpp" +#line 4231 "fe/idl.tab.cpp" break; - case 132: -#line 1629 "fe/idl.ypp" + case 132: /* export: error $@50 ';' */ +#line 1639 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); yyerrok; (yyval.dcval) = 0; } -#line 4302 "fe/idl.tab.cpp" +#line 4241 "fe/idl.tab.cpp" break; - case 133: -#line 1638 "fe/idl.ypp" + case 133: /* at_least_one_scoped_name: scoped_name scoped_names */ +#line 1648 "fe/idl.ypp" { ACE_NEW_RETURN ((yyval.nlval), UTL_NameList ((yyvsp[-1].idlist), (yyvsp[0].nlval)), 1); } -#line 4313 "fe/idl.tab.cpp" +#line 4252 "fe/idl.tab.cpp" break; - case 134: -#line 1649 "fe/idl.ypp" + case 134: /* $@51: %empty */ +#line 1659 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SNListCommaSeen); } -#line 4321 "fe/idl.tab.cpp" +#line 4260 "fe/idl.tab.cpp" break; - case 135: -#line 1653 "fe/idl.ypp" + case 135: /* scoped_names: scoped_names ',' $@51 scoped_name */ +#line 1663 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ScopedNameSeen); @@ -4341,19 +4280,19 @@ yyparse (void) (yyval.nlval) = (yyvsp[-3].nlval); } } -#line 4345 "fe/idl.tab.cpp" +#line 4284 "fe/idl.tab.cpp" break; - case 136: -#line 1673 "fe/idl.ypp" + case 136: /* scoped_names: %empty */ +#line 1683 "fe/idl.ypp" { (yyval.nlval) = 0; } -#line 4353 "fe/idl.tab.cpp" +#line 4292 "fe/idl.tab.cpp" break; - case 137: -#line 1680 "fe/idl.ypp" + case 137: /* scoped_name: id */ +#line 1690 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SN_IDSeen); @@ -4362,19 +4301,19 @@ yyparse (void) 0), 1); } -#line 4366 "fe/idl.tab.cpp" +#line 4305 "fe/idl.tab.cpp" break; - case 138: -#line 1689 "fe/idl.ypp" + case 138: /* $@52: %empty */ +#line 1699 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ScopeDelimSeen); } -#line 4374 "fe/idl.tab.cpp" +#line 4313 "fe/idl.tab.cpp" break; - case 139: -#line 1693 "fe/idl.ypp" + case 139: /* scoped_name: IDL_SCOPE_DELIMITOR $@52 id */ +#line 1703 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SN_IDSeen); @@ -4394,11 +4333,11 @@ yyparse (void) sn), 1); } -#line 4398 "fe/idl.tab.cpp" +#line 4337 "fe/idl.tab.cpp" break; - case 140: -#line 1714 "fe/idl.ypp" + case 140: /* $@53: %empty */ +#line 1724 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ScopeDelimSeen); @@ -4408,11 +4347,11 @@ yyparse (void) ACE::strdelete ((yyvsp[0].strval)); (yyvsp[0].strval) = 0; } -#line 4412 "fe/idl.tab.cpp" +#line 4351 "fe/idl.tab.cpp" break; - case 141: -#line 1724 "fe/idl.ypp" + case 141: /* scoped_name: scoped_name IDL_SCOPE_DELIMITOR $@53 id */ +#line 1734 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SN_IDSeen); @@ -4424,11 +4363,11 @@ yyparse (void) (yyvsp[-3].idlist)->nconc (sn); (yyval.idlist) = (yyvsp[-3].idlist); } -#line 4428 "fe/idl.tab.cpp" +#line 4367 "fe/idl.tab.cpp" break; - case 142: -#line 1738 "fe/idl.ypp" + case 142: /* id: IDENTIFIER */ +#line 1748 "fe/idl.ypp" { ACE_NEW_RETURN ((yyval.idval), Identifier ((yyvsp[0].strval)), @@ -4436,11 +4375,11 @@ yyparse (void) ACE::strdelete ((yyvsp[0].strval)); (yyvsp[0].strval) = 0; } -#line 4440 "fe/idl.tab.cpp" +#line 4379 "fe/idl.tab.cpp" break; - case 143: -#line 1748 "fe/idl.ypp" + case 143: /* defining_id: IDENTIFIER */ +#line 1758 "fe/idl.ypp" { /* defining_id is a defining identifier whereas id is usually a reference to a defining identifier */ @@ -4448,11 +4387,11 @@ yyparse (void) ACE::strdelete ((yyvsp[0].strval)); (yyvsp[0].strval) = 0; } -#line 4452 "fe/idl.tab.cpp" +#line 4391 "fe/idl.tab.cpp" break; - case 144: -#line 1759 "fe/idl.ypp" + case 144: /* interface_forward: interface_decl */ +#line 1769 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), 0); @@ -4495,11 +4434,11 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 4499 "fe/idl.tab.cpp" +#line 4438 "fe/idl.tab.cpp" break; - case 145: -#line 1803 "fe/idl.ypp" + case 145: /* interface_forward: IDL_LOCAL interface_decl */ +#line 1813 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -4525,11 +4464,11 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 4529 "fe/idl.tab.cpp" +#line 4468 "fe/idl.tab.cpp" break; - case 146: -#line 1830 "fe/idl.ypp" + case 146: /* interface_forward: IDL_ABSTRACT interface_decl */ +#line 1840 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -4557,43 +4496,43 @@ yyparse (void) (yyval.dcval) = dynamic_cast (f); } -#line 4561 "fe/idl.tab.cpp" +#line 4500 "fe/idl.tab.cpp" break; - case 147: -#line 1861 "fe/idl.ypp" + case 147: /* $@54: %empty */ +#line 1871 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ConstSeen); } -#line 4569 "fe/idl.tab.cpp" +#line 4508 "fe/idl.tab.cpp" break; - case 148: -#line 1865 "fe/idl.ypp" + case 148: /* $@55: %empty */ +#line 1875 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ConstTypeSeen); } -#line 4577 "fe/idl.tab.cpp" +#line 4516 "fe/idl.tab.cpp" break; - case 149: -#line 1869 "fe/idl.ypp" + case 149: /* $@56: %empty */ +#line 1879 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ConstIDSeen); } -#line 4585 "fe/idl.tab.cpp" +#line 4524 "fe/idl.tab.cpp" break; - case 150: -#line 1873 "fe/idl.ypp" + case 150: /* $@57: %empty */ +#line 1883 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ConstAssignSeen); } -#line 4593 "fe/idl.tab.cpp" +#line 4532 "fe/idl.tab.cpp" break; - case 151: -#line 1877 "fe/idl.ypp" + case 151: /* const_dcl: IDL_CONST $@54 const_type $@55 defining_id $@56 '=' $@57 expression */ +#line 1887 "fe/idl.ypp" { (yyval.dcval) = 0; UTL_ScopedName n ((yyvsp[-4].idval), 0); @@ -4649,27 +4588,27 @@ yyparse (void) delete (yyvsp[-4].idval); (yyvsp[-4].idval) = 0; } -#line 4653 "fe/idl.tab.cpp" +#line 4592 "fe/idl.tab.cpp" break; - case 158: -#line 1942 "fe/idl.ypp" + case 158: /* const_type: string_type_spec */ +#line 1952 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_string; } -#line 4661 "fe/idl.tab.cpp" +#line 4600 "fe/idl.tab.cpp" break; - case 159: -#line 1946 "fe/idl.ypp" + case 159: /* const_type: wstring_type_spec */ +#line 1956 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_wstring; } -#line 4669 "fe/idl.tab.cpp" +#line 4608 "fe/idl.tab.cpp" break; - case 160: -#line 1950 "fe/idl.ypp" + case 160: /* const_type: scoped_name */ +#line 1960 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_PredefinedType *c = 0; @@ -4735,11 +4674,11 @@ yyparse (void) sn = 0; (yyvsp[0].idlist) = 0; } -#line 4739 "fe/idl.tab.cpp" +#line 4678 "fe/idl.tab.cpp" break; - case 164: -#line 2023 "fe/idl.ypp" + case 164: /* or_expr: or_expr '|' xor_expr */ +#line 2033 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4748,11 +4687,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4752 "fe/idl.tab.cpp" +#line 4691 "fe/idl.tab.cpp" break; - case 166: -#line 2036 "fe/idl.ypp" + case 166: /* xor_expr: xor_expr '^' and_expr */ +#line 2046 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4761,11 +4700,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4765 "fe/idl.tab.cpp" +#line 4704 "fe/idl.tab.cpp" break; - case 168: -#line 2049 "fe/idl.ypp" + case 168: /* and_expr: and_expr '&' shift_expr */ +#line 2059 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4774,11 +4713,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4778 "fe/idl.tab.cpp" +#line 4717 "fe/idl.tab.cpp" break; - case 170: -#line 2062 "fe/idl.ypp" + case 170: /* shift_expr: shift_expr IDL_LEFT_SHIFT add_expr */ +#line 2072 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4787,11 +4726,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4791 "fe/idl.tab.cpp" +#line 4730 "fe/idl.tab.cpp" break; - case 171: -#line 2071 "fe/idl.ypp" + case 171: /* shift_expr: shift_expr IDL_RIGHT_SHIFT add_expr */ +#line 2081 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4800,11 +4739,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4804 "fe/idl.tab.cpp" +#line 4743 "fe/idl.tab.cpp" break; - case 173: -#line 2084 "fe/idl.ypp" + case 173: /* add_expr: add_expr '+' mult_expr */ +#line 2094 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4813,11 +4752,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4817 "fe/idl.tab.cpp" +#line 4756 "fe/idl.tab.cpp" break; - case 174: -#line 2093 "fe/idl.ypp" + case 174: /* add_expr: add_expr '-' mult_expr */ +#line 2103 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4826,11 +4765,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4830 "fe/idl.tab.cpp" +#line 4769 "fe/idl.tab.cpp" break; - case 176: -#line 2106 "fe/idl.ypp" + case 176: /* mult_expr: mult_expr '*' unary_expr */ +#line 2116 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4839,11 +4778,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4843 "fe/idl.tab.cpp" +#line 4782 "fe/idl.tab.cpp" break; - case 177: -#line 2115 "fe/idl.ypp" + case 177: /* mult_expr: mult_expr '/' unary_expr */ +#line 2125 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4852,11 +4791,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4856 "fe/idl.tab.cpp" +#line 4795 "fe/idl.tab.cpp" break; - case 178: -#line 2124 "fe/idl.ypp" + case 178: /* mult_expr: mult_expr '%' unary_expr */ +#line 2134 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4865,11 +4804,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4869 "fe/idl.tab.cpp" +#line 4808 "fe/idl.tab.cpp" break; - case 180: -#line 2137 "fe/idl.ypp" + case 180: /* unary_expr: '+' primary_expr */ +#line 2147 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4878,11 +4817,11 @@ yyparse (void) 0 ); } -#line 4882 "fe/idl.tab.cpp" +#line 4821 "fe/idl.tab.cpp" break; - case 181: -#line 2146 "fe/idl.ypp" + case 181: /* unary_expr: '-' primary_expr */ +#line 2156 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4891,11 +4830,11 @@ yyparse (void) 0 ); } -#line 4895 "fe/idl.tab.cpp" +#line 4834 "fe/idl.tab.cpp" break; - case 182: -#line 2155 "fe/idl.ypp" + case 182: /* unary_expr: '~' primary_expr */ +#line 2165 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4904,11 +4843,11 @@ yyparse (void) 0 ); } -#line 4908 "fe/idl.tab.cpp" +#line 4847 "fe/idl.tab.cpp" break; - case 183: -#line 2167 "fe/idl.ypp" + case 183: /* primary_expr: scoped_name */ +#line 2177 "fe/idl.ypp" { UTL_ScopedName *name = (yyvsp[0].idlist); @@ -4965,107 +4904,107 @@ yyparse (void) delete name; (yyvsp[0].idlist) = name = 0; } -#line 4969 "fe/idl.tab.cpp" +#line 4908 "fe/idl.tab.cpp" break; - case 185: -#line 2225 "fe/idl.ypp" + case 185: /* primary_expr: '(' const_expr ')' */ +#line 2235 "fe/idl.ypp" { (yyval.exval) = (yyvsp[-1].exval); } -#line 4977 "fe/idl.tab.cpp" +#line 4916 "fe/idl.tab.cpp" break; - case 186: -#line 2232 "fe/idl.ypp" + case 186: /* literal: IDL_INTEGER_LITERAL */ +#line 2242 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].ival)); } -#line 4985 "fe/idl.tab.cpp" +#line 4924 "fe/idl.tab.cpp" break; - case 187: -#line 2236 "fe/idl.ypp" + case 187: /* literal: IDL_UINTEGER_LITERAL */ +#line 2246 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].uival)); } -#line 4994 "fe/idl.tab.cpp" +#line 4933 "fe/idl.tab.cpp" break; - case 188: -#line 2241 "fe/idl.ypp" + case 188: /* literal: IDL_STRING_LITERAL */ +#line 2251 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].sval)); (yyvsp[0].sval)->destroy (); delete (yyvsp[0].sval); (yyvsp[0].sval) = 0; } -#line 5005 "fe/idl.tab.cpp" +#line 4944 "fe/idl.tab.cpp" break; - case 189: -#line 2248 "fe/idl.ypp" + case 189: /* literal: IDL_WSTRING_LITERAL */ +#line 2258 "fe/idl.ypp" { char *wide_string = (yyvsp[0].wsval); (yyval.exval) = idl_global->gen ()->create_expr (wide_string); ACE_OS::free (wide_string); (yyvsp[0].wsval) = 0; } -#line 5016 "fe/idl.tab.cpp" +#line 4955 "fe/idl.tab.cpp" break; - case 190: -#line 2255 "fe/idl.ypp" + case 190: /* literal: IDL_CHARACTER_LITERAL */ +#line 2265 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].cval)); } -#line 5024 "fe/idl.tab.cpp" +#line 4963 "fe/idl.tab.cpp" break; - case 191: -#line 2259 "fe/idl.ypp" + case 191: /* literal: IDL_WCHAR_LITERAL */ +#line 2269 "fe/idl.ypp" { ACE_OutputCDR::from_wchar wc ((yyvsp[0].wcval)); (yyval.exval) = idl_global->gen ()->create_expr (wc); } -#line 5033 "fe/idl.tab.cpp" +#line 4972 "fe/idl.tab.cpp" break; - case 192: -#line 2264 "fe/idl.ypp" + case 192: /* literal: IDL_FIXED_PT_LITERAL */ +#line 2274 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].fixval)); } -#line 5041 "fe/idl.tab.cpp" +#line 4980 "fe/idl.tab.cpp" break; - case 193: -#line 2268 "fe/idl.ypp" + case 193: /* literal: IDL_FLOATING_PT_LITERAL */ +#line 2278 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].dval)); } -#line 5049 "fe/idl.tab.cpp" +#line 4988 "fe/idl.tab.cpp" break; - case 194: -#line 2272 "fe/idl.ypp" + case 194: /* literal: IDL_TRUETOK */ +#line 2282 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr (true); } -#line 5057 "fe/idl.tab.cpp" +#line 4996 "fe/idl.tab.cpp" break; - case 195: -#line 2276 "fe/idl.ypp" + case 195: /* literal: IDL_FALSETOK */ +#line 2286 "fe/idl.ypp" { (yyval.exval) = idl_global->gen ()->create_expr (false); } -#line 5065 "fe/idl.tab.cpp" +#line 5004 "fe/idl.tab.cpp" break; - case 196: -#line 2283 "fe/idl.ypp" + case 196: /* positive_int_expr: const_expr */ +#line 2293 "fe/idl.ypp" { int good_expression = 1; (yyvsp[0].exval)->evaluate (AST_Expression::EK_positive_int); @@ -5130,11 +5069,11 @@ yyparse (void) idl_global->err ()->syntax_error (idl_global->parse_state ()); } } -#line 5134 "fe/idl.tab.cpp" +#line 5073 "fe/idl.tab.cpp" break; - case 197: -#line 2351 "fe/idl.ypp" + case 197: /* $@58: %empty */ +#line 2361 "fe/idl.ypp" { if (idl_global->idl_version_ < IDL_VERSION_4) { @@ -5151,11 +5090,11 @@ yyparse (void) fe_add_annotation_decl (annotation_decl); idl_global->scopes ().push (annotation_decl); } -#line 5155 "fe/idl.tab.cpp" +#line 5094 "fe/idl.tab.cpp" break; - case 198: -#line 2368 "fe/idl.ypp" + case 198: /* annotation_dcl: IDL_ANNOTATION_DECL defining_id '{' $@58 annotation_body '}' */ +#line 2378 "fe/idl.ypp" { Identifier *id = (yyvsp[-4].idval); idl_global->scopes ().pop (); @@ -5164,20 +5103,20 @@ yyparse (void) (yyval.dcval) = 0; } -#line 5168 "fe/idl.tab.cpp" +#line 5107 "fe/idl.tab.cpp" break; - case 204: -#line 2388 "fe/idl.ypp" + case 204: /* $@59: %empty */ +#line 2398 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_TypedefSeen); idl_global->in_typedef (true); } -#line 5177 "fe/idl.tab.cpp" +#line 5116 "fe/idl.tab.cpp" break; - case 208: -#line 2402 "fe/idl.ypp" + case 208: /* annotation_member: annotation_member_type defining_id annotation_member_default ';' */ +#line 2412 "fe/idl.ypp" { UTL_Scope *scope = idl_global->scopes ().top_non_null (); UTL_Scope *root = idl_global->scopes ().bottom (); @@ -5230,27 +5169,27 @@ yyparse (void) delete result; } } -#line 5234 "fe/idl.tab.cpp" +#line 5173 "fe/idl.tab.cpp" break; - case 209: -#line 2458 "fe/idl.ypp" + case 209: /* annotation_member_default: IDL_DEFAULT const_expr */ +#line 2468 "fe/idl.ypp" { (yyval.exval) = (yyvsp[0].exval); } -#line 5242 "fe/idl.tab.cpp" +#line 5181 "fe/idl.tab.cpp" break; - case 210: -#line 2462 "fe/idl.ypp" + case 210: /* annotation_member_default: %empty */ +#line 2472 "fe/idl.ypp" { (yyval.exval) = 0; } -#line 5250 "fe/idl.tab.cpp" +#line 5189 "fe/idl.tab.cpp" break; - case 211: -#line 2469 "fe/idl.ypp" + case 211: /* at_least_one_annotation: annotations_maybe annotation_appl */ +#line 2479 "fe/idl.ypp" { AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val); AST_Annotation_Appl *annotation = (yyvsp[0].annotation_val); @@ -5260,11 +5199,11 @@ yyparse (void) } (yyval.annotations_val) = annotations; } -#line 5264 "fe/idl.tab.cpp" +#line 5203 "fe/idl.tab.cpp" break; - case 212: -#line 2482 "fe/idl.ypp" + case 212: /* annotations_maybe: annotations_maybe annotation_appl */ +#line 2492 "fe/idl.ypp" { AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val); AST_Annotation_Appl *annotation = (yyvsp[0].annotation_val); @@ -5274,19 +5213,19 @@ yyparse (void) } (yyval.annotations_val) = annotations; } -#line 5278 "fe/idl.tab.cpp" +#line 5217 "fe/idl.tab.cpp" break; - case 213: -#line 2492 "fe/idl.ypp" + case 213: /* annotations_maybe: %empty */ +#line 2502 "fe/idl.ypp" { (yyval.annotations_val) = new AST_Annotation_Appls (); } -#line 5286 "fe/idl.tab.cpp" +#line 5225 "fe/idl.tab.cpp" break; - case 214: -#line 2499 "fe/idl.ypp" + case 214: /* @60: %empty */ +#line 2509 "fe/idl.ypp" { if (idl_global->idl_version_ < IDL_VERSION_4) { @@ -5343,11 +5282,11 @@ yyparse (void) (yyval.annotation_decl_val) = decl; } -#line 5347 "fe/idl.tab.cpp" +#line 5286 "fe/idl.tab.cpp" break; - case 215: -#line 2556 "fe/idl.ypp" + case 215: /* annotation_appl: IDL_ANNOTATION_SYMBOL scoped_name @60 annotation_appl_params_maybe */ +#line 2566 "fe/idl.ypp" { idl_global->ignore_lookup_errors_ = false; stack_based_lookup_for_primary_expr = false; @@ -5375,27 +5314,27 @@ yyparse (void) (yyval.annotation_val) = appl; } -#line 5379 "fe/idl.tab.cpp" +#line 5318 "fe/idl.tab.cpp" break; - case 216: -#line 2587 "fe/idl.ypp" + case 216: /* annotation_appl_params_maybe: '(' annotation_appl_params ')' */ +#line 2597 "fe/idl.ypp" { (yyval.annotation_params_val) = (yyvsp[-1].annotation_params_val); } -#line 5387 "fe/idl.tab.cpp" +#line 5326 "fe/idl.tab.cpp" break; - case 217: -#line 2591 "fe/idl.ypp" + case 217: /* annotation_appl_params_maybe: %empty */ +#line 2601 "fe/idl.ypp" { (yyval.annotation_params_val) = 0; } -#line 5395 "fe/idl.tab.cpp" +#line 5334 "fe/idl.tab.cpp" break; - case 218: -#line 2598 "fe/idl.ypp" + case 218: /* annotation_appl_params: const_expr */ +#line 2608 "fe/idl.ypp" { AST_Annotation_Appl::Params *params = new AST_Annotation_Appl::Params; AST_Annotation_Appl::Param *param = new AST_Annotation_Appl::Param; @@ -5404,47 +5343,47 @@ yyparse (void) params->push (param); (yyval.annotation_params_val) = params; } -#line 5408 "fe/idl.tab.cpp" +#line 5347 "fe/idl.tab.cpp" break; - case 219: -#line 2607 "fe/idl.ypp" + case 219: /* annotation_appl_params: named_annotation_appl_params */ +#line 2617 "fe/idl.ypp" { (yyval.annotation_params_val) = (yyvsp[0].annotation_params_val); } -#line 5416 "fe/idl.tab.cpp" +#line 5355 "fe/idl.tab.cpp" break; - case 220: -#line 2614 "fe/idl.ypp" + case 220: /* named_annotation_appl_params: named_annotation_appl_param more_named_annotation_appl_params */ +#line 2624 "fe/idl.ypp" { AST_Annotation_Appl::Params *params = (yyvsp[0].annotation_params_val); params->push ((yyvsp[-1].annotation_param_val)); (yyval.annotation_params_val) = params; } -#line 5426 "fe/idl.tab.cpp" +#line 5365 "fe/idl.tab.cpp" break; - case 221: -#line 2622 "fe/idl.ypp" + case 221: /* more_named_annotation_appl_params: ',' named_annotation_appl_param more_named_annotation_appl_params */ +#line 2632 "fe/idl.ypp" { AST_Annotation_Appl::Params *params = (yyvsp[0].annotation_params_val); params->push ((yyvsp[-1].annotation_param_val)); (yyval.annotation_params_val) = params; } -#line 5436 "fe/idl.tab.cpp" +#line 5375 "fe/idl.tab.cpp" break; - case 222: -#line 2628 "fe/idl.ypp" + case 222: /* more_named_annotation_appl_params: %empty */ +#line 2638 "fe/idl.ypp" { (yyval.annotation_params_val) = new AST_Annotation_Appl::Params; } -#line 5444 "fe/idl.tab.cpp" +#line 5383 "fe/idl.tab.cpp" break; - case 223: -#line 2635 "fe/idl.ypp" + case 223: /* named_annotation_appl_param: id '=' const_expr */ +#line 2645 "fe/idl.ypp" { AST_Annotation_Appl::Param *param = new AST_Annotation_Appl::Param; param->id = (yyvsp[-2].idval); @@ -5453,52 +5392,52 @@ yyparse (void) param->expr = (yyvsp[0].exval); (yyval.annotation_param_val) = param; } -#line 5457 "fe/idl.tab.cpp" +#line 5396 "fe/idl.tab.cpp" break; - case 224: -#line 2647 "fe/idl.ypp" + case 224: /* $@61: %empty */ +#line 2657 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_TypedefSeen); idl_global->in_typedef (true); } -#line 5466 "fe/idl.tab.cpp" +#line 5405 "fe/idl.tab.cpp" break; - case 225: -#line 2652 "fe/idl.ypp" + case 225: /* type_dcl: IDL_TYPEDEF $@61 type_declarator */ +#line 2662 "fe/idl.ypp" { (yyval.dcval) = (yyvsp[0].dcval); } -#line 5474 "fe/idl.tab.cpp" +#line 5413 "fe/idl.tab.cpp" break; - case 226: -#line 2656 "fe/idl.ypp" + case 226: /* type_dcl: struct_type */ +#line 2666 "fe/idl.ypp" { (yyval.dcval) = (yyvsp[0].dcval); } -#line 5482 "fe/idl.tab.cpp" +#line 5421 "fe/idl.tab.cpp" break; - case 227: -#line 2660 "fe/idl.ypp" + case 227: /* type_dcl: union_type */ +#line 2670 "fe/idl.ypp" { (yyval.dcval) = (yyvsp[0].dcval); } -#line 5490 "fe/idl.tab.cpp" +#line 5429 "fe/idl.tab.cpp" break; - case 228: -#line 2664 "fe/idl.ypp" + case 228: /* type_dcl: enum_type */ +#line 2674 "fe/idl.ypp" { (yyval.dcval) = (yyvsp[0].dcval); } -#line 5498 "fe/idl.tab.cpp" +#line 5437 "fe/idl.tab.cpp" break; - case 229: -#line 2668 "fe/idl.ypp" + case 229: /* type_dcl: IDL_NATIVE simple_declarator */ +#line 2678 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Native *node = 0; @@ -5526,27 +5465,27 @@ yyparse (void) (yyval.dcval) = 0; } -#line 5530 "fe/idl.tab.cpp" +#line 5469 "fe/idl.tab.cpp" break; - case 230: -#line 2696 "fe/idl.ypp" + case 230: /* type_dcl: constructed_forward_type_spec */ +#line 2706 "fe/idl.ypp" { (yyval.dcval) = 0; } -#line 5538 "fe/idl.tab.cpp" +#line 5477 "fe/idl.tab.cpp" break; - case 231: -#line 2703 "fe/idl.ypp" + case 231: /* $@62: %empty */ +#line 2713 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_TypeSpecSeen); } -#line 5546 "fe/idl.tab.cpp" +#line 5485 "fe/idl.tab.cpp" break; - case 232: -#line 2707 "fe/idl.ypp" + case 232: /* type_declarator: type_spec $@62 at_least_one_declarator */ +#line 2717 "fe/idl.ypp" { AST_Decl *type_spec = (yyvsp[-2].dcval); UTL_DeclList *decls = (yyvsp[0].dlval); @@ -5610,22 +5549,22 @@ yyparse (void) (yyval.dcval) = t; } -#line 5614 "fe/idl.tab.cpp" +#line 5553 "fe/idl.tab.cpp" break; - case 235: -#line 2779 "fe/idl.ypp" + case 235: /* simple_type_spec: base_type_spec */ +#line 2789 "fe/idl.ypp" { (yyval.dcval) = idl_global->scopes ().bottom ()->lookup_primitive_type ( (yyvsp[0].etval) ); } -#line 5625 "fe/idl.tab.cpp" +#line 5564 "fe/idl.tab.cpp" break; - case 237: -#line 2787 "fe/idl.ypp" + case 237: /* simple_type_spec: scoped_name */ +#line 2797 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Decl *d = 0; @@ -5648,30 +5587,30 @@ yyparse (void) (yyval.dcval) = d; } -#line 5652 "fe/idl.tab.cpp" +#line 5591 "fe/idl.tab.cpp" break; - case 255: -#line 2842 "fe/idl.ypp" + case 255: /* at_least_one_declarator: declarator declarators */ +#line 2852 "fe/idl.ypp" { ACE_NEW_RETURN ((yyval.dlval), UTL_DeclList ((yyvsp[-1].deval), (yyvsp[0].dlval)), 1); } -#line 5663 "fe/idl.tab.cpp" +#line 5602 "fe/idl.tab.cpp" break; - case 256: -#line 2853 "fe/idl.ypp" + case 256: /* $@63: %empty */ +#line 2863 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_DeclsCommaSeen); } -#line 5671 "fe/idl.tab.cpp" +#line 5610 "fe/idl.tab.cpp" break; - case 257: -#line 2857 "fe/idl.ypp" + case 257: /* declarators: declarators ',' $@63 declarator */ +#line 2867 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_DeclsDeclSeen); @@ -5691,38 +5630,38 @@ yyparse (void) (yyval.dlval) = (yyvsp[-3].dlval); } } -#line 5695 "fe/idl.tab.cpp" +#line 5634 "fe/idl.tab.cpp" break; - case 258: -#line 2877 "fe/idl.ypp" + case 258: /* declarators: %empty */ +#line 2887 "fe/idl.ypp" { (yyval.dlval) = 0; } -#line 5703 "fe/idl.tab.cpp" +#line 5642 "fe/idl.tab.cpp" break; - case 261: -#line 2889 "fe/idl.ypp" + case 261: /* at_least_one_simple_declarator: simple_declarator simple_declarators */ +#line 2899 "fe/idl.ypp" { ACE_NEW_RETURN ((yyval.dlval), UTL_DeclList ((yyvsp[-1].deval), (yyvsp[0].dlval)), 1); } -#line 5714 "fe/idl.tab.cpp" +#line 5653 "fe/idl.tab.cpp" break; - case 262: -#line 2900 "fe/idl.ypp" + case 262: /* $@64: %empty */ +#line 2910 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_DeclsCommaSeen); } -#line 5722 "fe/idl.tab.cpp" +#line 5661 "fe/idl.tab.cpp" break; - case 263: -#line 2904 "fe/idl.ypp" + case 263: /* simple_declarators: simple_declarators ',' $@64 simple_declarator */ +#line 2914 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_DeclsDeclSeen); @@ -5742,19 +5681,19 @@ yyparse (void) (yyval.dlval) = (yyvsp[-3].dlval); } } -#line 5746 "fe/idl.tab.cpp" +#line 5685 "fe/idl.tab.cpp" break; - case 264: -#line 2924 "fe/idl.ypp" + case 264: /* simple_declarators: %empty */ +#line 2934 "fe/idl.ypp" { (yyval.dlval) = 0; } -#line 5754 "fe/idl.tab.cpp" +#line 5693 "fe/idl.tab.cpp" break; - case 265: -#line 2931 "fe/idl.ypp" + case 265: /* simple_declarator: defining_id */ +#line 2941 "fe/idl.ypp" { UTL_ScopedName *sn = 0; ACE_NEW_RETURN (sn, @@ -5767,11 +5706,11 @@ yyparse (void) 0), 1); } -#line 5771 "fe/idl.tab.cpp" +#line 5710 "fe/idl.tab.cpp" break; - case 266: -#line 2947 "fe/idl.ypp" + case 266: /* complex_declarator: array_declarator */ +#line 2957 "fe/idl.ypp" { UTL_ScopedName *sn = 0; ACE_NEW_RETURN (sn, @@ -5786,156 +5725,220 @@ yyparse (void) (yyvsp[0].dcval)), 1); } -#line 5790 "fe/idl.tab.cpp" +#line 5729 "fe/idl.tab.cpp" break; - case 269: -#line 2970 "fe/idl.ypp" + case 269: /* signed_int: IDL_LONG */ +#line 2980 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_long; } -#line 5798 "fe/idl.tab.cpp" +#line 5737 "fe/idl.tab.cpp" break; - case 270: -#line 2974 "fe/idl.ypp" + case 270: /* signed_int: IDL_LONG IDL_LONG */ +#line 2984 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_longlong; } -#line 5806 "fe/idl.tab.cpp" +#line 5745 "fe/idl.tab.cpp" + break; + + case 271: /* signed_int: IDL_SHORT */ +#line 2988 "fe/idl.ypp" + { + (yyval.etval) = AST_Expression::EV_short; + } +#line 5753 "fe/idl.tab.cpp" + break; + + case 272: /* signed_int: IDL_INT8 */ +#line 2992 "fe/idl.ypp" + { + (yyval.etval) = AST_Expression::EV_int8; + } +#line 5761 "fe/idl.tab.cpp" break; - case 271: -#line 2978 "fe/idl.ypp" + case 273: /* signed_int: IDL_INT16 */ +#line 2996 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_short; } -#line 5814 "fe/idl.tab.cpp" +#line 5769 "fe/idl.tab.cpp" break; - case 272: -#line 2985 "fe/idl.ypp" + case 274: /* signed_int: IDL_INT32 */ +#line 3000 "fe/idl.ypp" + { + (yyval.etval) = AST_Expression::EV_long; + } +#line 5777 "fe/idl.tab.cpp" + break; + + case 275: /* signed_int: IDL_INT64 */ +#line 3004 "fe/idl.ypp" + { + (yyval.etval) = AST_Expression::EV_longlong; + } +#line 5785 "fe/idl.tab.cpp" + break; + + case 276: /* unsigned_int: IDL_UNSIGNED IDL_LONG */ +#line 3011 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_ulong; } -#line 5822 "fe/idl.tab.cpp" +#line 5793 "fe/idl.tab.cpp" break; - case 273: -#line 2989 "fe/idl.ypp" + case 277: /* unsigned_int: IDL_UNSIGNED IDL_LONG IDL_LONG */ +#line 3015 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_ulonglong; } -#line 5830 "fe/idl.tab.cpp" +#line 5801 "fe/idl.tab.cpp" break; - case 274: -#line 2993 "fe/idl.ypp" + case 278: /* unsigned_int: IDL_UNSIGNED IDL_SHORT */ +#line 3019 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_ushort; } -#line 5838 "fe/idl.tab.cpp" +#line 5809 "fe/idl.tab.cpp" break; - case 275: -#line 3000 "fe/idl.ypp" + case 279: /* unsigned_int: IDL_UINT8 */ +#line 3023 "fe/idl.ypp" + { + (yyval.etval) = AST_Expression::EV_uint8; + } +#line 5817 "fe/idl.tab.cpp" + break; + + case 280: /* unsigned_int: IDL_UINT16 */ +#line 3027 "fe/idl.ypp" + { + (yyval.etval) = AST_Expression::EV_ushort; + } +#line 5825 "fe/idl.tab.cpp" + break; + + case 281: /* unsigned_int: IDL_UINT32 */ +#line 3031 "fe/idl.ypp" + { + (yyval.etval) = AST_Expression::EV_ulong; + } +#line 5833 "fe/idl.tab.cpp" + break; + + case 282: /* unsigned_int: IDL_UINT64 */ +#line 3035 "fe/idl.ypp" + { + (yyval.etval) = AST_Expression::EV_ulonglong; + } +#line 5841 "fe/idl.tab.cpp" + break; + + case 283: /* floating_pt_type: IDL_DOUBLE */ +#line 3042 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_double; } -#line 5846 "fe/idl.tab.cpp" +#line 5849 "fe/idl.tab.cpp" break; - case 276: -#line 3004 "fe/idl.ypp" + case 284: /* floating_pt_type: IDL_FLOAT */ +#line 3046 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_float; } -#line 5854 "fe/idl.tab.cpp" +#line 5857 "fe/idl.tab.cpp" break; - case 277: -#line 3008 "fe/idl.ypp" + case 285: /* floating_pt_type: IDL_LONG IDL_DOUBLE */ +#line 3050 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_longdouble; } -#line 5862 "fe/idl.tab.cpp" +#line 5865 "fe/idl.tab.cpp" break; - case 278: -#line 3015 "fe/idl.ypp" + case 286: /* fixed_type: IDL_FIXED */ +#line 3057 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_fixed; } -#line 5870 "fe/idl.tab.cpp" +#line 5873 "fe/idl.tab.cpp" break; - case 279: -#line 3022 "fe/idl.ypp" + case 287: /* char_type: IDL_CHAR */ +#line 3064 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_char; } -#line 5878 "fe/idl.tab.cpp" +#line 5881 "fe/idl.tab.cpp" break; - case 280: -#line 3026 "fe/idl.ypp" + case 288: /* char_type: IDL_WCHAR */ +#line 3068 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_wchar; } -#line 5886 "fe/idl.tab.cpp" +#line 5889 "fe/idl.tab.cpp" break; - case 281: -#line 3033 "fe/idl.ypp" + case 289: /* octet_type: IDL_OCTET */ +#line 3075 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_octet; } -#line 5894 "fe/idl.tab.cpp" +#line 5897 "fe/idl.tab.cpp" break; - case 282: -#line 3040 "fe/idl.ypp" + case 290: /* boolean_type: IDL_BOOLEAN */ +#line 3082 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_bool; } -#line 5902 "fe/idl.tab.cpp" +#line 5905 "fe/idl.tab.cpp" break; - case 283: -#line 3047 "fe/idl.ypp" + case 291: /* any_type: IDL_ANY */ +#line 3089 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_any; } -#line 5910 "fe/idl.tab.cpp" +#line 5913 "fe/idl.tab.cpp" break; - case 284: -#line 3054 "fe/idl.ypp" + case 292: /* object_type: IDL_OBJECT */ +#line 3096 "fe/idl.ypp" { (yyval.etval) = AST_Expression::EV_object; } -#line 5918 "fe/idl.tab.cpp" +#line 5921 "fe/idl.tab.cpp" break; - case 285: -#line 3061 "fe/idl.ypp" + case 293: /* $@65: %empty */ +#line 3103 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StructSeen); } -#line 5926 "fe/idl.tab.cpp" +#line 5929 "fe/idl.tab.cpp" break; - case 286: -#line 3065 "fe/idl.ypp" + case 294: /* struct_decl: IDL_STRUCT $@65 defining_id */ +#line 3107 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StructIDSeen); (yyval.idval) = (yyvsp[0].idval); } -#line 5935 "fe/idl.tab.cpp" +#line 5938 "fe/idl.tab.cpp" break; - case 287: -#line 3074 "fe/idl.ypp" + case 295: /* $@66: %empty */ +#line 3116 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), 0); @@ -5966,27 +5969,27 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 5970 "fe/idl.tab.cpp" +#line 5973 "fe/idl.tab.cpp" break; - case 288: -#line 3105 "fe/idl.ypp" + case 296: /* $@67: %empty */ +#line 3147 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StructSqSeen); } -#line 5978 "fe/idl.tab.cpp" +#line 5981 "fe/idl.tab.cpp" break; - case 289: -#line 3109 "fe/idl.ypp" + case 297: /* $@68: %empty */ +#line 3151 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StructBodySeen); } -#line 5986 "fe/idl.tab.cpp" +#line 5989 "fe/idl.tab.cpp" break; - case 290: -#line 3113 "fe/idl.ypp" + case 298: /* struct_type: struct_decl $@66 '{' $@67 at_least_one_member $@68 '}' */ +#line 3155 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StructQsSeen); @@ -5998,11 +6001,11 @@ yyparse (void) ); idl_global->scopes ().pop (); } -#line 6002 "fe/idl.tab.cpp" +#line 6005 "fe/idl.tab.cpp" break; - case 294: -#line 3135 "fe/idl.ypp" + case 302: /* member: annotations_maybe member_i */ +#line 3177 "fe/idl.ypp" { AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val); AST_Decls *members = (yyvsp[0].decls_val); @@ -6016,27 +6019,27 @@ yyparse (void) delete annotations; delete members; } -#line 6020 "fe/idl.tab.cpp" +#line 6023 "fe/idl.tab.cpp" break; - case 295: -#line 3152 "fe/idl.ypp" + case 303: /* $@69: %empty */ +#line 3194 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_MemberTypeSeen); } -#line 6028 "fe/idl.tab.cpp" +#line 6031 "fe/idl.tab.cpp" break; - case 296: -#line 3156 "fe/idl.ypp" + case 304: /* $@70: %empty */ +#line 3198 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_MemberDeclsSeen); } -#line 6036 "fe/idl.tab.cpp" +#line 6039 "fe/idl.tab.cpp" break; - case 297: -#line 3160 "fe/idl.ypp" + case 305: /* member_i: type_spec $@69 at_least_one_declarator $@70 ';' */ +#line 3202 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); FE_Declarator *d = 0; @@ -6090,53 +6093,53 @@ yyparse (void) (yyval.decls_val) = members; } -#line 6094 "fe/idl.tab.cpp" +#line 6097 "fe/idl.tab.cpp" break; - case 298: -#line 3214 "fe/idl.ypp" + case 306: /* $@71: %empty */ +#line 3256 "fe/idl.ypp" { idl_global->err ()->syntax_error (idl_global->parse_state ()); } -#line 6102 "fe/idl.tab.cpp" +#line 6105 "fe/idl.tab.cpp" break; - case 299: -#line 3218 "fe/idl.ypp" + case 307: /* member_i: error $@71 ';' */ +#line 3260 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); yyerrok; } -#line 6111 "fe/idl.tab.cpp" +#line 6114 "fe/idl.tab.cpp" break; - case 300: -#line 3226 "fe/idl.ypp" + case 308: /* $@72: %empty */ +#line 3268 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_UnionSeen); } -#line 6119 "fe/idl.tab.cpp" +#line 6122 "fe/idl.tab.cpp" break; - case 301: -#line 3230 "fe/idl.ypp" + case 309: /* union_decl: IDL_UNION $@72 defining_id */ +#line 3272 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_UnionIDSeen); (yyval.idval) = (yyvsp[0].idval); } -#line 6128 "fe/idl.tab.cpp" +#line 6131 "fe/idl.tab.cpp" break; - case 302: -#line 3238 "fe/idl.ypp" + case 310: /* $@73: %empty */ +#line 3280 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SwitchSeen); } -#line 6136 "fe/idl.tab.cpp" +#line 6139 "fe/idl.tab.cpp" break; - case 303: -#line 3242 "fe/idl.ypp" + case 311: /* $@74: %empty */ +#line 3284 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[-3].idval), 0); @@ -6169,19 +6172,19 @@ yyparse (void) * Don't delete $1 yet; we'll need it a bit later. */ } -#line 6173 "fe/idl.tab.cpp" +#line 6176 "fe/idl.tab.cpp" break; - case 304: -#line 3275 "fe/idl.ypp" + case 312: /* $@75: %empty */ +#line 3317 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SwitchTypeSeen); } -#line 6181 "fe/idl.tab.cpp" +#line 6184 "fe/idl.tab.cpp" break; - case 305: -#line 3279 "fe/idl.ypp" + case 313: /* $@76: %empty */ +#line 3321 "fe/idl.ypp" { /* * The top of the scopes must be an empty union we added after we @@ -6240,27 +6243,27 @@ yyparse (void) delete disc_annotations; } -#line 6244 "fe/idl.tab.cpp" +#line 6247 "fe/idl.tab.cpp" break; - case 306: -#line 3338 "fe/idl.ypp" + case 314: /* $@77: %empty */ +#line 3380 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_UnionSqSeen); } -#line 6252 "fe/idl.tab.cpp" +#line 6255 "fe/idl.tab.cpp" break; - case 307: -#line 3342 "fe/idl.ypp" + case 315: /* $@78: %empty */ +#line 3384 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_UnionBodySeen); } -#line 6260 "fe/idl.tab.cpp" +#line 6263 "fe/idl.tab.cpp" break; - case 308: -#line 3346 "fe/idl.ypp" + case 316: /* union_type: union_decl IDL_SWITCH $@73 '(' $@74 annotations_maybe switch_type_spec $@75 ')' $@76 '{' $@77 at_least_one_case_branch $@78 '}' */ +#line 3388 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_UnionQsSeen); @@ -6276,22 +6279,22 @@ yyparse (void) idl_global->scopes ().pop (); } } -#line 6280 "fe/idl.tab.cpp" +#line 6283 "fe/idl.tab.cpp" break; - case 309: -#line 3365 "fe/idl.ypp" + case 317: /* switch_type_spec: integer_type */ +#line 3407 "fe/idl.ypp" { (yyval.dcval) = idl_global->scopes ().bottom ()->lookup_primitive_type ( (yyvsp[0].etval) ); } -#line 6291 "fe/idl.tab.cpp" +#line 6294 "fe/idl.tab.cpp" break; - case 310: -#line 3372 "fe/idl.ypp" + case 318: /* switch_type_spec: char_type */ +#line 3414 "fe/idl.ypp" { /* wchars are not allowed. */ if ((yyvsp[0].etval) == AST_Expression::EV_wchar) @@ -6304,11 +6307,11 @@ yyparse (void) (yyvsp[0].etval) ); } -#line 6308 "fe/idl.tab.cpp" +#line 6311 "fe/idl.tab.cpp" break; - case 311: -#line 3385 "fe/idl.ypp" + case 319: /* switch_type_spec: octet_type */ +#line 3427 "fe/idl.ypp" { /* octets are not allowed. */ idl_global->err ()->error0 (UTL_Error::EIDL_DISC_TYPE); @@ -6317,22 +6320,22 @@ yyparse (void) (yyvsp[0].etval) ); } -#line 6321 "fe/idl.tab.cpp" +#line 6324 "fe/idl.tab.cpp" break; - case 312: -#line 3394 "fe/idl.ypp" + case 320: /* switch_type_spec: boolean_type */ +#line 3436 "fe/idl.ypp" { (yyval.dcval) = idl_global->scopes ().bottom ()->lookup_primitive_type ( (yyvsp[0].etval) ); } -#line 6332 "fe/idl.tab.cpp" +#line 6335 "fe/idl.tab.cpp" break; - case 314: -#line 3402 "fe/idl.ypp" + case 322: /* switch_type_spec: scoped_name */ +#line 3444 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Decl *d = 0; @@ -6439,27 +6442,27 @@ yyparse (void) delete (yyvsp[0].idlist); (yyvsp[0].idlist) = 0; } -#line 6443 "fe/idl.tab.cpp" +#line 6446 "fe/idl.tab.cpp" break; - case 318: -#line 3519 "fe/idl.ypp" + case 326: /* $@79: %empty */ +#line 3561 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_UnionLabelSeen); } -#line 6451 "fe/idl.tab.cpp" +#line 6454 "fe/idl.tab.cpp" break; - case 319: -#line 3523 "fe/idl.ypp" + case 327: /* $@80: %empty */ +#line 3565 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_UnionElemSeen); } -#line 6459 "fe/idl.tab.cpp" +#line 6462 "fe/idl.tab.cpp" break; - case 320: -#line 3527 "fe/idl.ypp" + case 328: /* case_branch: at_least_one_case_label $@79 annotations_maybe element_spec $@80 ';' */ +#line 3569 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_UnionBranch *b = 0; @@ -6491,39 +6494,39 @@ yyparse (void) delete annotations; } -#line 6495 "fe/idl.tab.cpp" +#line 6498 "fe/idl.tab.cpp" break; - case 321: -#line 3559 "fe/idl.ypp" + case 329: /* $@81: %empty */ +#line 3601 "fe/idl.ypp" { idl_global->err ()->syntax_error (idl_global->parse_state ()); } -#line 6503 "fe/idl.tab.cpp" +#line 6506 "fe/idl.tab.cpp" break; - case 322: -#line 3563 "fe/idl.ypp" + case 330: /* case_branch: error $@81 ';' */ +#line 3605 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); yyerrok; } -#line 6512 "fe/idl.tab.cpp" +#line 6515 "fe/idl.tab.cpp" break; - case 323: -#line 3571 "fe/idl.ypp" + case 331: /* at_least_one_case_label: case_label case_labels */ +#line 3613 "fe/idl.ypp" { ACE_NEW_RETURN ((yyval.llval), UTL_LabelList ((yyvsp[-1].ulval), (yyvsp[0].llval)), 1); } -#line 6523 "fe/idl.tab.cpp" +#line 6526 "fe/idl.tab.cpp" break; - case 324: -#line 3581 "fe/idl.ypp" + case 332: /* case_labels: case_labels case_label */ +#line 3623 "fe/idl.ypp" { UTL_LabelList *ll = 0; ACE_NEW_RETURN (ll, @@ -6541,27 +6544,27 @@ yyparse (void) (yyval.llval) = (yyvsp[-1].llval); } } -#line 6545 "fe/idl.tab.cpp" +#line 6548 "fe/idl.tab.cpp" break; - case 325: -#line 3599 "fe/idl.ypp" + case 333: /* case_labels: %empty */ +#line 3641 "fe/idl.ypp" { (yyval.llval) = 0; } -#line 6553 "fe/idl.tab.cpp" +#line 6556 "fe/idl.tab.cpp" break; - case 326: -#line 3606 "fe/idl.ypp" + case 334: /* $@82: %empty */ +#line 3648 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_DefaultSeen); } -#line 6561 "fe/idl.tab.cpp" +#line 6564 "fe/idl.tab.cpp" break; - case 327: -#line 3610 "fe/idl.ypp" + case 335: /* case_label: IDL_DEFAULT $@82 ':' */ +#line 3652 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_LabelColonSeen); @@ -6570,27 +6573,27 @@ yyparse (void) 0 ); } -#line 6574 "fe/idl.tab.cpp" +#line 6577 "fe/idl.tab.cpp" break; - case 328: -#line 3619 "fe/idl.ypp" + case 336: /* $@83: %empty */ +#line 3661 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_CaseSeen); } -#line 6582 "fe/idl.tab.cpp" +#line 6585 "fe/idl.tab.cpp" break; - case 329: -#line 3623 "fe/idl.ypp" + case 337: /* $@84: %empty */ +#line 3665 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_LabelExprSeen); } -#line 6590 "fe/idl.tab.cpp" +#line 6593 "fe/idl.tab.cpp" break; - case 330: -#line 3627 "fe/idl.ypp" + case 338: /* case_label: IDL_CASE $@83 const_expr $@84 ':' */ +#line 3669 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_LabelColonSeen); @@ -6599,19 +6602,19 @@ yyparse (void) (yyvsp[-2].exval) ); } -#line 6603 "fe/idl.tab.cpp" +#line 6606 "fe/idl.tab.cpp" break; - case 331: -#line 3639 "fe/idl.ypp" + case 339: /* $@85: %empty */ +#line 3681 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_UnionElemTypeSeen); } -#line 6611 "fe/idl.tab.cpp" +#line 6614 "fe/idl.tab.cpp" break; - case 332: -#line 3643 "fe/idl.ypp" + case 340: /* element_spec: type_spec $@85 declarator */ +#line 3685 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_UnionElemDeclSeen); @@ -6654,11 +6657,11 @@ yyparse (void) (yyvsp[0].deval) = 0; } } -#line 6658 "fe/idl.tab.cpp" +#line 6661 "fe/idl.tab.cpp" break; - case 333: -#line 3689 "fe/idl.ypp" + case 341: /* struct_forward_type: struct_decl */ +#line 3731 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -6680,11 +6683,11 @@ yyparse (void) (yyval.dcval) = d; } -#line 6684 "fe/idl.tab.cpp" +#line 6687 "fe/idl.tab.cpp" break; - case 334: -#line 3714 "fe/idl.ypp" + case 342: /* union_forward_type: union_decl */ +#line 3756 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -6704,19 +6707,19 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 6708 "fe/idl.tab.cpp" +#line 6711 "fe/idl.tab.cpp" break; - case 335: -#line 3737 "fe/idl.ypp" + case 343: /* $@86: %empty */ +#line 3779 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EnumSeen); } -#line 6716 "fe/idl.tab.cpp" +#line 6719 "fe/idl.tab.cpp" break; - case 336: -#line 3741 "fe/idl.ypp" + case 344: /* $@87: %empty */ +#line 3783 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), 0); @@ -6747,27 +6750,27 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 6751 "fe/idl.tab.cpp" +#line 6754 "fe/idl.tab.cpp" break; - case 337: -#line 3772 "fe/idl.ypp" + case 345: /* $@88: %empty */ +#line 3814 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EnumSqSeen); } -#line 6759 "fe/idl.tab.cpp" +#line 6762 "fe/idl.tab.cpp" break; - case 338: -#line 3776 "fe/idl.ypp" + case 346: /* $@89: %empty */ +#line 3818 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EnumBodySeen); } -#line 6767 "fe/idl.tab.cpp" +#line 6770 "fe/idl.tab.cpp" break; - case 339: -#line 3780 "fe/idl.ypp" + case 347: /* enum_type: IDL_ENUM $@86 defining_id $@87 '{' $@88 at_least_one_enumerator $@89 '}' */ +#line 3822 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EnumQsSeen); @@ -6786,19 +6789,19 @@ yyparse (void) idl_global->scopes ().pop (); } } -#line 6790 "fe/idl.tab.cpp" +#line 6793 "fe/idl.tab.cpp" break; - case 341: -#line 3805 "fe/idl.ypp" + case 349: /* $@90: %empty */ +#line 3847 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EnumCommaSeen); } -#line 6798 "fe/idl.tab.cpp" +#line 6801 "fe/idl.tab.cpp" break; - case 344: -#line 3814 "fe/idl.ypp" + case 352: /* enumerator: annotations_maybe IDENTIFIER */ +#line 3856 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val); @@ -6833,27 +6836,27 @@ yyparse (void) delete annotations; } -#line 6837 "fe/idl.tab.cpp" +#line 6840 "fe/idl.tab.cpp" break; - case 345: -#line 3853 "fe/idl.ypp" + case 353: /* $@91: %empty */ +#line 3895 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SequenceCommaSeen); } -#line 6845 "fe/idl.tab.cpp" +#line 6848 "fe/idl.tab.cpp" break; - case 346: -#line 3857 "fe/idl.ypp" + case 354: /* $@92: %empty */ +#line 3899 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SequenceExprSeen); } -#line 6853 "fe/idl.tab.cpp" +#line 6856 "fe/idl.tab.cpp" break; - case 347: -#line 3861 "fe/idl.ypp" + case 355: /* sequence_type_spec: seq_head ',' $@91 positive_int_expr $@92 '>' */ +#line 3903 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SequenceQsSeen); @@ -6934,11 +6937,11 @@ yyparse (void) ev = 0; (yyval.dcval) = seq; } -#line 6938 "fe/idl.tab.cpp" +#line 6941 "fe/idl.tab.cpp" break; - case 348: -#line 3943 "fe/idl.ypp" + case 356: /* sequence_type_spec: seq_head '>' */ +#line 3985 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SequenceQsSeen); @@ -7000,11 +7003,11 @@ yyparse (void) delete type_annotations; (yyval.dcval) = seq; } -#line 7004 "fe/idl.tab.cpp" +#line 7007 "fe/idl.tab.cpp" break; - case 349: -#line 4008 "fe/idl.ypp" + case 357: /* $@93: %empty */ +#line 4050 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SequenceSeen); @@ -7013,19 +7016,19 @@ yyparse (void) */ idl_global->scopes ().push (0); } -#line 7017 "fe/idl.tab.cpp" +#line 7020 "fe/idl.tab.cpp" break; - case 350: -#line 4017 "fe/idl.ypp" + case 358: /* $@94: %empty */ +#line 4059 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SequenceSqSeen); } -#line 7025 "fe/idl.tab.cpp" +#line 7028 "fe/idl.tab.cpp" break; - case 351: -#line 4021 "fe/idl.ypp" + case 359: /* seq_head: IDL_SEQUENCE $@93 '<' $@94 annotations_maybe simple_type_spec */ +#line 4063 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SequenceTypeSeen); Decl_Annotations_Pair *seq_head = new Decl_Annotations_Pair; @@ -7033,36 +7036,36 @@ yyparse (void) seq_head->annotations = (yyvsp[-1].annotations_val); (yyval.decl_annotations_pair_val) = seq_head; } -#line 7037 "fe/idl.tab.cpp" +#line 7040 "fe/idl.tab.cpp" break; - case 352: -#line 4032 "fe/idl.ypp" + case 360: /* fixed_type_spec: IDL_FIXED '<' positive_int_expr ',' const_expr '>' */ +#line 4074 "fe/idl.ypp" { (yyvsp[-1].exval)->evaluate (AST_Expression::EK_positive_int); (yyval.dcval) = idl_global->gen ()->create_fixed ((yyvsp[-3].exval), (yyvsp[-1].exval)); } -#line 7046 "fe/idl.tab.cpp" +#line 7049 "fe/idl.tab.cpp" break; - case 353: -#line 4041 "fe/idl.ypp" + case 361: /* $@95: %empty */ +#line 4083 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StringSqSeen); } -#line 7054 "fe/idl.tab.cpp" +#line 7057 "fe/idl.tab.cpp" break; - case 354: -#line 4045 "fe/idl.ypp" + case 362: /* $@96: %empty */ +#line 4087 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StringExprSeen); } -#line 7062 "fe/idl.tab.cpp" +#line 7065 "fe/idl.tab.cpp" break; - case 355: -#line 4049 "fe/idl.ypp" + case 363: /* string_type_spec: string_head '<' $@95 positive_int_expr $@96 '>' */ +#line 4091 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StringQsSeen); @@ -7101,11 +7104,11 @@ yyparse (void) delete ev; ev = 0; } -#line 7105 "fe/idl.tab.cpp" +#line 7108 "fe/idl.tab.cpp" break; - case 356: -#line 4088 "fe/idl.ypp" + case 364: /* string_type_spec: string_head */ +#line 4130 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StringCompleted); @@ -7128,35 +7131,35 @@ yyparse (void) (yyval.dcval) = tao_string_decl; } -#line 7132 "fe/idl.tab.cpp" +#line 7135 "fe/idl.tab.cpp" break; - case 357: -#line 4114 "fe/idl.ypp" + case 365: /* string_head: IDL_STRING */ +#line 4156 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StringSeen); } -#line 7140 "fe/idl.tab.cpp" +#line 7143 "fe/idl.tab.cpp" break; - case 358: -#line 4122 "fe/idl.ypp" + case 366: /* $@97: %empty */ +#line 4164 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StringSqSeen); } -#line 7148 "fe/idl.tab.cpp" +#line 7151 "fe/idl.tab.cpp" break; - case 359: -#line 4126 "fe/idl.ypp" + case 367: /* $@98: %empty */ +#line 4168 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StringExprSeen); } -#line 7156 "fe/idl.tab.cpp" +#line 7159 "fe/idl.tab.cpp" break; - case 360: -#line 4130 "fe/idl.ypp" + case 368: /* wstring_type_spec: wstring_head '<' $@97 positive_int_expr $@98 '>' */ +#line 4172 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StringQsSeen); @@ -7195,11 +7198,11 @@ yyparse (void) delete ev; ev = 0; } -#line 7199 "fe/idl.tab.cpp" +#line 7202 "fe/idl.tab.cpp" break; - case 361: -#line 4169 "fe/idl.ypp" + case 369: /* wstring_type_spec: wstring_head */ +#line 4211 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StringCompleted); @@ -7222,27 +7225,27 @@ yyparse (void) (yyval.dcval) = string; } -#line 7226 "fe/idl.tab.cpp" +#line 7229 "fe/idl.tab.cpp" break; - case 362: -#line 4195 "fe/idl.ypp" + case 370: /* wstring_head: IDL_WSTRING */ +#line 4237 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_StringSeen); } -#line 7234 "fe/idl.tab.cpp" +#line 7237 "fe/idl.tab.cpp" break; - case 363: -#line 4202 "fe/idl.ypp" + case 371: /* $@99: %empty */ +#line 4244 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ArrayIDSeen); } -#line 7242 "fe/idl.tab.cpp" +#line 7245 "fe/idl.tab.cpp" break; - case 364: -#line 4206 "fe/idl.ypp" + case 372: /* array_declarator: defining_id $@99 annotations_maybe at_least_one_array_dim */ +#line 4248 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ArrayCompleted); @@ -7278,22 +7281,22 @@ yyparse (void) (yyval.dcval) = array; } -#line 7282 "fe/idl.tab.cpp" +#line 7285 "fe/idl.tab.cpp" break; - case 365: -#line 4245 "fe/idl.ypp" + case 373: /* at_least_one_array_dim: array_dim array_dims */ +#line 4287 "fe/idl.ypp" { ACE_NEW_RETURN ((yyval.elval), UTL_ExprList ((yyvsp[-1].exval), (yyvsp[0].elval)), 1); } -#line 7293 "fe/idl.tab.cpp" +#line 7296 "fe/idl.tab.cpp" break; - case 366: -#line 4255 "fe/idl.ypp" + case 374: /* array_dims: array_dims array_dim */ +#line 4297 "fe/idl.ypp" { UTL_ExprList *el = 0; ACE_NEW_RETURN (el, @@ -7311,35 +7314,35 @@ yyparse (void) (yyval.elval) = (yyvsp[-1].elval); } } -#line 7315 "fe/idl.tab.cpp" +#line 7318 "fe/idl.tab.cpp" break; - case 367: -#line 4273 "fe/idl.ypp" + case 375: /* array_dims: %empty */ +#line 4315 "fe/idl.ypp" { (yyval.elval) = 0; } -#line 7323 "fe/idl.tab.cpp" +#line 7326 "fe/idl.tab.cpp" break; - case 368: -#line 4280 "fe/idl.ypp" + case 376: /* $@100: %empty */ +#line 4322 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_DimSqSeen); } -#line 7331 "fe/idl.tab.cpp" +#line 7334 "fe/idl.tab.cpp" break; - case 369: -#line 4284 "fe/idl.ypp" + case 377: /* $@101: %empty */ +#line 4326 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_DimExprSeen); } -#line 7339 "fe/idl.tab.cpp" +#line 7342 "fe/idl.tab.cpp" break; - case 370: -#line 4288 "fe/idl.ypp" + case 378: /* array_dim: '[' $@100 positive_int_expr $@101 ']' */ +#line 4330 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_DimQsSeen); @@ -7393,43 +7396,43 @@ yyparse (void) delete ev; ev = 0; } -#line 7397 "fe/idl.tab.cpp" +#line 7400 "fe/idl.tab.cpp" break; - case 373: -#line 4350 "fe/idl.ypp" + case 381: /* $@102: %empty */ +#line 4392 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_AttrROSeen); } -#line 7405 "fe/idl.tab.cpp" +#line 7408 "fe/idl.tab.cpp" break; - case 374: -#line 4354 "fe/idl.ypp" + case 382: /* $@103: %empty */ +#line 4396 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_AttrSeen); } -#line 7413 "fe/idl.tab.cpp" +#line 7416 "fe/idl.tab.cpp" break; - case 375: -#line 4358 "fe/idl.ypp" + case 383: /* $@104: %empty */ +#line 4400 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_AttrTypeSeen); } -#line 7421 "fe/idl.tab.cpp" +#line 7424 "fe/idl.tab.cpp" break; - case 376: -#line 4362 "fe/idl.ypp" + case 384: /* $@105: %empty */ +#line 4404 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclsSeen); } -#line 7429 "fe/idl.tab.cpp" +#line 7432 "fe/idl.tab.cpp" break; - case 377: -#line 4366 "fe/idl.ypp" + case 385: /* attribute_readonly: IDL_READONLY $@102 IDL_ATTRIBUTE $@103 param_type_spec $@104 at_least_one_simple_declarator $@105 opt_raises */ +#line 4408 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Attribute *a = 0; @@ -7481,43 +7484,43 @@ yyparse (void) (yyval.dcval) = a; } -#line 7485 "fe/idl.tab.cpp" +#line 7488 "fe/idl.tab.cpp" break; - case 378: -#line 4421 "fe/idl.ypp" + case 386: /* $@106: %empty */ +#line 4463 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_AttrSeen); } -#line 7493 "fe/idl.tab.cpp" +#line 7496 "fe/idl.tab.cpp" break; - case 379: -#line 4425 "fe/idl.ypp" + case 387: /* $@107: %empty */ +#line 4467 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_AttrTypeSeen); } -#line 7501 "fe/idl.tab.cpp" +#line 7504 "fe/idl.tab.cpp" break; - case 380: -#line 4429 "fe/idl.ypp" + case 388: /* $@108: %empty */ +#line 4471 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclsSeen); } -#line 7509 "fe/idl.tab.cpp" +#line 7512 "fe/idl.tab.cpp" break; - case 381: -#line 4433 "fe/idl.ypp" + case 389: /* $@109: %empty */ +#line 4475 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpGetRaiseCompleted); } -#line 7517 "fe/idl.tab.cpp" +#line 7520 "fe/idl.tab.cpp" break; - case 382: -#line 4437 "fe/idl.ypp" + case 390: /* attribute_readwrite: IDL_ATTRIBUTE $@106 param_type_spec $@107 at_least_one_simple_declarator $@108 opt_getraises $@109 opt_setraises */ +#line 4479 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Attribute *a = 0; @@ -7578,19 +7581,19 @@ yyparse (void) (yyval.dcval) = a; } -#line 7582 "fe/idl.tab.cpp" +#line 7585 "fe/idl.tab.cpp" break; - case 383: -#line 4501 "fe/idl.ypp" + case 391: /* $@110: %empty */ +#line 4543 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ExceptSeen); } -#line 7590 "fe/idl.tab.cpp" +#line 7593 "fe/idl.tab.cpp" break; - case 384: -#line 4505 "fe/idl.ypp" + case 392: /* @111: %empty */ +#line 4547 "fe/idl.ypp" { Identifier *&id = (yyvsp[0].idval); UTL_Scope *scope = idl_global->scopes ().top_non_null (); @@ -7622,27 +7625,27 @@ yyparse (void) (yyval.dcval) = exception; } -#line 7626 "fe/idl.tab.cpp" +#line 7629 "fe/idl.tab.cpp" break; - case 385: -#line 4537 "fe/idl.ypp" + case 393: /* $@112: %empty */ +#line 4579 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ExceptSqSeen); } -#line 7634 "fe/idl.tab.cpp" +#line 7637 "fe/idl.tab.cpp" break; - case 386: -#line 4541 "fe/idl.ypp" + case 394: /* $@113: %empty */ +#line 4583 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ExceptBodySeen); } -#line 7642 "fe/idl.tab.cpp" +#line 7645 "fe/idl.tab.cpp" break; - case 387: -#line 4545 "fe/idl.ypp" + case 395: /* exception: IDL_EXCEPTION $@110 defining_id @111 '{' $@112 members $@113 '}' */ +#line 4587 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ExceptQsSeen); /* @@ -7652,19 +7655,19 @@ yyparse (void) (yyval.dcval) = (yyvsp[-5].dcval); } -#line 7656 "fe/idl.tab.cpp" +#line 7659 "fe/idl.tab.cpp" break; - case 388: -#line 4558 "fe/idl.ypp" + case 396: /* $@114: %empty */ +#line 4600 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpTypeSeen); } -#line 7664 "fe/idl.tab.cpp" +#line 7667 "fe/idl.tab.cpp" break; - case 389: -#line 4562 "fe/idl.ypp" + case 397: /* $@115: %empty */ +#line 4604 "fe/idl.ypp" { AST_Operation *op = 0; UTL_Scope *scope = idl_global->scopes ().top_non_null (); @@ -7725,27 +7728,27 @@ yyparse (void) */ idl_global->scopes ().push (op); } -#line 7729 "fe/idl.tab.cpp" +#line 7732 "fe/idl.tab.cpp" break; - case 390: -#line 4623 "fe/idl.ypp" + case 398: /* $@116: %empty */ +#line 4665 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpParsCompleted); } -#line 7737 "fe/idl.tab.cpp" +#line 7740 "fe/idl.tab.cpp" break; - case 391: -#line 4627 "fe/idl.ypp" + case 399: /* $@117: %empty */ +#line 4669 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseCompleted); } -#line 7745 "fe/idl.tab.cpp" +#line 7748 "fe/idl.tab.cpp" break; - case 392: -#line 4631 "fe/idl.ypp" + case 400: /* operation: opt_op_attribute op_type_spec $@114 IDENTIFIER $@115 parameter_list $@116 opt_raises $@117 opt_context */ +#line 4673 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Operation *o = 0; @@ -7776,57 +7779,57 @@ yyparse (void) (yyval.dcval) = o; } -#line 7780 "fe/idl.tab.cpp" +#line 7783 "fe/idl.tab.cpp" break; - case 393: -#line 4665 "fe/idl.ypp" + case 401: /* opt_op_attribute: IDL_ONEWAY */ +#line 4707 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpAttrSeen); (yyval.ofval) = AST_Operation::OP_oneway; } -#line 7789 "fe/idl.tab.cpp" +#line 7792 "fe/idl.tab.cpp" break; - case 394: -#line 4670 "fe/idl.ypp" + case 402: /* opt_op_attribute: IDL_IDEMPOTENT */ +#line 4712 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpAttrSeen); (yyval.ofval) = AST_Operation::OP_idempotent; } -#line 7798 "fe/idl.tab.cpp" +#line 7801 "fe/idl.tab.cpp" break; - case 395: -#line 4675 "fe/idl.ypp" + case 403: /* opt_op_attribute: %empty */ +#line 4717 "fe/idl.ypp" { (yyval.ofval) = AST_Operation::OP_noflags; } -#line 7806 "fe/idl.tab.cpp" +#line 7809 "fe/idl.tab.cpp" break; - case 397: -#line 4683 "fe/idl.ypp" + case 405: /* op_type_spec: IDL_VOID */ +#line 4725 "fe/idl.ypp" { (yyval.dcval) = idl_global->scopes ().bottom ()->lookup_primitive_type ( AST_Expression::EV_void ); } -#line 7817 "fe/idl.tab.cpp" +#line 7820 "fe/idl.tab.cpp" break; - case 398: -#line 4693 "fe/idl.ypp" + case 406: /* $@118: %empty */ +#line 4735 "fe/idl.ypp" { //@@ PS_FactorySeen? idl_global->set_parse_state (IDL_GlobalData::PS_OpTypeSeen); } -#line 7826 "fe/idl.tab.cpp" +#line 7829 "fe/idl.tab.cpp" break; - case 399: -#line 4698 "fe/idl.ypp" + case 407: /* @119: %empty */ +#line 4740 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); @@ -7869,19 +7872,19 @@ yyparse (void) (yyval.dcval) = factory; } -#line 7873 "fe/idl.tab.cpp" +#line 7876 "fe/idl.tab.cpp" break; - case 400: -#line 4741 "fe/idl.ypp" + case 408: /* $@120: %empty */ +#line 4783 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpParsCompleted); } -#line 7881 "fe/idl.tab.cpp" +#line 7884 "fe/idl.tab.cpp" break; - case 401: -#line 4745 "fe/idl.ypp" + case 409: /* init_decl: IDL_FACTORY $@118 IDENTIFIER @119 init_parameter_list $@120 opt_raises */ +#line 4787 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseCompleted); @@ -7896,67 +7899,67 @@ yyparse (void) (yyval.dcval) = (yyvsp[-3].dcval); } -#line 7900 "fe/idl.tab.cpp" +#line 7903 "fe/idl.tab.cpp" break; - case 402: -#line 4763 "fe/idl.ypp" + case 410: /* $@121: %empty */ +#line 4805 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen); } -#line 7908 "fe/idl.tab.cpp" +#line 7911 "fe/idl.tab.cpp" break; - case 403: -#line 4767 "fe/idl.ypp" + case 411: /* init_parameter_list: '(' $@121 ')' */ +#line 4809 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen); } -#line 7916 "fe/idl.tab.cpp" +#line 7919 "fe/idl.tab.cpp" break; - case 404: -#line 4771 "fe/idl.ypp" + case 412: /* $@122: %empty */ +#line 4813 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen); } -#line 7924 "fe/idl.tab.cpp" +#line 7927 "fe/idl.tab.cpp" break; - case 405: -#line 4776 "fe/idl.ypp" + case 413: /* init_parameter_list: '(' $@122 at_least_one_in_parameter ')' */ +#line 4818 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen); } -#line 7932 "fe/idl.tab.cpp" +#line 7935 "fe/idl.tab.cpp" break; - case 407: -#line 4786 "fe/idl.ypp" + case 415: /* $@123: %empty */ +#line 4828 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpParCommaSeen); } -#line 7940 "fe/idl.tab.cpp" +#line 7943 "fe/idl.tab.cpp" break; - case 410: -#line 4795 "fe/idl.ypp" + case 418: /* $@124: %empty */ +#line 4837 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpParDirSeen); } -#line 7948 "fe/idl.tab.cpp" +#line 7951 "fe/idl.tab.cpp" break; - case 411: -#line 4799 "fe/idl.ypp" + case 419: /* $@125: %empty */ +#line 4841 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpParTypeSeen); } -#line 7956 "fe/idl.tab.cpp" +#line 7959 "fe/idl.tab.cpp" break; - case 412: -#line 4803 "fe/idl.ypp" + case 420: /* in_parameter: IDL_IN $@124 param_type_spec $@125 declarator */ +#line 4845 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Argument *a = 0; @@ -7988,67 +7991,67 @@ yyparse (void) delete (yyvsp[0].deval); (yyvsp[0].deval) = 0; } -#line 7992 "fe/idl.tab.cpp" +#line 7995 "fe/idl.tab.cpp" break; - case 413: -#line 4838 "fe/idl.ypp" + case 421: /* $@126: %empty */ +#line 4880 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen); } -#line 8000 "fe/idl.tab.cpp" +#line 8003 "fe/idl.tab.cpp" break; - case 414: -#line 4842 "fe/idl.ypp" + case 422: /* parameter_list: '(' $@126 ')' */ +#line 4884 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen); } -#line 8008 "fe/idl.tab.cpp" +#line 8011 "fe/idl.tab.cpp" break; - case 415: -#line 4846 "fe/idl.ypp" + case 423: /* $@127: %empty */ +#line 4888 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen); } -#line 8016 "fe/idl.tab.cpp" +#line 8019 "fe/idl.tab.cpp" break; - case 416: -#line 4851 "fe/idl.ypp" + case 424: /* parameter_list: '(' $@127 at_least_one_parameter ')' */ +#line 4893 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen); } -#line 8024 "fe/idl.tab.cpp" +#line 8027 "fe/idl.tab.cpp" break; - case 418: -#line 4861 "fe/idl.ypp" + case 426: /* $@128: %empty */ +#line 4903 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpParCommaSeen); } -#line 8032 "fe/idl.tab.cpp" +#line 8035 "fe/idl.tab.cpp" break; - case 421: -#line 4870 "fe/idl.ypp" + case 429: /* $@129: %empty */ +#line 4912 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpParDirSeen); } -#line 8040 "fe/idl.tab.cpp" +#line 8043 "fe/idl.tab.cpp" break; - case 422: -#line 4874 "fe/idl.ypp" + case 430: /* $@130: %empty */ +#line 4916 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpParTypeSeen); } -#line 8048 "fe/idl.tab.cpp" +#line 8051 "fe/idl.tab.cpp" break; - case 423: -#line 4878 "fe/idl.ypp" + case 431: /* parameter: direction $@129 param_type_spec $@130 declarator */ +#line 4920 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Argument *a = 0; @@ -8087,22 +8090,22 @@ yyparse (void) delete (yyvsp[0].deval); (yyvsp[0].deval) = 0; } -#line 8091 "fe/idl.tab.cpp" +#line 8094 "fe/idl.tab.cpp" break; - case 424: -#line 4920 "fe/idl.ypp" + case 432: /* param_type_spec: base_type_spec */ +#line 4962 "fe/idl.ypp" { (yyval.dcval) = idl_global->scopes ().bottom ()->lookup_primitive_type ( (yyvsp[0].etval) ); } -#line 8102 "fe/idl.tab.cpp" +#line 8105 "fe/idl.tab.cpp" break; - case 427: -#line 4929 "fe/idl.ypp" + case 435: /* param_type_spec: scoped_name */ +#line 4971 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Decl *d = 0; @@ -8206,186 +8209,186 @@ yyparse (void) (yyval.dcval) = d; } -#line 8210 "fe/idl.tab.cpp" +#line 8213 "fe/idl.tab.cpp" break; - case 428: -#line 5036 "fe/idl.ypp" + case 436: /* direction: IDL_IN */ +#line 5078 "fe/idl.ypp" { (yyval.dival) = AST_Argument::dir_IN; } -#line 8218 "fe/idl.tab.cpp" +#line 8221 "fe/idl.tab.cpp" break; - case 429: -#line 5040 "fe/idl.ypp" + case 437: /* direction: IDL_OUT */ +#line 5082 "fe/idl.ypp" { (yyval.dival) = AST_Argument::dir_OUT; } -#line 8226 "fe/idl.tab.cpp" +#line 8229 "fe/idl.tab.cpp" break; - case 430: -#line 5044 "fe/idl.ypp" + case 438: /* direction: IDL_INOUT */ +#line 5086 "fe/idl.ypp" { (yyval.dival) = AST_Argument::dir_INOUT; } -#line 8234 "fe/idl.tab.cpp" +#line 8237 "fe/idl.tab.cpp" break; - case 431: -#line 5051 "fe/idl.ypp" + case 439: /* $@131: %empty */ +#line 5093 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseSeen); } -#line 8242 "fe/idl.tab.cpp" +#line 8245 "fe/idl.tab.cpp" break; - case 432: -#line 5055 "fe/idl.ypp" + case 440: /* $@132: %empty */ +#line 5097 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseSqSeen); } -#line 8250 "fe/idl.tab.cpp" +#line 8253 "fe/idl.tab.cpp" break; - case 433: -#line 5060 "fe/idl.ypp" + case 441: /* opt_raises: IDL_RAISES $@131 '(' $@132 at_least_one_scoped_name ')' */ +#line 5102 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseQsSeen); (yyval.nlval) = (yyvsp[-1].nlval); } -#line 8259 "fe/idl.tab.cpp" +#line 8262 "fe/idl.tab.cpp" break; - case 434: -#line 5065 "fe/idl.ypp" + case 442: /* opt_raises: %empty */ +#line 5107 "fe/idl.ypp" { (yyval.nlval) = 0; } -#line 8267 "fe/idl.tab.cpp" +#line 8270 "fe/idl.tab.cpp" break; - case 435: -#line 5072 "fe/idl.ypp" + case 443: /* $@133: %empty */ +#line 5114 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpGetRaiseSeen); } -#line 8275 "fe/idl.tab.cpp" +#line 8278 "fe/idl.tab.cpp" break; - case 436: -#line 5076 "fe/idl.ypp" + case 444: /* $@134: %empty */ +#line 5118 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpGetRaiseSqSeen); } -#line 8283 "fe/idl.tab.cpp" +#line 8286 "fe/idl.tab.cpp" break; - case 437: -#line 5081 "fe/idl.ypp" + case 445: /* opt_getraises: IDL_GETRAISES $@133 '(' $@134 at_least_one_scoped_name ')' */ +#line 5123 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpGetRaiseQsSeen); (yyval.nlval) = (yyvsp[-1].nlval); } -#line 8292 "fe/idl.tab.cpp" +#line 8295 "fe/idl.tab.cpp" break; - case 438: -#line 5086 "fe/idl.ypp" + case 446: /* opt_getraises: %empty */ +#line 5128 "fe/idl.ypp" { (yyval.nlval) = 0; } -#line 8300 "fe/idl.tab.cpp" +#line 8303 "fe/idl.tab.cpp" break; - case 439: -#line 5093 "fe/idl.ypp" + case 447: /* $@135: %empty */ +#line 5135 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpSetRaiseSeen); } -#line 8308 "fe/idl.tab.cpp" +#line 8311 "fe/idl.tab.cpp" break; - case 440: -#line 5097 "fe/idl.ypp" + case 448: /* $@136: %empty */ +#line 5139 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpSetRaiseSqSeen); } -#line 8316 "fe/idl.tab.cpp" +#line 8319 "fe/idl.tab.cpp" break; - case 441: -#line 5102 "fe/idl.ypp" + case 449: /* opt_setraises: IDL_SETRAISES $@135 '(' $@136 at_least_one_scoped_name ')' */ +#line 5144 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpSetRaiseQsSeen); (yyval.nlval) = (yyvsp[-1].nlval); } -#line 8325 "fe/idl.tab.cpp" +#line 8328 "fe/idl.tab.cpp" break; - case 442: -#line 5107 "fe/idl.ypp" + case 450: /* opt_setraises: %empty */ +#line 5149 "fe/idl.ypp" { (yyval.nlval) = 0; } -#line 8333 "fe/idl.tab.cpp" +#line 8336 "fe/idl.tab.cpp" break; - case 443: -#line 5114 "fe/idl.ypp" + case 451: /* $@137: %empty */ +#line 5156 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpContextSeen); } -#line 8341 "fe/idl.tab.cpp" +#line 8344 "fe/idl.tab.cpp" break; - case 444: -#line 5118 "fe/idl.ypp" + case 452: /* $@138: %empty */ +#line 5160 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpContextSqSeen); } -#line 8349 "fe/idl.tab.cpp" +#line 8352 "fe/idl.tab.cpp" break; - case 445: -#line 5123 "fe/idl.ypp" + case 453: /* opt_context: IDL_CONTEXT $@137 '(' $@138 at_least_one_string_literal ')' */ +#line 5165 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpContextQsSeen); (yyval.slval) = (yyvsp[-1].slval); } -#line 8358 "fe/idl.tab.cpp" +#line 8361 "fe/idl.tab.cpp" break; - case 446: -#line 5128 "fe/idl.ypp" + case 454: /* opt_context: %empty */ +#line 5170 "fe/idl.ypp" { (yyval.slval) = 0; } -#line 8366 "fe/idl.tab.cpp" +#line 8369 "fe/idl.tab.cpp" break; - case 447: -#line 5135 "fe/idl.ypp" + case 455: /* at_least_one_string_literal: IDL_STRING_LITERAL string_literals */ +#line 5177 "fe/idl.ypp" { ACE_NEW_RETURN ((yyval.slval), UTL_StrList ((yyvsp[-1].sval), (yyvsp[0].slval)), 1); } -#line 8377 "fe/idl.tab.cpp" +#line 8380 "fe/idl.tab.cpp" break; - case 448: -#line 5146 "fe/idl.ypp" + case 456: /* $@139: %empty */ +#line 5188 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpContextCommaSeen); } -#line 8385 "fe/idl.tab.cpp" +#line 8388 "fe/idl.tab.cpp" break; - case 449: -#line 5150 "fe/idl.ypp" + case 457: /* string_literals: string_literals ',' $@139 IDL_STRING_LITERAL */ +#line 5192 "fe/idl.ypp" { UTL_StrList *sl = 0; ACE_NEW_RETURN (sl, @@ -8403,19 +8406,19 @@ yyparse (void) (yyval.slval) = (yyvsp[-3].slval); } } -#line 8407 "fe/idl.tab.cpp" +#line 8410 "fe/idl.tab.cpp" break; - case 450: -#line 5168 "fe/idl.ypp" + case 458: /* string_literals: %empty */ +#line 5210 "fe/idl.ypp" { (yyval.slval) = 0; } -#line 8415 "fe/idl.tab.cpp" +#line 8418 "fe/idl.tab.cpp" break; - case 451: -#line 5175 "fe/idl.ypp" + case 459: /* typeid_dcl: IDL_TYPEID scoped_name IDL_STRING_LITERAL */ +#line 5217 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Decl *d = @@ -8442,11 +8445,11 @@ yyparse (void) (yyval.dcval) = 0; } -#line 8446 "fe/idl.tab.cpp" +#line 8449 "fe/idl.tab.cpp" break; - case 452: -#line 5205 "fe/idl.ypp" + case 460: /* typeprefix_dcl: IDL_TYPEPREFIX scoped_name IDL_STRING_LITERAL */ +#line 5247 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Decl *d = ScopeAsDecl (s); @@ -8482,11 +8485,11 @@ yyparse (void) (yyval.dcval) = 0; } -#line 8486 "fe/idl.tab.cpp" +#line 8489 "fe/idl.tab.cpp" break; - case 455: -#line 5250 "fe/idl.ypp" + case 463: /* component_forward_decl: IDL_COMPONENT defining_id */ +#line 5292 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -8512,11 +8515,11 @@ yyparse (void) (yyval.dcval) = 0; } -#line 8516 "fe/idl.tab.cpp" +#line 8519 "fe/idl.tab.cpp" break; - case 456: -#line 5279 "fe/idl.ypp" + case 464: /* @140: %empty */ +#line 5321 "fe/idl.ypp" { FE_ComponentHeader *&component_header = (yyvsp[0].chval); UTL_Scope *scope = idl_global->scopes ().top_non_null (); @@ -8558,27 +8561,27 @@ yyparse (void) (yyval.dcval) = component; } -#line 8562 "fe/idl.tab.cpp" +#line 8565 "fe/idl.tab.cpp" break; - case 457: -#line 5321 "fe/idl.ypp" + case 465: /* $@141: %empty */ +#line 5363 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ComponentSqSeen); } -#line 8570 "fe/idl.tab.cpp" +#line 8573 "fe/idl.tab.cpp" break; - case 458: -#line 5325 "fe/idl.ypp" + case 466: /* $@142: %empty */ +#line 5367 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ComponentBodySeen); } -#line 8578 "fe/idl.tab.cpp" +#line 8581 "fe/idl.tab.cpp" break; - case 459: -#line 5329 "fe/idl.ypp" + case 467: /* component_decl: component_header @140 '{' $@141 component_exports $@142 '}' */ +#line 5371 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ComponentQsSeen); @@ -8589,27 +8592,27 @@ yyparse (void) (yyval.dcval) = (yyvsp[-5].dcval); } -#line 8593 "fe/idl.tab.cpp" +#line 8596 "fe/idl.tab.cpp" break; - case 460: -#line 5344 "fe/idl.ypp" + case 468: /* $@143: %empty */ +#line 5386 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ComponentIDSeen); } -#line 8601 "fe/idl.tab.cpp" +#line 8604 "fe/idl.tab.cpp" break; - case 461: -#line 5348 "fe/idl.ypp" + case 469: /* $@144: %empty */ +#line 5390 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen); } -#line 8609 "fe/idl.tab.cpp" +#line 8612 "fe/idl.tab.cpp" break; - case 462: -#line 5352 "fe/idl.ypp" + case 470: /* component_header: IDL_COMPONENT defining_id $@143 component_inheritance_spec $@144 supports_spec */ +#line 5394 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SupportSpecSeen); @@ -8643,35 +8646,35 @@ yyparse (void) (yyvsp[-2].idlist) = 0; } } -#line 8647 "fe/idl.tab.cpp" +#line 8650 "fe/idl.tab.cpp" break; - case 463: -#line 5389 "fe/idl.ypp" + case 471: /* $@145: %empty */ +#line 5431 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InheritColonSeen); } -#line 8655 "fe/idl.tab.cpp" +#line 8658 "fe/idl.tab.cpp" break; - case 464: -#line 5393 "fe/idl.ypp" + case 472: /* component_inheritance_spec: ':' $@145 scoped_name */ +#line 5435 "fe/idl.ypp" { (yyval.idlist) = (yyvsp[0].idlist); } -#line 8663 "fe/idl.tab.cpp" +#line 8666 "fe/idl.tab.cpp" break; - case 465: -#line 5397 "fe/idl.ypp" + case 473: /* component_inheritance_spec: %empty */ +#line 5439 "fe/idl.ypp" { (yyval.idlist) = 0; } -#line 8671 "fe/idl.tab.cpp" +#line 8674 "fe/idl.tab.cpp" break; - case 466: -#line 5404 "fe/idl.ypp" + case 474: /* component_exports: component_exports at_least_one_annotation component_export */ +#line 5446 "fe/idl.ypp" { AST_Annotation_Appls *&annotations = (yyvsp[-1].annotations_val); AST_Decl *&node = (yyvsp[0].dcval); @@ -8686,130 +8689,130 @@ yyparse (void) } delete annotations; } -#line 8690 "fe/idl.tab.cpp" +#line 8693 "fe/idl.tab.cpp" break; - case 469: -#line 5424 "fe/idl.ypp" + case 477: /* $@146: %empty */ +#line 5466 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ProvidesDeclSeen); } -#line 8698 "fe/idl.tab.cpp" +#line 8701 "fe/idl.tab.cpp" break; - case 470: -#line 5428 "fe/idl.ypp" + case 478: /* component_export: provides_decl $@146 ';' */ +#line 5470 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = (yyvsp[-2].dcval); } -#line 8707 "fe/idl.tab.cpp" +#line 8710 "fe/idl.tab.cpp" break; - case 471: -#line 5433 "fe/idl.ypp" + case 479: /* $@147: %empty */ +#line 5475 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_UsesDeclSeen); } -#line 8715 "fe/idl.tab.cpp" +#line 8718 "fe/idl.tab.cpp" break; - case 472: -#line 5437 "fe/idl.ypp" + case 480: /* component_export: uses_decl $@147 ';' */ +#line 5479 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = (yyvsp[-2].dcval); } -#line 8724 "fe/idl.tab.cpp" +#line 8727 "fe/idl.tab.cpp" break; - case 473: -#line 5442 "fe/idl.ypp" + case 481: /* $@148: %empty */ +#line 5484 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EmitsDeclSeen); } -#line 8732 "fe/idl.tab.cpp" +#line 8735 "fe/idl.tab.cpp" break; - case 474: -#line 5446 "fe/idl.ypp" + case 482: /* component_export: emits_decl $@148 ';' */ +#line 5488 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = (yyvsp[-2].dcval); } -#line 8741 "fe/idl.tab.cpp" +#line 8744 "fe/idl.tab.cpp" break; - case 475: -#line 5451 "fe/idl.ypp" + case 483: /* $@149: %empty */ +#line 5493 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_PublishesDeclSeen); } -#line 8749 "fe/idl.tab.cpp" +#line 8752 "fe/idl.tab.cpp" break; - case 476: -#line 5455 "fe/idl.ypp" + case 484: /* component_export: publishes_decl $@149 ';' */ +#line 5497 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = (yyvsp[-2].dcval); } -#line 8758 "fe/idl.tab.cpp" +#line 8761 "fe/idl.tab.cpp" break; - case 477: -#line 5460 "fe/idl.ypp" + case 485: /* $@150: %empty */ +#line 5502 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ConsumesDeclSeen); } -#line 8766 "fe/idl.tab.cpp" +#line 8769 "fe/idl.tab.cpp" break; - case 478: -#line 5464 "fe/idl.ypp" + case 486: /* component_export: consumes_decl $@150 ';' */ +#line 5506 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = (yyvsp[-2].dcval); } -#line 8775 "fe/idl.tab.cpp" +#line 8778 "fe/idl.tab.cpp" break; - case 479: -#line 5469 "fe/idl.ypp" + case 487: /* $@151: %empty */ +#line 5511 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclSeen); } -#line 8783 "fe/idl.tab.cpp" +#line 8786 "fe/idl.tab.cpp" break; - case 480: -#line 5473 "fe/idl.ypp" + case 488: /* component_export: attribute $@151 ';' */ +#line 5515 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = (yyvsp[-2].dcval); } -#line 8792 "fe/idl.tab.cpp" +#line 8795 "fe/idl.tab.cpp" break; - case 481: -#line 5478 "fe/idl.ypp" + case 489: /* $@152: %empty */ +#line 5520 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ExtendedPortDeclSeen); } -#line 8800 "fe/idl.tab.cpp" +#line 8803 "fe/idl.tab.cpp" break; - case 482: -#line 5482 "fe/idl.ypp" + case 490: /* component_export: extended_port_decl $@152 ';' */ +#line 5524 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = (yyvsp[-2].dcval); } -#line 8809 "fe/idl.tab.cpp" +#line 8812 "fe/idl.tab.cpp" break; - case 483: -#line 5489 "fe/idl.ypp" + case 491: /* provides_decl: IDL_PROVIDES interface_type id */ +#line 5531 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); bool so_far_so_good = true; @@ -8899,21 +8902,21 @@ yyparse (void) (yyval.dcval) = dynamic_cast (provides); } -#line 8903 "fe/idl.tab.cpp" +#line 8906 "fe/idl.tab.cpp" break; - case 484: -#line 5582 "fe/idl.ypp" + case 492: /* interface_type: scoped_name */ +#line 5624 "fe/idl.ypp" { // Lookups and checking are done where the 'interface_type' // token is used, in 'provides_decl' and 'uses_decl'. (yyval.idlist) = (yyvsp[0].idlist); } -#line 8913 "fe/idl.tab.cpp" +#line 8916 "fe/idl.tab.cpp" break; - case 485: -#line 5588 "fe/idl.ypp" + case 493: /* interface_type: IDL_OBJECT */ +#line 5630 "fe/idl.ypp" { Identifier *corba_id = 0; @@ -8936,11 +8939,11 @@ yyparse (void) conc_name), 1); } -#line 8940 "fe/idl.tab.cpp" +#line 8943 "fe/idl.tab.cpp" break; - case 486: -#line 5613 "fe/idl.ypp" + case 494: /* uses_decl: uses_opt_multiple interface_type id */ +#line 5655 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); bool so_far_so_good = true; @@ -9044,37 +9047,37 @@ yyparse (void) (yyval.dcval) = uses; } -#line 9048 "fe/idl.tab.cpp" +#line 9051 "fe/idl.tab.cpp" break; - case 487: -#line 5720 "fe/idl.ypp" + case 495: /* uses_opt_multiple: IDL_USES opt_multiple */ +#line 5762 "fe/idl.ypp" { // We use this extra rule here to use in both uses_decl and // extended_uses_decl, so the LALR(1) parser can avoid conflicts. (yyval.bval) = (yyvsp[0].bval); } -#line 9058 "fe/idl.tab.cpp" +#line 9061 "fe/idl.tab.cpp" break; - case 488: -#line 5729 "fe/idl.ypp" + case 496: /* opt_multiple: IDL_MULTIPLE */ +#line 5771 "fe/idl.ypp" { (yyval.bval) = true; } -#line 9066 "fe/idl.tab.cpp" +#line 9069 "fe/idl.tab.cpp" break; - case 489: -#line 5733 "fe/idl.ypp" + case 497: /* opt_multiple: %empty */ +#line 5775 "fe/idl.ypp" { (yyval.bval) = false; } -#line 9074 "fe/idl.tab.cpp" +#line 9077 "fe/idl.tab.cpp" break; - case 490: -#line 5740 "fe/idl.ypp" + case 498: /* emits_decl: IDL_EMITS scoped_name id */ +#line 5782 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); bool so_far_so_good = true; @@ -9146,11 +9149,11 @@ yyparse (void) (yyval.dcval) = e; } -#line 9150 "fe/idl.tab.cpp" +#line 9153 "fe/idl.tab.cpp" break; - case 491: -#line 5815 "fe/idl.ypp" + case 499: /* publishes_decl: IDL_PUBLISHES scoped_name id */ +#line 5857 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); bool so_far_so_good = true; @@ -9219,11 +9222,11 @@ yyparse (void) (yyval.dcval) = p; } -#line 9223 "fe/idl.tab.cpp" +#line 9226 "fe/idl.tab.cpp" break; - case 492: -#line 5887 "fe/idl.ypp" + case 500: /* consumes_decl: IDL_CONSUMES scoped_name id */ +#line 5929 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); bool so_far_so_good = true; @@ -9295,11 +9298,11 @@ yyparse (void) (yyval.dcval) = c; } -#line 9299 "fe/idl.tab.cpp" +#line 9302 "fe/idl.tab.cpp" break; - case 493: -#line 5962 "fe/idl.ypp" + case 501: /* $@153: %empty */ +#line 6004 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Home *h = 0; @@ -9336,11 +9339,11 @@ yyparse (void) */ idl_global->scopes ().push (h); } -#line 9340 "fe/idl.tab.cpp" +#line 9343 "fe/idl.tab.cpp" break; - case 494: -#line 5999 "fe/idl.ypp" + case 502: /* home_decl: home_header $@153 home_body */ +#line 6041 "fe/idl.ypp" { /* * Done with this component - pop it off the scopes stack. @@ -9349,59 +9352,59 @@ yyparse (void) (yyval.dcval) = 0; } -#line 9353 "fe/idl.tab.cpp" +#line 9356 "fe/idl.tab.cpp" break; - case 495: -#line 6011 "fe/idl.ypp" + case 503: /* $@154: %empty */ +#line 6053 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_HomeSeen); } -#line 9361 "fe/idl.tab.cpp" +#line 9364 "fe/idl.tab.cpp" break; - case 496: -#line 6015 "fe/idl.ypp" + case 504: /* $@155: %empty */ +#line 6057 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_HomeIDSeen); } -#line 9369 "fe/idl.tab.cpp" +#line 9372 "fe/idl.tab.cpp" break; - case 497: -#line 6019 "fe/idl.ypp" + case 505: /* $@156: %empty */ +#line 6061 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen); } -#line 9377 "fe/idl.tab.cpp" +#line 9380 "fe/idl.tab.cpp" break; - case 498: -#line 6023 "fe/idl.ypp" + case 506: /* $@157: %empty */ +#line 6065 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SupportSpecSeen); } -#line 9385 "fe/idl.tab.cpp" +#line 9388 "fe/idl.tab.cpp" break; - case 499: -#line 6027 "fe/idl.ypp" + case 507: /* $@158: %empty */ +#line 6069 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ManagesSeen); } -#line 9393 "fe/idl.tab.cpp" +#line 9396 "fe/idl.tab.cpp" break; - case 500: -#line 6031 "fe/idl.ypp" + case 508: /* $@159: %empty */ +#line 6073 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ManagesIDSeen); } -#line 9401 "fe/idl.tab.cpp" +#line 9404 "fe/idl.tab.cpp" break; - case 501: -#line 6035 "fe/idl.ypp" + case 509: /* home_header: IDL_HOME $@154 defining_id $@155 home_inheritance_spec $@156 supports_spec $@157 IDL_MANAGES $@158 scoped_name $@159 primary_key_spec */ +#line 6077 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_PrimaryKeySpecSeen); @@ -9447,107 +9450,107 @@ yyparse (void) (yyvsp[-6].nlval) = 0; } } -#line 9451 "fe/idl.tab.cpp" +#line 9454 "fe/idl.tab.cpp" break; - case 502: -#line 6084 "fe/idl.ypp" + case 510: /* $@160: %empty */ +#line 6126 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InheritColonSeen); } -#line 9459 "fe/idl.tab.cpp" +#line 9462 "fe/idl.tab.cpp" break; - case 503: -#line 6088 "fe/idl.ypp" + case 511: /* home_inheritance_spec: ':' $@160 scoped_name */ +#line 6130 "fe/idl.ypp" { (yyval.idlist) = (yyvsp[0].idlist); } -#line 9467 "fe/idl.tab.cpp" +#line 9470 "fe/idl.tab.cpp" break; - case 504: -#line 6092 "fe/idl.ypp" + case 512: /* home_inheritance_spec: %empty */ +#line 6134 "fe/idl.ypp" { (yyval.idlist) = 0; } -#line 9475 "fe/idl.tab.cpp" +#line 9478 "fe/idl.tab.cpp" break; - case 505: -#line 6100 "fe/idl.ypp" + case 513: /* primary_key_spec: IDL_PRIMARYKEY scoped_name */ +#line 6142 "fe/idl.ypp" { (yyval.idlist) = (yyvsp[0].idlist); } -#line 9483 "fe/idl.tab.cpp" +#line 9486 "fe/idl.tab.cpp" break; - case 506: -#line 6104 "fe/idl.ypp" + case 514: /* primary_key_spec: %empty */ +#line 6146 "fe/idl.ypp" { (yyval.idlist) = 0; } -#line 9491 "fe/idl.tab.cpp" +#line 9494 "fe/idl.tab.cpp" break; - case 507: -#line 6111 "fe/idl.ypp" + case 515: /* $@161: %empty */ +#line 6153 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_HomeSqSeen); } -#line 9499 "fe/idl.tab.cpp" +#line 9502 "fe/idl.tab.cpp" break; - case 508: -#line 6115 "fe/idl.ypp" + case 516: /* $@162: %empty */ +#line 6157 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_HomeBodySeen); } -#line 9507 "fe/idl.tab.cpp" +#line 9510 "fe/idl.tab.cpp" break; - case 509: -#line 6119 "fe/idl.ypp" + case 517: /* home_body: '{' $@161 home_exports $@162 '}' */ +#line 6161 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_HomeQsSeen); } -#line 9515 "fe/idl.tab.cpp" +#line 9518 "fe/idl.tab.cpp" break; - case 513: -#line 6132 "fe/idl.ypp" + case 521: /* $@163: %empty */ +#line 6174 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_FactoryDeclSeen); } -#line 9523 "fe/idl.tab.cpp" +#line 9526 "fe/idl.tab.cpp" break; - case 514: -#line 6136 "fe/idl.ypp" + case 522: /* home_export: factory_decl $@163 ';' */ +#line 6178 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 9531 "fe/idl.tab.cpp" +#line 9534 "fe/idl.tab.cpp" break; - case 515: -#line 6140 "fe/idl.ypp" + case 523: /* $@164: %empty */ +#line 6182 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_FinderDeclSeen); } -#line 9539 "fe/idl.tab.cpp" +#line 9542 "fe/idl.tab.cpp" break; - case 516: -#line 6144 "fe/idl.ypp" + case 524: /* home_export: finder_decl $@164 ';' */ +#line 6186 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 9547 "fe/idl.tab.cpp" +#line 9550 "fe/idl.tab.cpp" break; - case 517: -#line 6152 "fe/idl.ypp" + case 525: /* $@165: %empty */ +#line 6194 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -9570,19 +9573,19 @@ yyparse (void) */ idl_global->scopes ().push (f); } -#line 9574 "fe/idl.tab.cpp" +#line 9577 "fe/idl.tab.cpp" break; - case 518: -#line 6175 "fe/idl.ypp" + case 526: /* $@166: %empty */ +#line 6217 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpParsCompleted); } -#line 9582 "fe/idl.tab.cpp" +#line 9585 "fe/idl.tab.cpp" break; - case 519: -#line 6179 "fe/idl.ypp" + case 527: /* factory_decl: IDL_FACTORY defining_id $@165 init_parameter_list $@166 opt_raises */ +#line 6221 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseCompleted); @@ -9600,11 +9603,11 @@ yyparse (void) */ idl_global->scopes ().pop (); } -#line 9604 "fe/idl.tab.cpp" +#line 9607 "fe/idl.tab.cpp" break; - case 520: -#line 6201 "fe/idl.ypp" + case 528: /* $@167: %empty */ +#line 6243 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -9631,19 +9634,19 @@ yyparse (void) */ idl_global->scopes ().push (f); } -#line 9635 "fe/idl.tab.cpp" +#line 9638 "fe/idl.tab.cpp" break; - case 521: -#line 6228 "fe/idl.ypp" + case 529: /* $@168: %empty */ +#line 6270 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_OpParsCompleted); } -#line 9643 "fe/idl.tab.cpp" +#line 9646 "fe/idl.tab.cpp" break; - case 522: -#line 6232 "fe/idl.ypp" + case 530: /* finder_decl: IDL_FINDER defining_id $@167 init_parameter_list $@168 opt_raises */ +#line 6274 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseCompleted); @@ -9661,11 +9664,11 @@ yyparse (void) */ idl_global->scopes ().pop (); } -#line 9665 "fe/idl.tab.cpp" +#line 9668 "fe/idl.tab.cpp" break; - case 528: -#line 6265 "fe/idl.ypp" + case 536: /* event_concrete_forward_decl: IDL_EVENTTYPE defining_id */ +#line 6307 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -9690,11 +9693,11 @@ yyparse (void) (yyval.dcval) = 0; } -#line 9694 "fe/idl.tab.cpp" +#line 9697 "fe/idl.tab.cpp" break; - case 529: -#line 6295 "fe/idl.ypp" + case 537: /* event_abs_forward_decl: IDL_ABSTRACT IDL_EVENTTYPE defining_id */ +#line 6337 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -9719,11 +9722,11 @@ yyparse (void) (yyval.dcval) = 0; } -#line 9723 "fe/idl.tab.cpp" +#line 9726 "fe/idl.tab.cpp" break; - case 530: -#line 6324 "fe/idl.ypp" + case 538: /* $@169: %empty */ +#line 6366 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_EventType *e = 0; @@ -9767,27 +9770,27 @@ yyparse (void) delete (yyvsp[-1].idval); (yyvsp[-1].idval) = 0; } -#line 9771 "fe/idl.tab.cpp" +#line 9774 "fe/idl.tab.cpp" break; - case 531: -#line 6368 "fe/idl.ypp" + case 539: /* $@170: %empty */ +#line 6410 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeSqSeen); } -#line 9779 "fe/idl.tab.cpp" +#line 9782 "fe/idl.tab.cpp" break; - case 532: -#line 6372 "fe/idl.ypp" + case 540: /* $@171: %empty */ +#line 6414 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeBodySeen); } -#line 9787 "fe/idl.tab.cpp" +#line 9790 "fe/idl.tab.cpp" break; - case 533: -#line 6376 "fe/idl.ypp" + case 541: /* event_abs_decl: event_abs_header event_rest_of_header $@169 '{' $@170 exports $@171 '}' */ +#line 6418 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeQsSeen); @@ -9798,19 +9801,19 @@ yyparse (void) (yyval.dcval) = 0; } -#line 9802 "fe/idl.tab.cpp" +#line 9805 "fe/idl.tab.cpp" break; - case 534: -#line 6392 "fe/idl.ypp" + case 542: /* event_abs_header: IDL_ABSTRACT IDL_EVENTTYPE defining_id */ +#line 6434 "fe/idl.ypp" { (yyval.idval) = (yyvsp[0].idval); } -#line 9810 "fe/idl.tab.cpp" +#line 9813 "fe/idl.tab.cpp" break; - case 535: -#line 6401 "fe/idl.ypp" + case 543: /* event_custom_header: IDL_CUSTOM IDL_EVENTTYPE defining_id */ +#line 6443 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeIDSeen); @@ -9823,29 +9826,29 @@ yyparse (void) ACE_TEXT (" custom yet\n"))); (yyval.idval) = 0; } -#line 9827 "fe/idl.tab.cpp" +#line 9830 "fe/idl.tab.cpp" break; - case 536: -#line 6418 "fe/idl.ypp" + case 544: /* event_plain_header: IDL_EVENTTYPE defining_id */ +#line 6460 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeIDSeen); (yyval.idval) = (yyvsp[0].idval); } -#line 9837 "fe/idl.tab.cpp" +#line 9840 "fe/idl.tab.cpp" break; - case 537: -#line 6427 "fe/idl.ypp" + case 545: /* $@172: %empty */ +#line 6469 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen); } -#line 9845 "fe/idl.tab.cpp" +#line 9848 "fe/idl.tab.cpp" break; - case 538: -#line 6431 "fe/idl.ypp" + case 546: /* event_rest_of_header: inheritance_spec $@172 supports_spec */ +#line 6473 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_SupportSpecSeen); @@ -9874,11 +9877,11 @@ yyparse (void) (yyvsp[-2].nlval) = 0; } } -#line 9878 "fe/idl.tab.cpp" +#line 9881 "fe/idl.tab.cpp" break; - case 539: -#line 6464 "fe/idl.ypp" + case 547: /* @173: %empty */ +#line 6506 "fe/idl.ypp" { UTL_Scope *scope = idl_global->scopes ().top_non_null (); Identifier *&event_id = (yyvsp[-1].idval); @@ -9929,27 +9932,27 @@ yyparse (void) (yyval.dcval) = eventtype; } -#line 9933 "fe/idl.tab.cpp" +#line 9936 "fe/idl.tab.cpp" break; - case 540: -#line 6515 "fe/idl.ypp" + case 548: /* $@174: %empty */ +#line 6557 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeSqSeen); } -#line 9941 "fe/idl.tab.cpp" +#line 9944 "fe/idl.tab.cpp" break; - case 541: -#line 6519 "fe/idl.ypp" + case 549: /* $@175: %empty */ +#line 6561 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeBodySeen); } -#line 9949 "fe/idl.tab.cpp" +#line 9952 "fe/idl.tab.cpp" break; - case 542: -#line 6523 "fe/idl.ypp" + case 550: /* event_decl: event_header event_rest_of_header @173 '{' $@174 value_elements $@175 '}' */ +#line 6565 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeQsSeen); @@ -9960,108 +9963,108 @@ yyparse (void) (yyval.dcval) = (yyvsp[-5].dcval); } -#line 9964 "fe/idl.tab.cpp" +#line 9967 "fe/idl.tab.cpp" break; - case 543: -#line 6537 "fe/idl.ypp" + case 551: /* event_header: event_custom_header */ +#line 6579 "fe/idl.ypp" { (yyval.idval) = (yyvsp[0].idval); } -#line 9972 "fe/idl.tab.cpp" +#line 9975 "fe/idl.tab.cpp" break; - case 544: -#line 6541 "fe/idl.ypp" + case 552: /* event_header: event_plain_header */ +#line 6583 "fe/idl.ypp" { (yyval.idval) = (yyvsp[0].idval); } -#line 9980 "fe/idl.tab.cpp" +#line 9983 "fe/idl.tab.cpp" break; - case 545: -#line 6548 "fe/idl.ypp" + case 553: /* formal_parameter_type: IDL_TYPENAME */ +#line 6590 "fe/idl.ypp" { (yyval.ntval) = AST_Decl::NT_type; } -#line 9988 "fe/idl.tab.cpp" +#line 9991 "fe/idl.tab.cpp" break; - case 546: -#line 6552 "fe/idl.ypp" + case 554: /* formal_parameter_type: IDL_STRUCT */ +#line 6594 "fe/idl.ypp" { (yyval.ntval) = AST_Decl::NT_struct; } -#line 9996 "fe/idl.tab.cpp" +#line 9999 "fe/idl.tab.cpp" break; - case 547: -#line 6556 "fe/idl.ypp" + case 555: /* formal_parameter_type: IDL_UNION */ +#line 6598 "fe/idl.ypp" { (yyval.ntval) = AST_Decl::NT_union; } -#line 10004 "fe/idl.tab.cpp" +#line 10007 "fe/idl.tab.cpp" break; - case 548: -#line 6560 "fe/idl.ypp" + case 556: /* formal_parameter_type: IDL_EVENTTYPE */ +#line 6602 "fe/idl.ypp" { (yyval.ntval) = AST_Decl::NT_eventtype; } -#line 10012 "fe/idl.tab.cpp" +#line 10015 "fe/idl.tab.cpp" break; - case 549: -#line 6564 "fe/idl.ypp" + case 557: /* formal_parameter_type: IDL_SEQUENCE */ +#line 6606 "fe/idl.ypp" { (yyval.ntval) = AST_Decl::NT_sequence; } -#line 10020 "fe/idl.tab.cpp" +#line 10023 "fe/idl.tab.cpp" break; - case 550: -#line 6568 "fe/idl.ypp" + case 558: /* formal_parameter_type: IDL_INTERFACE */ +#line 6610 "fe/idl.ypp" { (yyval.ntval) = AST_Decl::NT_interface; } -#line 10028 "fe/idl.tab.cpp" +#line 10031 "fe/idl.tab.cpp" break; - case 551: -#line 6572 "fe/idl.ypp" + case 559: /* formal_parameter_type: IDL_VALUETYPE */ +#line 6614 "fe/idl.ypp" { (yyval.ntval) = AST_Decl::NT_valuetype; } -#line 10036 "fe/idl.tab.cpp" +#line 10039 "fe/idl.tab.cpp" break; - case 552: -#line 6576 "fe/idl.ypp" + case 560: /* formal_parameter_type: IDL_ENUM */ +#line 6618 "fe/idl.ypp" { (yyval.ntval) = AST_Decl::NT_enum; } -#line 10044 "fe/idl.tab.cpp" +#line 10047 "fe/idl.tab.cpp" break; - case 553: -#line 6580 "fe/idl.ypp" + case 561: /* formal_parameter_type: IDL_EXCEPTION */ +#line 6622 "fe/idl.ypp" { (yyval.ntval) = AST_Decl::NT_except; } -#line 10052 "fe/idl.tab.cpp" +#line 10055 "fe/idl.tab.cpp" break; - case 554: -#line 6584 "fe/idl.ypp" + case 562: /* formal_parameter_type: IDL_CONST const_type */ +#line 6626 "fe/idl.ypp" { (yyval.ntval) = AST_Decl::NT_const; t_param_const_type = (yyvsp[0].etval); } -#line 10061 "fe/idl.tab.cpp" +#line 10064 "fe/idl.tab.cpp" break; - case 555: -#line 6592 "fe/idl.ypp" + case 563: /* at_least_one_formal_parameter: formal_parameter formal_parameters */ +#line 6634 "fe/idl.ypp" { if ((yyvsp[0].plval) == 0) { @@ -10089,11 +10092,11 @@ yyparse (void) (yyval.plval) = (yyvsp[0].plval); } -#line 10093 "fe/idl.tab.cpp" +#line 10096 "fe/idl.tab.cpp" break; - case 556: -#line 6623 "fe/idl.ypp" + case 564: /* formal_parameters: formal_parameters ',' formal_parameter */ +#line 6665 "fe/idl.ypp" { if ((yyvsp[-2].plval) == 0) { @@ -10106,19 +10109,19 @@ yyparse (void) delete (yyvsp[0].pival); (yyvsp[0].pival) = 0; } -#line 10110 "fe/idl.tab.cpp" +#line 10113 "fe/idl.tab.cpp" break; - case 557: -#line 6636 "fe/idl.ypp" + case 565: /* formal_parameters: %empty */ +#line 6678 "fe/idl.ypp" { (yyval.plval) = 0; } -#line 10118 "fe/idl.tab.cpp" +#line 10121 "fe/idl.tab.cpp" break; - case 558: -#line 6643 "fe/idl.ypp" + case 566: /* formal_parameter: formal_parameter_type IDENTIFIER */ +#line 6685 "fe/idl.ypp" { ACE_NEW_RETURN ((yyval.pival), @@ -10143,11 +10146,11 @@ yyparse (void) tao_enum_constant_decl = 0; } } -#line 10147 "fe/idl.tab.cpp" +#line 10150 "fe/idl.tab.cpp" break; - case 559: -#line 6668 "fe/idl.ypp" + case 567: /* formal_parameter: IDL_SEQUENCE '<' IDENTIFIER '>' IDENTIFIER */ +#line 6710 "fe/idl.ypp" { ACE_NEW_RETURN ((yyval.pival), FE_Utils::T_Param_Info, @@ -10162,19 +10165,19 @@ yyparse (void) ACE::strdelete ((yyvsp[0].strval)); (yyvsp[0].strval) = 0; } -#line 10166 "fe/idl.tab.cpp" +#line 10169 "fe/idl.tab.cpp" break; - case 560: -#line 6686 "fe/idl.ypp" + case 568: /* at_least_one_formal_parameter_name: formal_parameter_name formal_parameter_names */ +#line 6728 "fe/idl.ypp" { ACE_NEW_RETURN ((yyval.slval), UTL_StrList ((yyvsp[-1].sval), (yyvsp[0].slval)), 1); } -#line 10174 "fe/idl.tab.cpp" +#line 10177 "fe/idl.tab.cpp" break; - case 561: -#line 6693 "fe/idl.ypp" + case 569: /* formal_parameter_names: formal_parameter_names ',' formal_parameter_name */ +#line 6735 "fe/idl.ypp" { UTL_StrList *sl = 0; ACE_NEW_RETURN (sl, UTL_StrList ((yyvsp[0].sval), 0), 1); @@ -10189,37 +10192,37 @@ yyparse (void) (yyval.slval) = (yyvsp[-2].slval); } } -#line 10193 "fe/idl.tab.cpp" +#line 10196 "fe/idl.tab.cpp" break; - case 562: -#line 6708 "fe/idl.ypp" + case 570: /* formal_parameter_names: %empty */ +#line 6750 "fe/idl.ypp" { (yyval.slval) = 0; } -#line 10201 "fe/idl.tab.cpp" +#line 10204 "fe/idl.tab.cpp" break; - case 563: -#line 6715 "fe/idl.ypp" + case 571: /* formal_parameter_name: IDENTIFIER */ +#line 6757 "fe/idl.ypp" { ACE_NEW_RETURN ((yyval.sval), UTL_String ((yyvsp[0].strval), true), 1); } -#line 10211 "fe/idl.tab.cpp" +#line 10214 "fe/idl.tab.cpp" break; - case 564: -#line 6724 "fe/idl.ypp" + case 572: /* $@176: %empty */ +#line 6766 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeSeen); } -#line 10219 "fe/idl.tab.cpp" +#line 10222 "fe/idl.tab.cpp" break; - case 565: -#line 6728 "fe/idl.ypp" + case 573: /* @177: %empty */ +#line 6770 "fe/idl.ypp" { char *&id_value = (yyvsp[0].strval); idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeIDSeen); @@ -10238,27 +10241,27 @@ yyparse (void) // Push it on the scopes stack. idl_global->scopes ().push (porttype); } -#line 10242 "fe/idl.tab.cpp" +#line 10245 "fe/idl.tab.cpp" break; - case 566: -#line 6747 "fe/idl.ypp" + case 574: /* $@178: %empty */ +#line 6789 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeSqSeen); } -#line 10250 "fe/idl.tab.cpp" +#line 10253 "fe/idl.tab.cpp" break; - case 567: -#line 6755 "fe/idl.ypp" + case 575: /* $@179: %empty */ +#line 6797 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeBodySeen); } -#line 10258 "fe/idl.tab.cpp" +#line 10261 "fe/idl.tab.cpp" break; - case 568: -#line 6759 "fe/idl.ypp" + case 576: /* porttype_decl: IDL_PORTTYPE $@176 IDENTIFIER @177 '{' $@178 at_least_one_port_export $@179 '}' */ +#line 6801 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeQsSeen); @@ -10267,11 +10270,11 @@ yyparse (void) (yyval.dcval) = (yyvsp[-5].dcval); } -#line 10271 "fe/idl.tab.cpp" +#line 10274 "fe/idl.tab.cpp" break; - case 569: -#line 6771 "fe/idl.ypp" + case 577: /* at_least_one_port_export: port_exports at_least_one_annotation port_export */ +#line 6813 "fe/idl.ypp" { AST_Annotation_Appls *&annotations = (yyvsp[-1].annotations_val); AST_Decl *&node = (yyvsp[0].dcval); @@ -10286,27 +10289,27 @@ yyparse (void) } delete annotations; } -#line 10290 "fe/idl.tab.cpp" +#line 10293 "fe/idl.tab.cpp" break; - case 575: -#line 6797 "fe/idl.ypp" + case 583: /* $@180: %empty */ +#line 6839 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclSeen); } -#line 10298 "fe/idl.tab.cpp" +#line 10301 "fe/idl.tab.cpp" break; - case 576: -#line 6801 "fe/idl.ypp" + case 584: /* port_export: attribute $@180 ';' */ +#line 6843 "fe/idl.ypp" { (yyval.dcval) = (yyvsp[-2].dcval); } -#line 10306 "fe/idl.tab.cpp" +#line 10309 "fe/idl.tab.cpp" break; - case 577: -#line 6808 "fe/idl.ypp" + case 585: /* extended_port_decl: IDL_PORT scoped_name IDENTIFIER */ +#line 6850 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ExtendedPortDeclSeen); UTL_Scope *s = idl_global->scopes ().top_non_null (); @@ -10373,11 +10376,11 @@ yyparse (void) (yyval.dcval) = ep; } -#line 10377 "fe/idl.tab.cpp" +#line 10380 "fe/idl.tab.cpp" break; - case 578: -#line 6875 "fe/idl.ypp" + case 586: /* extended_port_decl: IDL_MIRRORPORT scoped_name IDENTIFIER */ +#line 6917 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_MirrorPortDeclSeen); UTL_Scope *s = idl_global->scopes ().top_non_null (); @@ -10422,11 +10425,11 @@ yyparse (void) (yyval.dcval) = mp; } -#line 10426 "fe/idl.tab.cpp" +#line 10429 "fe/idl.tab.cpp" break; - case 579: -#line 6923 "fe/idl.ypp" + case 587: /* at_least_one_actual_parameter: annotations_maybe actual_parameter actual_parameters */ +#line 6965 "fe/idl.ypp" { if ((yyvsp[0].alval) == 0) { @@ -10439,11 +10442,11 @@ yyparse (void) (yyvsp[0].alval)->enqueue_head ((yyvsp[-1].dcval)); (yyval.alval) = (yyvsp[0].alval); } -#line 10443 "fe/idl.tab.cpp" +#line 10446 "fe/idl.tab.cpp" break; - case 580: -#line 6939 "fe/idl.ypp" + case 588: /* actual_parameters: actual_parameters ',' annotations_maybe actual_parameter */ +#line 6981 "fe/idl.ypp" { if ((yyvsp[-3].alval) == 0) { @@ -10456,19 +10459,19 @@ yyparse (void) (yyvsp[-3].alval)->enqueue_tail ((yyvsp[0].dcval)); (yyval.alval) = (yyvsp[-3].alval); } -#line 10460 "fe/idl.tab.cpp" +#line 10463 "fe/idl.tab.cpp" break; - case 581: -#line 6952 "fe/idl.ypp" + case 589: /* actual_parameters: %empty */ +#line 6994 "fe/idl.ypp" { (yyval.alval) = 0; } -#line 10468 "fe/idl.tab.cpp" +#line 10471 "fe/idl.tab.cpp" break; - case 582: -#line 6959 "fe/idl.ypp" + case 590: /* actual_parameter: expression */ +#line 7001 "fe/idl.ypp" { // To avoid grammar conflicts with this LALR(1) parser, // we take advantage of the fact that an expression can @@ -10524,35 +10527,35 @@ yyparse (void) 0); } } -#line 10528 "fe/idl.tab.cpp" +#line 10531 "fe/idl.tab.cpp" break; - case 583: -#line 7018 "fe/idl.ypp" + case 591: /* connector_decl: connector_header connector_body */ +#line 7060 "fe/idl.ypp" { (yyval.dcval) = 0; } -#line 10536 "fe/idl.tab.cpp" +#line 10539 "fe/idl.tab.cpp" break; - case 584: -#line 7025 "fe/idl.ypp" + case 592: /* $@181: %empty */ +#line 7067 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorSeen); } -#line 10544 "fe/idl.tab.cpp" +#line 10547 "fe/idl.tab.cpp" break; - case 585: -#line 7029 "fe/idl.ypp" + case 593: /* $@182: %empty */ +#line 7071 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorIDSeen); } -#line 10552 "fe/idl.tab.cpp" +#line 10555 "fe/idl.tab.cpp" break; - case 586: -#line 7033 "fe/idl.ypp" + case 594: /* connector_header: IDL_CONNECTOR $@181 annotations_maybe IDENTIFIER $@182 component_inheritance_spec */ +#line 7075 "fe/idl.ypp" { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Connector *parent = 0; @@ -10606,102 +10609,102 @@ yyparse (void) delete (yyvsp[-3].annotations_val); } -#line 10610 "fe/idl.tab.cpp" +#line 10613 "fe/idl.tab.cpp" break; - case 587: -#line 7090 "fe/idl.ypp" + case 595: /* $@183: %empty */ +#line 7132 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorSqSeen); } -#line 10618 "fe/idl.tab.cpp" +#line 10621 "fe/idl.tab.cpp" break; - case 588: -#line 7094 "fe/idl.ypp" + case 596: /* $@184: %empty */ +#line 7136 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorBodySeen); } -#line 10626 "fe/idl.tab.cpp" +#line 10629 "fe/idl.tab.cpp" break; - case 589: -#line 7098 "fe/idl.ypp" + case 597: /* connector_body: '{' $@183 connector_exports $@184 '}' */ +#line 7140 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorQsSeen); // Done with this connector - pop it off the scope stack. idl_global->scopes ().pop (); } -#line 10637 "fe/idl.tab.cpp" +#line 10640 "fe/idl.tab.cpp" break; - case 592: -#line 7113 "fe/idl.ypp" + case 600: /* $@185: %empty */ +#line 7155 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ProvidesDeclSeen); } -#line 10645 "fe/idl.tab.cpp" +#line 10648 "fe/idl.tab.cpp" break; - case 593: -#line 7117 "fe/idl.ypp" + case 601: /* connector_export: provides_decl $@185 ';' */ +#line 7159 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 10653 "fe/idl.tab.cpp" +#line 10656 "fe/idl.tab.cpp" break; - case 594: -#line 7121 "fe/idl.ypp" + case 602: /* $@186: %empty */ +#line 7163 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_UsesDeclSeen); } -#line 10661 "fe/idl.tab.cpp" +#line 10664 "fe/idl.tab.cpp" break; - case 595: -#line 7125 "fe/idl.ypp" + case 603: /* connector_export: uses_decl $@186 ';' */ +#line 7167 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 10669 "fe/idl.tab.cpp" +#line 10672 "fe/idl.tab.cpp" break; - case 596: -#line 7129 "fe/idl.ypp" + case 604: /* $@187: %empty */ +#line 7171 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclSeen); } -#line 10677 "fe/idl.tab.cpp" +#line 10680 "fe/idl.tab.cpp" break; - case 597: -#line 7133 "fe/idl.ypp" + case 605: /* connector_export: attribute $@187 ';' */ +#line 7175 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 10685 "fe/idl.tab.cpp" +#line 10688 "fe/idl.tab.cpp" break; - case 598: -#line 7137 "fe/idl.ypp" + case 606: /* $@188: %empty */ +#line 7179 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_ExtendedPortDeclSeen); } -#line 10693 "fe/idl.tab.cpp" +#line 10696 "fe/idl.tab.cpp" break; - case 599: -#line 7141 "fe/idl.ypp" + case 607: /* connector_export: extended_port_decl $@188 ';' */ +#line 7183 "fe/idl.ypp" { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 10701 "fe/idl.tab.cpp" +#line 10704 "fe/idl.tab.cpp" break; -#line 10705 "fe/idl.tab.cpp" +#line 10708 "fe/idl.tab.cpp" default: break; } @@ -10861,13 +10864,13 @@ yyparse (void) yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; - /* Fall through. */ + goto yyreturn; #endif -/*-----------------------------------------------------. -| yyreturn -- parsing is finished, return the result. | -`-----------------------------------------------------*/ +/*-------------------------------------------------------. +| yyreturn -- parsing is finished, clean up and return. | +`-------------------------------------------------------*/ yyreturn: if (yychar != YYEMPTY) { @@ -10895,7 +10898,7 @@ yyparse (void) return yyresult; } -#line 7146 "fe/idl.ypp" +#line 7188 "fe/idl.ypp" /* programs */ diff --git a/TAO/TAO_IDL/fe/idl.tab.hpp b/TAO/TAO_IDL/fe/idl.tab.hpp index fbe1e9b75cc26..000f4c974d252 100644 --- a/TAO/TAO_IDL/fe/idl.tab.hpp +++ b/TAO/TAO_IDL/fe/idl.tab.hpp @@ -1,8 +1,8 @@ -/* A Bison parser, made by GNU Bison 3.6.2. */ +/* A Bison parser, made by GNU Bison 3.7.6. */ /* Bison interface for Yacc-like parsers in C - Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2020 Free Software Foundation, + Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -16,7 +16,7 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see . */ + along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work @@ -132,13 +132,21 @@ extern int tao_yydebug; IDL_FIXED_PT_LITERAL = 333, /* IDL_FIXED_PT_LITERAL */ IDL_TRUETOK = 334, /* IDL_TRUETOK */ IDL_FALSETOK = 335, /* IDL_FALSETOK */ - IDL_SCOPE_DELIMITOR = 336, /* IDL_SCOPE_DELIMITOR */ - IDL_LEFT_SHIFT = 337, /* IDL_LEFT_SHIFT */ - IDL_RIGHT_SHIFT = 338, /* IDL_RIGHT_SHIFT */ - IDL_WCHAR_LITERAL = 339, /* IDL_WCHAR_LITERAL */ - IDL_WSTRING_LITERAL = 340, /* IDL_WSTRING_LITERAL */ - IDL_ANNOTATION_DECL = 341, /* IDL_ANNOTATION_DECL */ - IDL_ANNOTATION_SYMBOL = 342 /* IDL_ANNOTATION_SYMBOL */ + IDL_INT8 = 336, /* IDL_INT8 */ + IDL_UINT8 = 337, /* IDL_UINT8 */ + IDL_INT16 = 338, /* IDL_INT16 */ + IDL_UINT16 = 339, /* IDL_UINT16 */ + IDL_INT32 = 340, /* IDL_INT32 */ + IDL_UINT32 = 341, /* IDL_UINT32 */ + IDL_INT64 = 342, /* IDL_INT64 */ + IDL_UINT64 = 343, /* IDL_UINT64 */ + IDL_SCOPE_DELIMITOR = 344, /* IDL_SCOPE_DELIMITOR */ + IDL_LEFT_SHIFT = 345, /* IDL_LEFT_SHIFT */ + IDL_RIGHT_SHIFT = 346, /* IDL_RIGHT_SHIFT */ + IDL_WCHAR_LITERAL = 347, /* IDL_WCHAR_LITERAL */ + IDL_WSTRING_LITERAL = 348, /* IDL_WSTRING_LITERAL */ + IDL_ANNOTATION_DECL = 349, /* IDL_ANNOTATION_DECL */ + IDL_ANNOTATION_SYMBOL = 350 /* IDL_ANNOTATION_SYMBOL */ }; typedef enum yytokentype yytoken_kind_t; #endif @@ -192,7 +200,7 @@ union YYSTYPE AST_Decls *decls_val; Decl_Annotations_Pair *decl_annotations_pair_val; -#line 196 "fe/idl.tab.hpp" +#line 204 "fe/idl.tab.hpp" }; typedef union YYSTYPE YYSTYPE; diff --git a/TAO/TAO_IDL/fe/idl.ypp b/TAO/TAO_IDL/fe/idl.ypp index c4fd51e4d99ee..81fc6a05dd019 100644 --- a/TAO/TAO_IDL/fe/idl.ypp +++ b/TAO/TAO_IDL/fe/idl.ypp @@ -293,6 +293,16 @@ bool stack_based_lookup_for_primary_expr = false; %token IDL_TRUETOK %token IDL_FALSETOK + /* stdint like types defined in IDL4.2 7.4.13 */ +%token IDL_INT8 +%token IDL_UINT8 +%token IDL_INT16 +%token IDL_UINT16 +%token IDL_INT32 +%token IDL_UINT32 +%token IDL_INT64 +%token IDL_UINT64 + %token IDL_SCOPE_DELIMITOR %token IDL_LEFT_SHIFT %token IDL_RIGHT_SHIFT @@ -2978,6 +2988,22 @@ signed_int { $$ = AST_Expression::EV_short; } + | IDL_INT8 + { + $$ = AST_Expression::EV_int8; + } + | IDL_INT16 + { + $$ = AST_Expression::EV_short; + } + | IDL_INT32 + { + $$ = AST_Expression::EV_long; + } + | IDL_INT64 + { + $$ = AST_Expression::EV_longlong; + } ; unsigned_int @@ -2993,6 +3019,22 @@ unsigned_int { $$ = AST_Expression::EV_ushort; } + | IDL_UINT8 + { + $$ = AST_Expression::EV_uint8; + } + | IDL_UINT16 + { + $$ = AST_Expression::EV_ushort; + } + | IDL_UINT32 + { + $$ = AST_Expression::EV_ulong; + } + | IDL_UINT64 + { + $$ = AST_Expression::EV_ulonglong; + } ; floating_pt_type diff --git a/TAO/TAO_IDL/fe/idl.yy.cpp b/TAO/TAO_IDL/fe/idl.yy.cpp index bcb099c813a4c..9c7808d96cf0f 100644 --- a/TAO/TAO_IDL/fe/idl.yy.cpp +++ b/TAO/TAO_IDL/fe/idl.yy.cpp @@ -608,8 +608,8 @@ static void yynoreturn yy_fatal_error ( const char* msg ); YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \ yy_flex_strncpy( yytext, (yytext_ptr), yyleng + 1 ); \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 113 -#define YY_END_OF_BUFFER 114 +#define YY_NUM_RULES 121 +#define YY_END_OF_BUFFER 122 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -617,75 +617,150 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static const flex_int16_t yy_accept[605] = +static const flex_int16_t yy_acclist[626] = { 0, - 110, 110, 114, 112, 110, 111, 111, 112, 112, 112, - 112, 112, 85, 81, 112, 112, 112, 75, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 110, 112, 111, 110, 0, 86, 0, - 0, 0, 0, 84, 80, 77, 109, 0, 77, 85, - 0, 79, 0, 0, 81, 73, 71, 72, 0, 76, - 76, 0, 0, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 68, 76, 76, 76, - - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 110, 0, 0, 104, 0, 0, - 0, 0, 0, 0, 0, 86, 0, 0, 0, 88, - 0, 88, 0, 0, 84, 0, 80, 0, 77, 0, - 108, 108, 77, 0, 78, 83, 0, 76, 0, 87, - 0, 0, 0, 76, 76, 76, 76, 1, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 69, - - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 0, 0, 0, 0, 0, 0, 0, 0, 91, - 89, 0, 0, 82, 0, 77, 78, 0, 76, 87, - 0, 0, 0, 0, 92, 0, 76, 65, 76, 76, - 76, 76, 20, 27, 76, 76, 76, 76, 76, 76, - 76, 76, 13, 76, 76, 76, 76, 76, 76, 76, - 48, 76, 76, 76, 76, 24, 76, 76, 76, 76, - 76, 76, 76, 60, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, - - 76, 57, 76, 31, 76, 76, 0, 0, 0, 0, - 0, 0, 0, 105, 0, 0, 0, 0, 0, 0, - 0, 89, 0, 90, 0, 0, 66, 0, 0, 0, - 76, 76, 64, 76, 76, 76, 76, 10, 76, 76, - 76, 76, 76, 44, 76, 76, 76, 76, 18, 22, - 76, 76, 67, 76, 33, 76, 76, 76, 76, 76, - 30, 76, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 25, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 17, 76, 76, 28, 76, 100, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - - 0, 93, 0, 2, 76, 76, 76, 76, 76, 76, - 76, 35, 76, 23, 76, 76, 76, 46, 76, 49, - 76, 76, 76, 3, 76, 32, 70, 76, 76, 76, - 76, 38, 76, 4, 76, 76, 76, 14, 12, 76, - 19, 76, 76, 55, 76, 76, 76, 76, 76, 0, - 98, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 76, 76, 29, 76, - 76, 76, 8, 21, 76, 76, 36, 76, 76, 58, - 76, 76, 76, 76, 37, 76, 76, 76, 76, 76, - 76, 76, 11, 76, 76, 76, 76, 15, 0, 0, - - 96, 96, 0, 0, 102, 0, 0, 101, 0, 0, - 0, 0, 0, 0, 0, 0, 34, 76, 76, 76, - 43, 76, 76, 76, 76, 76, 50, 62, 76, 52, - 76, 5, 16, 76, 39, 76, 59, 76, 26, 76, - 0, 106, 106, 0, 0, 0, 0, 99, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 42, 63, 45, - 7, 47, 9, 76, 76, 53, 54, 76, 76, 41, - 0, 0, 0, 94, 94, 0, 0, 97, 97, 0, - 0, 0, 0, 0, 61, 51, 76, 56, 0, 0, - 107, 107, 0, 0, 0, 0, 40, 0, 103, 0, - - 95, 95, 74, 0 + 118, 118, 122, 120, 121, 118, 120, 121, 119, 121, + 119, 120, 121, 120, 121, 120, 121, 120, 121, 120, + 121, 120, 121, 93, 120, 121, 89, 120, 121, 120, + 121, 120, 121, 120, 121, 83, 120, 121, 84, 120, + 121, 84, 120, 121, 84, 120, 121, 84, 120, 121, + 84, 120, 121, 84, 120, 121, 84, 120, 121, 84, + 120, 121, 84, 120, 121, 84, 120, 121, 84, 120, + 121, 84, 120, 121, 84, 120, 121, 84, 120, 121, + 84, 120, 121, 84, 120, 121, 84, 120, 121, 84, + 120, 121, 84, 120, 121, 84, 120, 121, 84, 120, + + 121, 84, 120, 121, 84, 120, 121, 84, 120, 121, + 84, 120, 121, 118, 120, 121, 120, 121, 119, 120, + 121, 118, 94, 92, 88, 85, 117, 85, 93, 87, + 89, 81, 79, 80, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 76, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 118, + 112, 94, 96, 96, 92, 88, 85, 116, 116, 85, + + 86, 91, 84, 95, 84, 84, 84, 84, 1, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 77, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 99, 97, 99, 90, 85, + 86, 84, 95, 100, 84, 73, 84, 84, 84, 84, + 84, 20, 84, 27, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 13, 84, 84, 84, 84, 84, 84, + + 84, 84, 56, 84, 84, 84, 84, 84, 84, 35, + 84, 84, 84, 24, 84, 84, 84, 84, 84, 84, + 84, 84, 68, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 65, 84, 84, 31, 84, 84, 84, 113, + 97, 98, 74, 84, 84, 84, 72, 84, 84, 84, + 84, 84, 10, 84, 84, 84, 84, 84, 84, 52, + 84, 84, 84, 84, 84, 18, 84, 22, 84, 84, + 84, 75, 84, 37, 84, 39, 84, 41, 84, 84, + 33, 84, 84, 84, 84, 84, 84, 30, 84, 84, + + 84, 84, 84, 84, 84, 84, 84, 84, 84, 25, + 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, + 84, 84, 84, 36, 84, 17, 84, 84, 84, 28, + 84, 84, 108, 101, 2, 84, 84, 84, 84, 84, + 84, 84, 84, 43, 84, 84, 23, 84, 84, 84, + 84, 54, 84, 84, 57, 84, 84, 84, 84, 3, + 84, 84, 32, 84, 78, 84, 84, 84, 84, 84, + 46, 84, 84, 4, 84, 84, 84, 84, 14, 84, + 12, 84, 84, 19, 84, 84, 84, 63, 84, 84, + 84, 38, 84, 40, 84, 42, 84, 84, 84, 84, + + 106, 84, 84, 29, 84, 84, 84, 84, 8, 84, + 21, 84, 84, 84, 44, 84, 84, 84, 66, 84, + 84, 84, 84, 84, 45, 84, 84, 84, 84, 84, + 84, 84, 84, 11, 84, 84, 84, 84, 84, 15, + 84, 104, 104, 110, 109, 34, 84, 84, 84, 84, + 51, 84, 84, 84, 84, 84, 84, 58, 84, 70, + 84, 84, 60, 84, 84, 5, 84, 16, 84, 84, + 47, 84, 84, 67, 84, 84, 26, 84, 84, 114, + 114, 107, 6, 84, 50, 84, 71, 84, 53, 84, + 7, 84, 55, 84, 9, 84, 84, 84, 61, 84, + + 62, 84, 84, 84, 49, 84, 102, 102, 105, 105, + 69, 84, 59, 84, 84, 64, 84, 115, 115, 48, + 84, 111, 103, 103, 82 + } ; + +static const flex_int16_t yy_accept[623] = + { 0, + 1, 2, 3, 4, 6, 9, 11, 14, 16, 18, + 20, 22, 24, 27, 30, 32, 34, 36, 39, 42, + 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, + 75, 78, 81, 84, 87, 90, 93, 96, 99, 102, + 105, 108, 111, 114, 117, 119, 122, 123, 123, 124, + 124, 124, 124, 124, 125, 126, 127, 128, 128, 129, + 130, 130, 131, 131, 131, 132, 133, 134, 135, 135, + 136, 137, 137, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 162, 163, 164, + + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 191, 191, 192, + 192, 192, 192, 192, 192, 192, 192, 193, 193, 193, + 193, 194, 194, 195, 195, 195, 196, 196, 197, 197, + 198, 198, 199, 200, 201, 201, 202, 203, 203, 204, + 204, 205, 205, 205, 205, 206, 207, 208, 209, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + + 242, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 264, 265, 266, 266, 266, 266, 266, 266, 266, + 266, 266, 267, 269, 269, 269, 270, 270, 271, 272, + 272, 273, 274, 274, 274, 274, 274, 275, 275, 276, + 278, 279, 280, 281, 282, 284, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 296, 297, 298, 299, 300, + 301, 302, 303, 305, 306, 307, 308, 309, 310, 312, + 313, 314, 316, 317, 318, 319, 320, 321, 322, 323, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + + 335, 336, 337, 338, 339, 340, 341, 342, 343, 345, + 346, 348, 349, 350, 350, 350, 350, 350, 350, 350, + 350, 351, 351, 351, 351, 351, 351, 351, 351, 352, + 352, 353, 353, 353, 355, 355, 355, 355, 356, 357, + 359, 360, 361, 362, 363, 365, 366, 367, 368, 369, + 370, 372, 373, 374, 375, 376, 378, 380, 381, 382, + 384, 386, 388, 390, 391, 393, 394, 395, 396, 397, + 398, 400, 401, 402, 403, 404, 405, 406, 407, 408, + 409, 410, 412, 413, 414, 415, 416, 417, 418, 419, + 420, 421, 422, 423, 424, 426, 428, 429, 430, 432, + + 433, 434, 434, 434, 434, 434, 434, 434, 434, 434, + 434, 434, 434, 434, 434, 434, 435, 435, 437, 438, + 439, 440, 441, 442, 443, 444, 446, 447, 449, 450, + 451, 452, 454, 455, 457, 458, 459, 460, 462, 463, + 465, 467, 468, 469, 470, 471, 473, 474, 476, 477, + 478, 479, 481, 483, 484, 486, 487, 488, 490, 491, + 492, 494, 496, 498, 499, 500, 501, 501, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 503, 504, 506, 507, 508, 509, + 511, 513, 514, 515, 517, 518, 519, 521, 522, 523, + + 524, 525, 527, 528, 529, 530, 531, 532, 533, 534, + 536, 537, 538, 539, 540, 542, 542, 542, 543, 544, + 544, 544, 545, 545, 545, 546, 546, 546, 546, 546, + 546, 546, 546, 546, 548, 549, 550, 551, 553, 554, + 555, 556, 557, 558, 560, 562, 563, 565, 566, 568, + 570, 571, 573, 574, 576, 577, 579, 580, 580, 581, + 582, 582, 582, 582, 582, 583, 583, 583, 583, 583, + 583, 583, 583, 583, 585, 587, 589, 591, 593, 595, + 597, 598, 599, 601, 603, 604, 605, 607, 607, 607, + 607, 608, 609, 609, 609, 610, 611, 611, 611, 611, + + 611, 611, 613, 615, 616, 618, 618, 618, 619, 620, + 620, 620, 620, 620, 622, 622, 623, 623, 624, 625, + 626, 626 } ; static const YY_CHAR yy_ec[256] = @@ -694,16 +769,16 @@ static const YY_CHAR yy_ec[256] = 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 6, 7, 1, 1, 1, 8, 1, - 1, 9, 10, 1, 11, 12, 13, 14, 15, 15, - 15, 15, 15, 15, 15, 16, 16, 17, 1, 18, - 19, 20, 21, 22, 23, 24, 24, 25, 26, 27, - 28, 28, 28, 28, 28, 29, 28, 28, 30, 28, - 28, 31, 32, 33, 34, 28, 28, 35, 28, 28, - 1, 36, 1, 1, 28, 1, 37, 38, 39, 40, - - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 28, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 9, 10, 1, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 19, 21, 22, 23, 1, 24, + 25, 26, 27, 28, 29, 30, 30, 31, 32, 33, + 34, 34, 34, 34, 34, 35, 34, 34, 36, 34, + 34, 37, 38, 39, 40, 34, 34, 41, 34, 34, + 1, 42, 1, 1, 34, 1, 43, 44, 45, 46, + + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 34, 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, @@ -720,308 +795,348 @@ static const YY_CHAR yy_ec[256] = 1, 1, 1, 1, 1 } ; -static const YY_CHAR yy_meta[62] = +static const YY_CHAR yy_meta[68] = { 0, - 1, 1, 2, 1, 1, 3, 1, 4, 1, 1, - 1, 1, 1, 5, 5, 6, 1, 1, 1, 1, - 3, 1, 6, 6, 6, 6, 6, 7, 7, 7, - 7, 7, 7, 7, 7, 3, 5, 5, 6, 6, - 6, 5, 7, 7, 7, 7, 7, 7, 7, 8, - 7, 7, 7, 8, 7, 8, 9, 8, 7, 8, - 7 + 1, 2, 3, 4, 2, 5, 1, 6, 1, 7, + 7, 8, 1, 9, 9, 9, 9, 9, 9, 9, + 10, 10, 1, 1, 1, 1, 11, 1, 12, 12, + 13, 13, 12, 14, 14, 14, 14, 14, 14, 14, + 14, 5, 15, 15, 12, 13, 13, 15, 14, 14, + 14, 14, 14, 14, 14, 16, 14, 14, 14, 16, + 14, 16, 17, 16, 14, 16, 14 } ; -static const flex_int16_t yy_base[634] = +static const flex_int16_t yy_base[664] = { 0, - 0, 60, 1192, 1193, 61, 1193, 1193, 58, 1155, 56, - 59, 67, 83, 75, 1173, 1171, 1168, 1150, 0, 1163, - 71, 1147, 1153, 54, 1132, 68, 37, 71, 48, 1141, - 1130, 33, 1129, 77, 1142, 87, 76, 66, 91, 52, - 86, 101, 100, 144, 154, 1157, 140, 147, 158, 147, - 1169, 157, 162, 152, 179, 207, 1193, 176, 170, 199, - 238, 1193, 227, 0, 244, 1193, 1193, 1193, 1126, 0, - 1146, 167, 1138, 1127, 1138, 1116, 1125, 1108, 1112, 1116, - 1111, 1128, 132, 1109, 1121, 1105, 1116, 1103, 1118, 1119, - 1118, 138, 1105, 1099, 1105, 1101, 175, 150, 1102, 1097, - - 1110, 1101, 1092, 1091, 1105, 1089, 1090, 66, 1105, 1097, - 1104, 154, 1089, 1085, 1086, 1092, 1079, 1083, 163, 1093, - 1085, 1087, 1087, 1074, 260, 0, 187, 1193, 1123, 272, - 1083, 1087, 1081, 1071, 1105, 266, 210, 221, 267, 1193, - 1115, 1114, 275, 1113, 280, 0, 285, 298, 1193, 312, - 1193, 314, 0, 308, 313, 0, 1070, 1087, 238, 302, - 322, 1110, 290, 1076, 1090, 1059, 1077, 0, 1059, 1064, - 1070, 1056, 1057, 288, 1052, 1070, 1068, 1049, 1055, 1053, - 1061, 1045, 1060, 1058, 1061, 1043, 1055, 1044, 1037, 1052, - 1055, 1048, 1053, 1035, 1031, 1031, 1041, 1044, 1025, 0, - - 1027, 281, 1024, 1033, 1025, 1039, 1021, 1023, 1022, 289, - 1023, 1018, 1023, 1031, 1020, 1025, 1014, 1011, 1027, 1029, - 1011, 1058, 1057, 1014, 1020, 1010, 1022, 378, 335, 1193, - 1193, 337, 1050, 0, 342, 348, 1193, 1006, 1030, 368, - 1049, 255, 353, 0, 1193, 0, 1015, 0, 999, 997, - 1006, 1009, 0, 0, 998, 1007, 297, 1006, 995, 988, - 996, 988, 0, 986, 989, 989, 998, 998, 981, 999, - 0, 981, 978, 979, 984, 0, 988, 979, 981, 983, - 969, 970, 988, 968, 986, 985, 976, 975, 978, 967, - 976, 979, 959, 964, 974, 961, 972, 971, 355, 959, - - 965, 0, 966, 0, 952, 960, 998, 381, 962, 952, - 960, 957, 951, 1193, 203, 413, 953, 957, 951, 941, - 296, 1193, 986, 1193, 985, 936, 0, 395, 429, 983, - 934, 952, 0, 950, 950, 936, 946, 0, 935, 923, - 933, 933, 939, 0, 923, 922, 923, 922, 0, 0, - 930, 918, 0, 931, 0, 931, 917, 929, 917, 927, - 0, 906, 905, 911, 908, 923, 135, 907, 911, 910, - 914, 0, 915, 901, 902, 911, 917, 912, 912, 914, - 896, 0, 899, 892, 0, 897, 1193, 458, 364, 890, - 434, 896, 938, 937, 894, 900, 890, 902, 901, 342, - - 466, 1193, 929, 0, 897, 878, 884, 892, 876, 890, - 874, 0, 873, 0, 867, 882, 865, 0, 870, 0, - 887, 868, 758, 0, 761, 0, 0, 741, 703, 720, - 719, 0, 700, 0, 684, 692, 675, 0, 0, 673, - 0, 672, 685, 0, 677, 684, 683, 661, 678, 481, - 1193, 496, 400, 386, 511, 516, 683, 712, 437, 676, - 661, 668, 664, 647, 524, 687, 625, 613, 0, 614, - 606, 580, 0, 0, 579, 578, 0, 585, 586, 0, - 570, 578, 569, 538, 0, 529, 542, 520, 539, 518, - 503, 508, 0, 483, 481, 475, 462, 0, 539, 411, - - 1193, 443, 473, 565, 1193, 503, 406, 1193, 573, 417, - 432, 577, 438, 414, 370, 449, 0, 410, 382, 383, - 0, 392, 375, 369, 372, 358, 0, 0, 357, 0, - 332, 0, 0, 319, 0, 334, 0, 320, 0, 319, - 525, 1193, 531, 313, 593, 553, 597, 1193, 601, 569, - 473, 618, 622, 625, 243, 215, 0, 0, 0, 0, - 0, 0, 0, 189, 169, 0, 0, 180, 141, 0, - 640, 644, 647, 1193, 649, 659, 663, 1193, 668, 673, - 148, 134, 531, 36, 0, 0, 43, 0, 683, 675, - 1193, 679, 63, 687, 689, 0, 0, 698, 1193, 702, - - 1193, 712, 1193, 1193, 733, 742, 747, 754, 762, 771, - 776, 782, 791, 797, 799, 803, 812, 818, 820, 822, - 825, 831, 837, 843, 849, 855, 864, 873, 882, 891, - 900, 909, 918 + 0, 66, 1500, 1501, 67, 1501, 1501, 64, 1457, 62, + 80, 76, 95, 91, 1475, 1473, 1470, 1452, 0, 1465, + 80, 1449, 1455, 77, 1434, 97, 61, 64, 81, 1443, + 1432, 35, 1431, 100, 1444, 89, 93, 82, 108, 99, + 111, 121, 104, 172, 178, 1459, 182, 162, 183, 192, + 1477, 205, 223, 260, 202, 313, 1501, 224, 354, 103, + 223, 1501, 94, 0, 252, 1501, 1501, 1501, 1428, 0, + 1448, 210, 1440, 1429, 1440, 1418, 1427, 1410, 1414, 1418, + 1413, 1430, 120, 1411, 1423, 1407, 1418, 1405, 1420, 1421, + 1420, 135, 1407, 1401, 1407, 1403, 30, 202, 1404, 1399, + + 1412, 1403, 1394, 1393, 1407, 1391, 1392, 199, 1407, 1399, + 1406, 156, 1391, 1387, 1388, 1394, 1381, 1385, 1386, 202, + 1394, 1386, 1388, 1388, 1375, 255, 0, 211, 1501, 255, + 345, 1385, 1389, 1383, 1373, 1407, 283, 224, 225, 296, + 1501, 1423, 1422, 396, 1421, 227, 0, 293, 192, 1501, + 291, 1501, 293, 0, 403, 344, 0, 1372, 1389, 280, + 347, 412, 1418, 279, 1378, 1392, 1361, 1379, 0, 1361, + 1366, 1372, 1358, 1359, 295, 1354, 1372, 1370, 1351, 1357, + 1355, 1363, 1347, 1362, 1360, 1363, 1345, 1357, 1346, 1339, + 418, 1358, 1351, 1356, 1338, 1334, 1334, 1344, 1347, 1328, + + 0, 1330, 253, 1327, 1336, 1328, 1342, 1324, 1326, 1325, + 290, 1326, 1321, 1326, 1334, 1318, 1322, 1327, 1316, 1313, + 1329, 1331, 1313, 1366, 1365, 1316, 1322, 1312, 1324, 474, + 428, 1501, 1501, 441, 1358, 0, 488, 488, 1501, 1308, + 1332, 360, 1357, 294, 529, 0, 1501, 0, 1317, 0, + 1301, 1299, 1308, 1311, 0, 0, 1300, 1309, 301, 1308, + 1297, 1290, 1298, 1290, 0, 1288, 1291, 1291, 1300, 1300, + 1283, 1301, 0, 1283, 1280, 1321, 1324, 1321, 0, 1278, + 1283, 0, 1287, 1278, 1280, 1282, 1268, 1269, 1287, 1267, + 1285, 1284, 1275, 1274, 1277, 1266, 1275, 1278, 1258, 1263, + + 1273, 1260, 1271, 1270, 332, 447, 1258, 1264, 0, 1264, + 0, 1250, 1230, 1274, 447, 1232, 1222, 1173, 1170, 1164, + 1501, 267, 479, 1166, 1147, 1141, 1131, 352, 1501, 1182, + 1501, 1176, 1121, 0, 544, 581, 1174, 1119, 1137, 0, + 1135, 1131, 1117, 1127, 0, 1116, 1066, 1074, 1072, 1078, + 0, 1041, 1040, 1041, 1040, 0, 0, 1044, 1030, 0, + 0, 0, 0, 1041, 0, 1041, 1007, 1019, 1007, 1017, + 0, 996, 995, 997, 994, 1009, 336, 993, 993, 990, + 992, 0, 993, 977, 976, 982, 986, 978, 976, 976, + 958, 976, 979, 976, 0, 0, 936, 928, 0, 933, + + 1501, 511, 404, 922, 435, 926, 972, 968, 917, 921, + 911, 908, 887, 399, 616, 1501, 919, 0, 877, 856, + 862, 849, 833, 830, 810, 0, 809, 0, 803, 817, + 799, 0, 804, 0, 813, 791, 793, 0, 779, 0, + 0, 754, 744, 763, 762, 0, 758, 0, 753, 760, + 743, 0, 0, 740, 0, 738, 750, 0, 741, 747, + 0, 0, 0, 746, 719, 736, 549, 1501, 563, 514, + 461, 467, 577, 722, 738, 588, 693, 680, 687, 680, + 665, 651, 718, 663, 652, 0, 653, 651, 646, 0, + 0, 635, 619, 0, 628, 613, 0, 600, 596, 595, + + 587, 0, 578, 575, 542, 560, 559, 544, 551, 0, + 542, 540, 524, 499, 0, 614, 581, 1501, 617, 647, + 650, 1501, 550, 478, 1501, 683, 480, 478, 495, 484, + 473, 513, 512, 0, 465, 449, 427, 0, 439, 417, + 410, 407, 393, 0, 0, 389, 0, 346, 0, 0, + 330, 0, 340, 0, 329, 0, 319, 675, 1501, 686, + 337, 701, 688, 714, 1501, 718, 697, 524, 529, 567, + 732, 294, 266, 0, 0, 0, 0, 0, 0, 0, + 257, 237, 0, 0, 236, 151, 0, 728, 572, 708, + 1501, 735, 754, 739, 1501, 757, 760, 184, 180, 573, + + 92, 0, 0, 99, 0, 765, 768, 1501, 770, 69, + 772, 774, 0, 0, 786, 1501, 776, 1501, 779, 1501, + 1501, 813, 830, 840, 845, 858, 874, 884, 897, 907, + 914, 916, 931, 948, 960, 967, 976, 982, 999, 1011, + 1018, 1025, 1035, 1049, 1059, 1069, 1081, 1095, 1106, 1118, + 1133, 1150, 1166, 1176, 1185, 1196, 1212, 1223, 1240, 1257, + 1273, 1284, 1301 } ; -static const flex_int16_t yy_def[634] = +static const flex_int16_t yy_def[664] = { 0, - 604, 1, 604, 604, 604, 604, 604, 605, 606, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 604, 604, 604, 604, 605, 604, 608, - 604, 609, 604, 13, 604, 604, 604, 610, 56, 604, - 604, 604, 604, 611, 604, 604, 604, 604, 604, 607, - 607, 612, 613, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 604, 45, 45, 604, 127, 604, - 604, 604, 604, 604, 604, 604, 605, 605, 605, 604, - 604, 604, 604, 614, 604, 615, 604, 604, 604, 610, - 604, 610, 59, 604, 604, 611, 604, 607, 612, 604, - 616, 604, 604, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 617, 604, 604, 604, 604, 604, 604, 605, 604, - 604, 604, 618, 615, 604, 604, 604, 604, 607, 604, - 604, 612, 612, 619, 604, 620, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - - 607, 607, 607, 607, 607, 607, 617, 604, 604, 604, - 604, 604, 228, 604, 228, 604, 604, 604, 604, 604, - 605, 604, 604, 604, 604, 604, 607, 612, 612, 621, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 604, 604, 604, 604, - 604, 604, 622, 604, 604, 604, 604, 604, 604, 612, - - 329, 604, 623, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 604, - 604, 604, 624, 604, 604, 604, 604, 622, 604, 604, - 604, 604, 604, 604, 329, 625, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 604, 624, - - 604, 624, 626, 604, 604, 627, 604, 604, 604, 604, - 604, 604, 604, 604, 612, 604, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 626, 604, 626, 627, 604, 628, 604, 604, 604, 629, - 604, 604, 604, 604, 604, 604, 607, 607, 607, 607, - 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, - 604, 604, 628, 604, 628, 604, 629, 604, 629, 630, - 631, 604, 604, 604, 607, 607, 607, 607, 604, 630, - 604, 630, 631, 604, 632, 633, 607, 604, 604, 632, - - 604, 632, 604, 0, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604 + 621, 1, 621, 621, 621, 621, 621, 622, 623, 621, + 621, 621, 621, 624, 621, 621, 621, 621, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 621, 621, 621, 621, 622, 621, 626, + 621, 627, 621, 621, 628, 621, 621, 629, 621, 13, + 630, 621, 631, 632, 624, 621, 621, 621, 621, 625, + 625, 633, 634, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 621, 45, 45, 621, 45, + 45, 621, 621, 621, 621, 621, 621, 622, 622, 622, + 621, 621, 621, 621, 635, 54, 636, 628, 637, 621, + 629, 621, 629, 59, 621, 631, 632, 621, 625, 633, + 621, 638, 621, 621, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 639, 621, 621, 621, 621, 621, 621, + 622, 621, 621, 621, 640, 636, 621, 637, 621, 621, + 625, 621, 621, 633, 633, 641, 621, 642, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 639, 621, 621, 621, 621, 621, 230, + 621, 230, 230, 621, 621, 621, 621, 622, 621, 621, + 621, 621, 621, 625, 633, 633, 643, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + + 621, 644, 621, 621, 645, 621, 646, 621, 621, 621, + 621, 621, 621, 633, 336, 621, 647, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 648, 621, 644, 649, + 621, 645, 645, 621, 646, 621, 621, 621, 621, 621, + 621, 336, 650, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 648, 649, 621, 649, 651, + 621, 621, 652, 621, 621, 653, 621, 621, 654, 621, + 621, 633, 621, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 651, 621, 651, + 652, 655, 656, 657, 621, 653, 658, 621, 654, 654, + 621, 621, 621, 625, 625, 625, 625, 625, 625, 625, + 625, 625, 625, 625, 625, 625, 625, 655, 588, 656, + 621, 656, 657, 658, 621, 658, 659, 660, 621, 621, + + 621, 625, 625, 625, 625, 661, 659, 621, 659, 660, + 621, 662, 663, 625, 661, 621, 662, 621, 662, 621, + 0, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621 } ; -static const flex_int16_t yy_nxt[1255] = +static const flex_int16_t yy_nxt[1569] = { 0, 4, 5, 6, 7, 5, 8, 4, 9, 4, 4, - 10, 11, 12, 13, 14, 14, 15, 16, 4, 17, - 7, 18, 19, 19, 19, 19, 20, 19, 21, 22, - 19, 19, 23, 19, 19, 4, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 19, 19, 33, 34, 35, - 36, 37, 19, 38, 39, 40, 41, 42, 43, 19, - 19, 44, 47, 49, 44, 47, 45, 53, 594, 54, - 55, 55, 56, 56, 56, 57, 72, 85, 73, 58, - 46, 96, 97, 597, 91, 596, 59, 86, 65, 65, - 65, 76, 92, 50, 59, 93, 60, 60, 61, 62, - - 63, 77, 110, 78, 81, 117, 111, 62, 63, 79, - 202, 82, 118, 99, 62, 63, 203, 64, 83, 87, - 88, 100, 62, 63, 84, 104, 107, 101, 89, 108, - 90, 112, 109, 102, 113, 119, 105, 121, 123, 581, - 120, 47, 64, 106, 47, 125, 114, 115, 125, 116, - 126, 122, 49, 594, 124, 127, 128, 128, 129, 136, - 139, 139, 136, 137, 142, 145, 145, 130, 130, 130, - 143, 143, 160, 432, 128, 56, 56, 56, 151, 152, - 173, 174, 50, 153, 153, 153, 146, 183, 191, 433, - 59, 144, 147, 147, 147, 131, 152, 184, 132, 192, - - 588, 133, 161, 62, 63, 134, 207, 215, 393, 208, - 59, 146, 60, 60, 61, 49, 144, 216, 62, 63, - 56, 56, 56, 62, 63, 189, 49, 587, 604, 586, - 190, 62, 148, 149, 604, 149, 154, 154, 62, 63, - 155, 155, 155, 160, 585, 50, 62, 148, 149, 59, - 604, 61, 61, 61, 149, 59, 50, 65, 65, 65, - 160, 125, 62, 63, 125, 584, 126, 136, 62, 63, - 136, 137, 49, 161, 128, 128, 223, 62, 63, 583, - 229, 229, 231, 62, 63, 130, 130, 130, 232, 232, - 161, 59, 128, 145, 145, 61, 59, 245, 147, 147, - - 147, 49, 50, 240, 62, 63, 240, 235, 235, 62, - 63, 236, 236, 236, 151, 152, 151, 152, 545, 62, - 63, 155, 155, 155, 62, 63, 155, 155, 155, 285, - 241, 50, 152, 294, 152, 243, 243, 256, 286, 237, - 49, 237, 257, 258, 322, 295, 246, 160, 321, 321, - 323, 323, 338, 339, 237, 236, 236, 236, 160, 570, - 237, 236, 236, 236, 569, 453, 328, 328, 453, 240, - 50, 568, 240, 567, 149, 160, 149, 161, 244, 313, - 314, 314, 315, 387, 387, 388, 566, 503, 161, 149, - 503, 316, 316, 316, 378, 149, 241, 565, 314, 379, - - 160, 387, 501, 502, 380, 161, 381, 546, 400, 400, - 546, 564, 563, 501, 502, 314, 314, 394, 550, 317, - 502, 550, 318, 562, 561, 319, 316, 316, 316, 320, - 161, 502, 560, 314, 160, 455, 559, 558, 455, 508, - 508, 509, 401, 401, 401, 501, 502, 456, 456, 456, - 557, 401, 401, 401, 401, 401, 402, 508, 556, 450, - 451, 451, 450, 502, 161, 401, 401, 401, 401, 401, - 401, 452, 452, 452, 580, 542, 543, 580, 451, 465, - 465, 465, 450, 451, 451, 450, 555, 551, 465, 465, - 465, 465, 465, 543, 499, 499, 499, 450, 451, 451, - - 450, 451, 465, 465, 465, 465, 465, 465, 545, 452, - 452, 452, 455, 540, 539, 455, 451, 504, 505, 505, - 504, 506, 538, 537, 456, 456, 456, 542, 543, 456, - 456, 456, 595, 542, 543, 595, 505, 515, 515, 515, - 450, 451, 451, 450, 536, 543, 515, 515, 515, 515, - 515, 543, 499, 499, 499, 574, 575, 535, 534, 451, - 515, 515, 515, 515, 515, 515, 504, 505, 505, 504, - 506, 578, 579, 575, 547, 548, 548, 547, 552, 533, - 532, 553, 531, 530, 529, 505, 549, 549, 549, 579, - 554, 554, 554, 548, 571, 505, 505, 571, 547, 548, - - 548, 547, 547, 548, 548, 547, 572, 572, 572, 528, - 576, 576, 576, 505, 549, 549, 549, 548, 527, 552, - 526, 548, 553, 552, 525, 524, 553, 581, 523, 582, - 522, 554, 554, 554, 521, 554, 554, 554, 554, 554, - 554, 571, 505, 505, 571, 589, 505, 505, 589, 574, - 575, 574, 575, 572, 572, 572, 520, 572, 572, 572, - 505, 548, 548, 519, 505, 578, 579, 575, 518, 575, - 578, 579, 576, 576, 576, 591, 592, 591, 592, 548, - 517, 591, 592, 579, 589, 505, 505, 589, 579, 599, - 599, 601, 602, 592, 402, 592, 598, 598, 598, 592, - - 505, 505, 514, 505, 601, 602, 513, 599, 512, 602, - 511, 598, 598, 598, 601, 602, 510, 459, 505, 507, - 498, 497, 602, 496, 495, 494, 493, 492, 491, 490, - 489, 488, 602, 48, 48, 48, 48, 48, 48, 48, - 48, 48, 51, 487, 51, 51, 51, 51, 51, 51, - 51, 70, 70, 70, 70, 70, 138, 138, 138, 486, - 485, 138, 141, 484, 141, 141, 141, 141, 141, 141, - 141, 150, 150, 150, 150, 150, 150, 150, 150, 150, - 156, 156, 159, 159, 159, 159, 159, 159, 159, 159, - 159, 162, 483, 162, 162, 162, 162, 162, 162, 162, - - 233, 233, 233, 234, 234, 242, 242, 242, 482, 481, - 242, 242, 307, 307, 307, 307, 307, 307, 307, 307, - 307, 325, 325, 325, 329, 329, 330, 330, 403, 403, - 403, 458, 458, 458, 458, 458, 458, 458, 458, 458, - 466, 466, 466, 500, 500, 500, 500, 500, 500, 500, - 500, 500, 516, 516, 516, 541, 541, 541, 541, 541, - 541, 541, 541, 541, 544, 544, 544, 544, 544, 544, - 544, 544, 544, 573, 573, 573, 573, 573, 573, 573, - 573, 573, 577, 577, 577, 577, 577, 577, 577, 577, - 577, 590, 590, 590, 590, 590, 590, 590, 590, 590, - - 593, 593, 593, 593, 593, 593, 593, 593, 593, 600, - 600, 600, 600, 600, 600, 600, 600, 600, 603, 603, - 603, 603, 480, 479, 478, 477, 476, 475, 474, 473, - 472, 471, 470, 469, 468, 467, 402, 464, 463, 462, - 461, 460, 393, 459, 457, 454, 449, 448, 447, 446, - 445, 444, 443, 442, 441, 440, 439, 438, 437, 436, - 435, 434, 431, 430, 429, 428, 427, 426, 425, 424, - 423, 422, 421, 420, 419, 418, 417, 416, 415, 414, - 413, 412, 411, 410, 409, 408, 407, 406, 405, 404, - 402, 399, 324, 322, 398, 397, 396, 395, 604, 392, - - 391, 390, 389, 308, 386, 385, 384, 383, 382, 377, - 376, 375, 374, 373, 372, 371, 370, 369, 368, 367, - 366, 365, 364, 363, 362, 361, 360, 359, 358, 357, - 356, 355, 354, 353, 352, 351, 350, 349, 348, 347, - 346, 345, 344, 343, 342, 341, 340, 337, 336, 335, - 334, 333, 332, 331, 72, 327, 326, 324, 312, 311, - 310, 309, 222, 308, 306, 305, 304, 303, 302, 301, - 300, 299, 298, 297, 296, 293, 292, 291, 290, 289, - 288, 287, 284, 283, 282, 281, 280, 279, 278, 277, - 276, 275, 274, 273, 272, 271, 270, 269, 268, 267, - - 266, 265, 264, 263, 262, 261, 260, 259, 255, 254, - 253, 252, 251, 250, 249, 248, 247, 245, 239, 238, - 230, 230, 230, 228, 227, 226, 225, 224, 222, 221, - 220, 219, 218, 217, 214, 213, 212, 211, 210, 209, - 206, 205, 204, 201, 200, 199, 198, 197, 196, 195, - 194, 193, 188, 187, 186, 185, 182, 181, 180, 179, - 178, 177, 176, 175, 172, 171, 170, 169, 168, 167, - 166, 165, 164, 163, 158, 157, 140, 135, 103, 98, - 95, 94, 80, 75, 74, 71, 69, 68, 67, 66, - 52, 604, 3, 604, 604, 604, 604, 604, 604, 604, - - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604 + 10, 11, 12, 13, 14, 14, 14, 14, 14, 14, + 14, 14, 15, 16, 4, 17, 7, 18, 19, 19, + 19, 19, 20, 19, 21, 22, 19, 19, 23, 19, + 19, 4, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 19, 19, 33, 34, 35, 36, 37, 19, 38, + 39, 40, 41, 42, 43, 19, 19, 44, 47, 49, + 44, 47, 45, 53, 611, 54, 55, 55, 55, 55, + 55, 55, 55, 55, 57, 72, 190, 73, 58, 96, + 97, 191, 46, 56, 56, 56, 56, 56, 56, 56, + + 56, 56, 59, 155, 155, 50, 59, 85, 60, 60, + 60, 60, 60, 60, 60, 61, 61, 86, 87, 88, + 76, 62, 63, 91, 110, 62, 63, 89, 111, 90, + 77, 92, 78, 104, 93, 64, 62, 63, 79, 81, + 62, 63, 99, 621, 105, 614, 82, 613, 124, 107, + 100, 106, 108, 83, 112, 109, 101, 113, 117, 84, + 64, 119, 102, 122, 125, 118, 120, 49, 621, 114, + 115, 121, 116, 126, 174, 175, 126, 123, 127, 128, + 129, 129, 130, 47, 137, 598, 47, 137, 138, 611, + 184, 131, 131, 131, 131, 131, 131, 131, 131, 131, + + 185, 237, 237, 50, 129, 140, 140, 140, 140, 140, + 140, 140, 143, 59, 208, 161, 605, 209, 144, 144, + 144, 144, 144, 144, 144, 132, 152, 153, 133, 49, + 49, 134, 62, 63, 59, 135, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 145, 192, 62, 63, 203, + 153, 162, 217, 62, 63, 204, 126, 193, 621, 126, + 224, 127, 218, 59, 621, 50, 50, 621, 62, 63, + 145, 59, 407, 146, 146, 146, 146, 146, 146, 146, + 61, 61, 62, 63, 137, 161, 247, 137, 138, 604, + 62, 63, 621, 152, 153, 152, 153, 62, 63, 161, + + 147, 49, 621, 603, 59, 62, 63, 291, 621, 231, + 231, 231, 231, 231, 231, 231, 292, 153, 602, 153, + 621, 162, 601, 62, 63, 147, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 162, 600, 50, 62, 63, + 300, 248, 562, 62, 149, 150, 621, 150, 242, 225, + 258, 242, 301, 621, 621, 259, 260, 49, 62, 149, + 150, 242, 345, 346, 242, 587, 150, 154, 154, 154, + 154, 154, 154, 154, 154, 154, 239, 388, 239, 586, + 446, 243, 389, 585, 62, 149, 150, 390, 150, 391, + 584, 239, 621, 50, 243, 621, 447, 239, 621, 62, + + 149, 150, 621, 233, 161, 470, 583, 150, 470, 234, + 234, 234, 234, 234, 234, 234, 156, 156, 156, 156, + 156, 156, 156, 156, 156, 245, 245, 245, 245, 245, + 245, 245, 276, 49, 277, 582, 472, 278, 279, 472, + 162, 328, 328, 328, 328, 328, 328, 328, 329, 401, + 401, 402, 581, 580, 330, 330, 330, 330, 330, 330, + 330, 392, 520, 393, 280, 520, 394, 395, 472, 50, + 579, 472, 578, 401, 246, 320, 321, 321, 322, 563, + 621, 567, 563, 408, 567, 577, 576, 323, 323, 323, + 323, 323, 323, 323, 323, 323, 569, 621, 621, 570, + + 321, 238, 238, 238, 238, 238, 238, 238, 238, 238, + 575, 574, 467, 468, 468, 467, 518, 519, 161, 416, + 150, 324, 150, 573, 325, 597, 621, 326, 597, 621, + 569, 327, 621, 570, 161, 150, 621, 468, 572, 568, + 519, 150, 335, 335, 335, 335, 335, 335, 335, 161, + 467, 468, 468, 467, 162, 562, 557, 414, 414, 414, + 414, 414, 414, 414, 467, 468, 468, 467, 569, 556, + 162, 570, 598, 606, 612, 468, 606, 612, 521, 522, + 522, 521, 523, 518, 519, 162, 161, 555, 554, 468, + 525, 525, 526, 553, 415, 415, 415, 415, 415, 415, + + 415, 415, 415, 522, 552, 551, 550, 519, 549, 415, + 415, 415, 415, 415, 525, 467, 468, 468, 467, 518, + 519, 548, 162, 415, 415, 415, 415, 415, 415, 482, + 482, 482, 482, 482, 482, 482, 482, 482, 547, 546, + 468, 545, 544, 519, 482, 482, 482, 482, 482, 559, + 560, 521, 522, 522, 521, 523, 543, 542, 482, 482, + 482, 482, 482, 482, 532, 532, 532, 532, 532, 532, + 532, 532, 532, 560, 541, 540, 522, 559, 560, 532, + 532, 532, 532, 532, 564, 565, 565, 564, 559, 560, + 591, 592, 539, 532, 532, 532, 532, 532, 532, 595, + + 596, 560, 588, 522, 522, 588, 538, 537, 536, 565, + 591, 592, 560, 535, 592, 564, 565, 565, 564, 564, + 565, 565, 564, 596, 534, 416, 531, 522, 530, 588, + 522, 522, 588, 529, 592, 528, 599, 591, 592, 527, + 565, 595, 596, 476, 565, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 522, 621, 565, 565, 621, 595, + 596, 592, 608, 609, 524, 596, 606, 522, 522, 606, + 608, 609, 608, 609, 616, 616, 618, 619, 618, 619, + 565, 618, 619, 596, 515, 514, 609, 621, 522, 522, + 621, 522, 513, 512, 609, 511, 609, 510, 616, 509, + + 619, 508, 619, 507, 506, 619, 505, 504, 503, 502, + 501, 500, 522, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 51, 51, 499, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 65, 65, 65, + 498, 497, 65, 70, 70, 496, 70, 70, 70, 70, + 70, 70, 139, 139, 495, 494, 139, 493, 139, 492, + 491, 490, 139, 139, 142, 142, 489, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 142, 148, 148, 148, 488, 487, 148, 151, 151, 151, + + 151, 151, 151, 151, 151, 151, 151, 151, 151, 151, + 151, 151, 151, 151, 61, 61, 61, 486, 485, 61, + 156, 484, 156, 156, 157, 157, 416, 157, 157, 481, + 157, 160, 160, 160, 160, 160, 160, 160, 160, 160, + 160, 160, 160, 160, 160, 160, 160, 160, 163, 163, + 480, 163, 163, 163, 163, 163, 163, 163, 163, 163, + 163, 163, 163, 163, 163, 235, 479, 478, 235, 235, + 477, 235, 235, 407, 235, 236, 236, 476, 236, 236, + 474, 236, 238, 471, 238, 238, 244, 244, 466, 465, + 244, 464, 244, 463, 462, 461, 244, 244, 244, 314, + + 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, + 314, 314, 314, 314, 314, 314, 332, 460, 459, 332, + 332, 458, 332, 332, 457, 332, 336, 336, 456, 336, + 336, 455, 336, 337, 337, 454, 337, 337, 453, 337, + 417, 452, 451, 417, 417, 450, 417, 417, 449, 417, + 469, 469, 469, 448, 445, 444, 443, 469, 469, 469, + 473, 442, 441, 440, 439, 438, 437, 473, 473, 475, + 475, 475, 475, 475, 475, 475, 475, 475, 475, 475, + 475, 475, 475, 475, 475, 475, 483, 436, 435, 483, + 483, 434, 483, 483, 433, 483, 516, 516, 516, 432, + + 431, 430, 429, 516, 516, 516, 517, 517, 517, 517, + 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, + 517, 517, 517, 533, 428, 427, 533, 533, 426, 533, + 533, 425, 533, 558, 558, 558, 558, 558, 558, 558, + 558, 558, 558, 558, 558, 558, 558, 558, 558, 558, + 561, 561, 561, 561, 561, 561, 561, 561, 561, 561, + 561, 561, 561, 561, 561, 561, 561, 566, 566, 566, + 424, 423, 422, 421, 566, 566, 566, 571, 420, 419, + 418, 416, 413, 331, 571, 571, 589, 589, 589, 329, + 412, 411, 410, 589, 589, 589, 590, 590, 590, 590, + + 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, + 590, 590, 590, 593, 593, 593, 409, 621, 406, 405, + 593, 593, 593, 594, 594, 594, 594, 594, 594, 594, + 594, 594, 594, 594, 594, 594, 594, 594, 594, 594, + 607, 607, 607, 607, 607, 607, 607, 607, 607, 607, + 607, 607, 607, 607, 607, 607, 607, 610, 610, 610, + 610, 610, 610, 610, 610, 610, 610, 610, 610, 610, + 610, 610, 610, 610, 615, 615, 615, 404, 403, 315, + 400, 615, 615, 615, 617, 617, 617, 617, 617, 617, + 617, 617, 617, 617, 617, 617, 617, 617, 617, 617, + + 617, 620, 620, 620, 620, 620, 620, 620, 620, 399, + 398, 620, 397, 396, 387, 386, 385, 384, 383, 382, + 381, 380, 379, 378, 377, 376, 375, 374, 373, 372, + 371, 370, 369, 368, 367, 366, 365, 364, 363, 362, + 361, 360, 359, 358, 357, 356, 355, 354, 353, 352, + 351, 350, 349, 348, 347, 344, 343, 342, 341, 340, + 339, 338, 72, 334, 333, 331, 319, 318, 317, 316, + 224, 315, 313, 312, 311, 310, 309, 308, 307, 306, + 305, 304, 303, 302, 299, 298, 297, 296, 295, 294, + 293, 290, 289, 288, 287, 286, 285, 284, 283, 282, + + 281, 275, 274, 273, 272, 271, 270, 269, 268, 267, + 266, 265, 264, 263, 262, 261, 257, 256, 255, 254, + 253, 252, 251, 250, 249, 247, 241, 240, 232, 232, + 232, 230, 229, 228, 227, 226, 223, 222, 221, 220, + 219, 216, 215, 214, 213, 212, 211, 210, 207, 206, + 205, 202, 201, 200, 199, 198, 197, 196, 195, 194, + 189, 188, 187, 186, 183, 182, 181, 180, 179, 178, + 177, 176, 173, 172, 171, 170, 169, 168, 167, 166, + 165, 164, 159, 158, 141, 136, 103, 98, 95, 94, + 80, 75, 74, 71, 69, 68, 67, 66, 52, 621, + + 3, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621 } ; -static const flex_int16_t yy_chk[1255] = +static const flex_int16_t yy_chk[1569] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1029,150 +1144,188 @@ static const flex_int16_t yy_chk[1255] = 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, 2, 5, 2, 10, 593, 10, - 10, 10, 11, 11, 11, 12, 21, 27, 21, 12, - 2, 32, 32, 587, 29, 584, 14, 27, 14, 14, - 14, 24, 29, 8, 13, 29, 13, 13, 13, 14, - - 14, 24, 38, 24, 26, 40, 38, 13, 13, 24, - 108, 26, 40, 34, 14, 14, 108, 13, 26, 28, - 28, 34, 13, 13, 26, 36, 37, 34, 28, 37, - 28, 39, 37, 34, 39, 41, 36, 42, 43, 582, - 41, 47, 13, 36, 47, 44, 39, 39, 44, 39, - 44, 42, 48, 581, 43, 45, 45, 45, 45, 49, - 50, 50, 49, 49, 52, 54, 54, 45, 45, 45, - 52, 52, 72, 367, 45, 53, 53, 53, 58, 58, - 83, 83, 48, 59, 59, 59, 54, 92, 98, 367, - 55, 52, 55, 55, 55, 45, 58, 92, 45, 98, - - 569, 45, 72, 55, 55, 45, 112, 119, 315, 112, - 60, 54, 60, 60, 60, 137, 52, 119, 55, 55, - 56, 56, 56, 60, 60, 97, 138, 568, 127, 565, - 97, 56, 56, 56, 127, 56, 63, 63, 60, 60, - 63, 63, 63, 159, 564, 137, 56, 56, 56, 61, - 315, 61, 61, 61, 56, 65, 138, 65, 65, 65, - 242, 125, 61, 61, 125, 556, 125, 136, 65, 65, - 136, 136, 139, 159, 130, 130, 130, 61, 61, 555, - 139, 139, 143, 65, 65, 130, 130, 130, 143, 143, - 242, 145, 130, 145, 145, 145, 147, 163, 147, 147, - - 147, 321, 139, 160, 145, 145, 160, 148, 148, 147, - 147, 148, 148, 148, 150, 150, 152, 152, 544, 145, - 145, 154, 154, 154, 147, 147, 155, 155, 155, 202, - 160, 321, 150, 210, 152, 161, 161, 174, 202, 155, - 229, 155, 174, 174, 232, 210, 163, 400, 229, 229, - 232, 232, 257, 257, 155, 235, 235, 235, 243, 540, - 155, 236, 236, 236, 538, 389, 243, 243, 389, 240, - 229, 536, 240, 534, 236, 515, 236, 400, 161, 228, - 228, 228, 228, 308, 308, 308, 531, 454, 243, 236, - 454, 228, 228, 228, 299, 236, 240, 529, 228, 299, - - 328, 308, 453, 453, 299, 515, 299, 507, 328, 328, - 507, 526, 525, 500, 500, 316, 316, 316, 510, 228, - 453, 510, 228, 524, 523, 228, 316, 316, 316, 228, - 328, 500, 522, 316, 329, 391, 520, 519, 391, 459, - 459, 459, 329, 329, 329, 502, 502, 391, 391, 391, - 518, 329, 329, 329, 329, 329, 516, 459, 514, 388, - 388, 388, 388, 502, 329, 329, 329, 329, 329, 329, - 329, 388, 388, 388, 551, 503, 503, 551, 388, 401, - 401, 401, 450, 450, 450, 450, 513, 511, 401, 401, - 401, 401, 401, 503, 450, 450, 450, 452, 452, 452, - - 452, 450, 401, 401, 401, 401, 401, 401, 506, 452, - 452, 452, 455, 497, 496, 455, 452, 456, 456, 456, - 456, 456, 495, 494, 455, 455, 455, 541, 541, 456, - 456, 456, 583, 543, 543, 583, 456, 465, 465, 465, - 499, 499, 499, 499, 492, 541, 465, 465, 465, 465, - 465, 543, 499, 499, 499, 546, 546, 491, 490, 499, - 465, 465, 465, 465, 465, 465, 504, 504, 504, 504, - 504, 550, 550, 546, 509, 509, 509, 509, 512, 489, - 488, 512, 487, 486, 484, 504, 509, 509, 509, 550, - 512, 512, 512, 509, 545, 545, 545, 545, 547, 547, - - 547, 547, 549, 549, 549, 549, 545, 545, 545, 483, - 547, 547, 547, 545, 549, 549, 549, 547, 482, 552, - 481, 549, 552, 553, 479, 478, 553, 553, 476, 554, - 475, 552, 552, 552, 472, 553, 553, 553, 554, 554, - 554, 571, 571, 571, 571, 572, 572, 572, 572, 573, - 573, 575, 575, 571, 571, 571, 471, 572, 572, 572, - 571, 576, 576, 470, 572, 577, 577, 573, 468, 575, - 579, 579, 576, 576, 576, 580, 580, 590, 590, 576, - 467, 592, 592, 577, 589, 589, 589, 589, 579, 594, - 594, 595, 595, 580, 466, 590, 589, 589, 589, 592, - - 598, 598, 464, 589, 600, 600, 463, 594, 462, 595, - 461, 598, 598, 598, 602, 602, 460, 458, 598, 457, - 449, 448, 600, 447, 446, 445, 443, 442, 440, 437, - 436, 435, 602, 605, 605, 605, 605, 605, 605, 605, - 605, 605, 606, 433, 606, 606, 606, 606, 606, 606, - 606, 607, 607, 607, 607, 607, 608, 608, 608, 431, - 430, 608, 609, 429, 609, 609, 609, 609, 609, 609, - 609, 610, 610, 610, 610, 610, 610, 610, 610, 610, - 611, 611, 612, 612, 612, 612, 612, 612, 612, 612, - 612, 613, 428, 613, 613, 613, 613, 613, 613, 613, - - 614, 614, 614, 615, 615, 616, 616, 616, 425, 423, - 616, 616, 617, 617, 617, 617, 617, 617, 617, 617, - 617, 618, 618, 618, 619, 619, 620, 620, 621, 621, - 621, 622, 622, 622, 622, 622, 622, 622, 622, 622, - 623, 623, 623, 624, 624, 624, 624, 624, 624, 624, - 624, 624, 625, 625, 625, 626, 626, 626, 626, 626, - 626, 626, 626, 626, 627, 627, 627, 627, 627, 627, - 627, 627, 627, 628, 628, 628, 628, 628, 628, 628, - 628, 628, 629, 629, 629, 629, 629, 629, 629, 629, - 629, 630, 630, 630, 630, 630, 630, 630, 630, 630, - - 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, - 632, 632, 632, 632, 632, 632, 632, 632, 633, 633, - 633, 633, 422, 421, 419, 417, 416, 415, 413, 411, - 410, 409, 408, 407, 406, 405, 403, 399, 398, 397, - 396, 395, 394, 393, 392, 390, 386, 384, 383, 381, - 380, 379, 378, 377, 376, 375, 374, 373, 371, 370, - 369, 368, 366, 365, 364, 363, 362, 360, 359, 358, - 357, 356, 354, 352, 351, 348, 347, 346, 345, 343, - 342, 341, 340, 339, 337, 336, 335, 334, 332, 331, - 330, 326, 325, 323, 320, 319, 318, 317, 313, 312, - - 311, 310, 309, 307, 306, 305, 303, 301, 300, 298, - 297, 296, 295, 294, 293, 292, 291, 290, 289, 288, - 287, 286, 285, 284, 283, 282, 281, 280, 279, 278, - 277, 275, 274, 273, 272, 270, 269, 268, 267, 266, - 265, 264, 262, 261, 260, 259, 258, 256, 255, 252, - 251, 250, 249, 247, 241, 239, 238, 233, 227, 226, + 1, 1, 1, 1, 1, 1, 1, 2, 5, 8, + 2, 5, 2, 10, 610, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 12, 21, 97, 21, 12, 32, + 32, 97, 2, 11, 11, 11, 11, 11, 11, 11, + + 11, 11, 14, 63, 63, 8, 13, 27, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 27, 28, 28, + 24, 14, 14, 29, 38, 13, 13, 28, 38, 28, + 24, 29, 24, 36, 29, 13, 14, 14, 24, 26, + 13, 13, 34, 60, 36, 604, 26, 601, 43, 37, + 34, 36, 37, 26, 39, 37, 34, 39, 40, 26, + 13, 41, 34, 42, 43, 40, 41, 48, 60, 39, + 39, 41, 39, 44, 83, 83, 44, 42, 44, 45, + 45, 45, 45, 47, 49, 599, 47, 49, 49, 598, + 92, 45, 45, 45, 45, 45, 45, 45, 45, 45, + + 92, 149, 149, 48, 45, 50, 50, 50, 50, 50, + 50, 50, 52, 55, 112, 72, 586, 112, 52, 52, + 52, 52, 52, 52, 52, 45, 58, 58, 45, 138, + 139, 45, 55, 55, 61, 45, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 52, 98, 55, 55, 108, + 58, 72, 120, 61, 61, 108, 126, 98, 128, 126, + 130, 126, 120, 65, 128, 138, 139, 146, 61, 61, + 52, 54, 322, 54, 54, 54, 54, 54, 54, 54, + 54, 54, 65, 65, 137, 160, 164, 137, 137, 585, + 54, 54, 146, 151, 151, 153, 153, 65, 65, 244, + + 54, 140, 130, 582, 148, 54, 54, 203, 130, 140, + 140, 140, 140, 140, 140, 140, 203, 151, 581, 153, + 322, 160, 573, 148, 148, 54, 56, 56, 56, 56, + 56, 56, 56, 56, 56, 244, 572, 140, 148, 148, + 211, 164, 561, 56, 56, 56, 131, 56, 161, 131, + 175, 161, 211, 156, 156, 175, 175, 328, 56, 56, + 56, 242, 259, 259, 242, 557, 56, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 156, 305, 156, 555, + 377, 161, 305, 553, 59, 59, 59, 305, 59, 305, + 551, 156, 131, 328, 242, 131, 377, 156, 131, 59, + + 59, 59, 131, 144, 414, 403, 548, 59, 403, 144, + 144, 144, 144, 144, 144, 144, 155, 155, 155, 155, + 155, 155, 155, 155, 155, 162, 162, 162, 162, 162, + 162, 162, 191, 231, 191, 546, 405, 191, 191, 405, + 414, 231, 231, 231, 231, 231, 231, 231, 234, 315, + 315, 315, 543, 542, 234, 234, 234, 234, 234, 234, + 234, 306, 471, 306, 191, 471, 306, 306, 472, 231, + 541, 472, 540, 315, 162, 230, 230, 230, 230, 524, + 323, 527, 524, 323, 527, 539, 537, 230, 230, 230, + 230, 230, 230, 230, 230, 230, 529, 238, 238, 529, + + 230, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 536, 535, 402, 402, 402, 402, 470, 470, 532, 533, + 238, 230, 238, 531, 230, 568, 323, 230, 568, 323, + 569, 230, 323, 569, 245, 238, 323, 402, 530, 528, + 470, 238, 245, 245, 245, 245, 245, 245, 245, 335, + 467, 467, 467, 467, 532, 523, 514, 335, 335, 335, + 335, 335, 335, 335, 469, 469, 469, 469, 570, 513, + 245, 570, 570, 589, 600, 467, 589, 600, 473, 473, + 473, 473, 473, 517, 517, 335, 336, 512, 511, 469, + 476, 476, 476, 509, 336, 336, 336, 336, 336, 336, + + 336, 336, 336, 473, 508, 507, 506, 517, 505, 336, + 336, 336, 336, 336, 476, 516, 516, 516, 516, 519, + 519, 504, 336, 336, 336, 336, 336, 336, 336, 415, + 415, 415, 415, 415, 415, 415, 415, 415, 503, 501, + 516, 500, 499, 519, 415, 415, 415, 415, 415, 520, + 520, 521, 521, 521, 521, 521, 498, 496, 415, 415, + 415, 415, 415, 415, 482, 482, 482, 482, 482, 482, + 482, 482, 482, 520, 495, 493, 521, 558, 558, 482, + 482, 482, 482, 482, 526, 526, 526, 526, 560, 560, + 563, 563, 492, 482, 482, 482, 482, 482, 482, 567, + + 567, 558, 562, 562, 562, 562, 489, 488, 487, 526, + 590, 590, 560, 485, 563, 564, 564, 564, 564, 566, + 566, 566, 566, 567, 484, 483, 481, 562, 480, 588, + 588, 588, 588, 479, 590, 478, 571, 592, 592, 477, + 564, 594, 594, 475, 566, 571, 571, 571, 571, 571, + 571, 571, 571, 571, 588, 593, 593, 593, 593, 596, + 596, 592, 597, 597, 474, 594, 606, 606, 606, 606, + 607, 607, 609, 609, 611, 611, 612, 612, 617, 617, + 593, 619, 619, 596, 466, 465, 597, 615, 615, 615, + 615, 606, 464, 460, 607, 459, 609, 457, 611, 456, + + 612, 454, 617, 451, 450, 619, 449, 447, 445, 444, + 443, 442, 615, 622, 622, 622, 622, 622, 622, 622, + 622, 622, 622, 622, 622, 622, 622, 622, 622, 622, + 623, 623, 439, 623, 623, 623, 623, 623, 623, 623, + 623, 623, 623, 623, 623, 623, 623, 624, 624, 624, + 437, 436, 624, 625, 625, 435, 625, 625, 625, 625, + 625, 625, 626, 626, 433, 431, 626, 430, 626, 429, + 427, 425, 626, 626, 627, 627, 424, 627, 627, 627, + 627, 627, 627, 627, 627, 627, 627, 627, 627, 627, + 627, 628, 628, 628, 423, 422, 628, 629, 629, 629, + + 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, + 629, 629, 629, 629, 630, 630, 630, 421, 420, 630, + 631, 419, 631, 631, 632, 632, 417, 632, 632, 413, + 632, 633, 633, 633, 633, 633, 633, 633, 633, 633, + 633, 633, 633, 633, 633, 633, 633, 633, 634, 634, + 412, 634, 634, 634, 634, 634, 634, 634, 634, 634, + 634, 634, 634, 634, 634, 635, 411, 410, 635, 635, + 409, 635, 635, 408, 635, 636, 636, 407, 636, 636, + 406, 636, 637, 404, 637, 637, 638, 638, 400, 398, + 638, 397, 638, 394, 393, 392, 638, 638, 638, 639, + + 639, 639, 639, 639, 639, 639, 639, 639, 639, 639, + 639, 639, 639, 639, 639, 639, 640, 391, 390, 640, + 640, 389, 640, 640, 388, 640, 641, 641, 387, 641, + 641, 386, 641, 642, 642, 385, 642, 642, 384, 642, + 643, 383, 381, 643, 643, 380, 643, 643, 379, 643, + 644, 644, 644, 378, 376, 375, 374, 644, 644, 644, + 645, 373, 372, 370, 369, 368, 367, 645, 645, 646, + 646, 646, 646, 646, 646, 646, 646, 646, 646, 646, + 646, 646, 646, 646, 646, 646, 647, 366, 364, 647, + 647, 359, 647, 647, 358, 647, 648, 648, 648, 355, + + 354, 353, 352, 648, 648, 648, 649, 649, 649, 649, + 649, 649, 649, 649, 649, 649, 649, 649, 649, 649, + 649, 649, 649, 650, 350, 349, 650, 650, 348, 650, + 650, 347, 650, 651, 651, 651, 651, 651, 651, 651, + 651, 651, 651, 651, 651, 651, 651, 651, 651, 651, + 652, 652, 652, 652, 652, 652, 652, 652, 652, 652, + 652, 652, 652, 652, 652, 652, 652, 653, 653, 653, + 346, 344, 343, 342, 653, 653, 653, 654, 341, 339, + 338, 337, 333, 332, 654, 654, 655, 655, 655, 330, + 327, 326, 325, 655, 655, 655, 656, 656, 656, 656, + + 656, 656, 656, 656, 656, 656, 656, 656, 656, 656, + 656, 656, 656, 657, 657, 657, 324, 320, 319, 318, + 657, 657, 657, 658, 658, 658, 658, 658, 658, 658, + 658, 658, 658, 658, 658, 658, 658, 658, 658, 658, + 659, 659, 659, 659, 659, 659, 659, 659, 659, 659, + 659, 659, 659, 659, 659, 659, 659, 660, 660, 660, + 660, 660, 660, 660, 660, 660, 660, 660, 660, 660, + 660, 660, 660, 660, 661, 661, 661, 317, 316, 314, + 313, 661, 661, 661, 662, 662, 662, 662, 662, 662, + 662, 662, 662, 662, 662, 662, 662, 662, 662, 662, + + 662, 663, 663, 663, 663, 663, 663, 663, 663, 312, + 310, 663, 308, 307, 304, 303, 302, 301, 300, 299, + 298, 297, 296, 295, 294, 293, 292, 291, 290, 289, + 288, 287, 286, 285, 284, 283, 281, 280, 278, 277, + 276, 275, 274, 272, 271, 270, 269, 268, 267, 266, + 264, 263, 262, 261, 260, 258, 257, 254, 253, 252, + 251, 249, 243, 241, 240, 235, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 218, 217, 216, - 215, 214, 213, 212, 211, 209, 208, 207, 206, 205, - 204, 203, 201, 199, 198, 197, 196, 195, 194, 193, - 192, 191, 190, 189, 188, 187, 186, 185, 184, 183, - - 182, 181, 180, 179, 178, 177, 176, 175, 173, 172, - 171, 170, 169, 167, 166, 165, 164, 162, 158, 157, - 144, 142, 141, 135, 134, 133, 132, 131, 129, 124, - 123, 122, 121, 120, 118, 117, 116, 115, 114, 113, - 111, 110, 109, 107, 106, 105, 104, 103, 102, 101, - 100, 99, 96, 95, 94, 93, 91, 90, 89, 88, - 87, 86, 85, 84, 82, 81, 80, 79, 78, 77, - 76, 75, 74, 73, 71, 69, 51, 46, 35, 33, - 31, 30, 25, 23, 22, 20, 18, 17, 16, 15, - 9, 3, 604, 604, 604, 604, 604, 604, 604, 604, - - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 604, 604 + 215, 214, 213, 212, 210, 209, 208, 207, 206, 205, + 204, 202, 200, 199, 198, 197, 196, 195, 194, 193, + + 192, 190, 189, 188, 187, 186, 185, 184, 183, 182, + 181, 180, 179, 178, 177, 176, 174, 173, 172, 171, + 170, 168, 167, 166, 165, 163, 159, 158, 145, 143, + 142, 136, 135, 134, 133, 132, 125, 124, 123, 122, + 121, 119, 118, 117, 116, 115, 114, 113, 111, 110, + 109, 107, 106, 105, 104, 103, 102, 101, 100, 99, + 96, 95, 94, 93, 91, 90, 89, 88, 87, 86, + 85, 84, 82, 81, 80, 79, 78, 77, 76, 75, + 74, 73, 71, 69, 51, 46, 35, 33, 31, 30, + 25, 23, 22, 20, 18, 17, 16, 15, 9, 3, + + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, + 621, 621, 621, 621, 621, 621, 621, 621 } ; -static yy_state_type yy_last_accepting_state; -static char *yy_last_accepting_cpos; - extern int yy_flex_debug; int yy_flex_debug = 0; -/* The intent behind this definition is that it'll catch - * any uses of REJECT which flex missed. - */ -#define REJECT reject_used_but_not_detected +static yy_state_type *yy_state_buf=0, *yy_state_ptr=0; +static char *yy_full_match; +static int yy_lp; +#define REJECT \ +{ \ +*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */ \ +yy_cp = (yy_full_match); /* restore poss. backed-over text */ \ +++(yy_lp); \ +goto find_rule; \ +} + #define yymore() yymore_used_but_not_detected #define YY_MORE_ADJ 0 #define YY_RESTORE_YY_MORE_OFFSET @@ -1297,9 +1450,9 @@ static AST_Decl * idl_find_node (const char *); #undef ECHO #endif -#line 1303 "fe/idl.yy.cpp" +#line 1456 "fe/idl.yy.cpp" /* SO we don't choke on files that use \r\n */ -#line 1305 "fe/idl.yy.cpp" +#line 1458 "fe/idl.yy.cpp" #define INITIAL 0 @@ -1500,6 +1653,12 @@ YY_DECL YY_USER_INIT; #endif + /* Create the reject buffer large enough to save one state per allowed character. */ + if ( ! (yy_state_buf) ) + (yy_state_buf) = (yy_state_type *)yyalloc(YY_STATE_BUF_SIZE ); + if ( ! (yy_state_buf) ) + YY_FATAL_ERROR( "out of dynamic memory in yylex()" ); + if ( ! (yy_start) ) (yy_start) = 1; /* first start state */ @@ -1522,7 +1681,7 @@ YY_DECL #line 123 "fe/idl.ll" -#line 1528 "fe/idl.yy.cpp" +#line 1687 "fe/idl.yy.cpp" while ( /*CONSTCOND*/1 ) /* loops until end-of-file is reached */ { @@ -1538,30 +1697,46 @@ YY_DECL yy_current_state = (yy_start); yy_current_state += YY_AT_BOL(); + + (yy_state_ptr) = (yy_state_buf); + *(yy_state_ptr)++ = yy_current_state; + yy_match: do { YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 605 ) + if ( yy_current_state >= 622 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + *(yy_state_ptr)++ = yy_current_state; ++yy_cp; } - while ( yy_current_state != 604 ); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); + while ( yy_current_state != 621 ); yy_find_action: - yy_act = yy_accept[yy_current_state]; + yy_current_state = *--(yy_state_ptr); + (yy_lp) = yy_accept[yy_current_state]; + +find_rule: /* we branch to this label when backing up */ + + for ( ; ; ) /* until we find what rule we matched */ + { + if ( (yy_lp) && (yy_lp) < yy_accept[yy_current_state + 1] ) + { + yy_act = yy_acclist[(yy_lp)]; + { + (yy_full_match) = yy_cp; + break; + } + } + --yy_cp; + yy_current_state = *--(yy_state_ptr); + (yy_lp) = yy_accept[yy_current_state]; + } YY_DO_BEFORE_ACTION; @@ -1569,13 +1744,6 @@ YY_DECL switch ( yy_act ) { /* beginning of action switch */ - case 0: /* must back up */ - /* undo the effects of YY_DO_BEFORE_ACTION */ - *yy_cp = (yy_hold_char); - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); - goto yy_find_action; - case 1: YY_RULE_SETUP #line 125 "fe/idl.ll" @@ -1749,215 +1917,311 @@ return IDL_ABSTRACT; case 35: YY_RULE_SETUP #line 160 "fe/idl.ll" -return IDL_CUSTOM; +{ + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_INT8; + else + { + REJECT; + } +} YY_BREAK case 36: YY_RULE_SETUP -#line 161 "fe/idl.ll" -return IDL_FACTORY; +#line 168 "fe/idl.ll" +{ + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_UINT8; + else + { + REJECT; + } +} YY_BREAK case 37: YY_RULE_SETUP -#line 162 "fe/idl.ll" -return IDL_PRIVATE; +#line 176 "fe/idl.ll" +{ + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_INT16; + else + { + REJECT; + } +} YY_BREAK case 38: YY_RULE_SETUP -#line 163 "fe/idl.ll" -return IDL_PUBLIC; +#line 184 "fe/idl.ll" +{ + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_UINT16; + else + { + REJECT; + } +} YY_BREAK case 39: YY_RULE_SETUP -#line 164 "fe/idl.ll" -return IDL_SUPPORTS; +#line 192 "fe/idl.ll" +{ + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_INT32; + else + { + REJECT; + } +} YY_BREAK case 40: YY_RULE_SETUP -#line 165 "fe/idl.ll" -return IDL_TRUNCATABLE; +#line 200 "fe/idl.ll" +{ + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_UINT32; + else + { + REJECT; + } +} YY_BREAK case 41: YY_RULE_SETUP -#line 166 "fe/idl.ll" -return IDL_VALUETYPE; +#line 208 "fe/idl.ll" +{ + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_INT64; + else + { + REJECT; + } +} YY_BREAK case 42: YY_RULE_SETUP -#line 168 "fe/idl.ll" -return IDL_COMPONENT; +#line 216 "fe/idl.ll" +{ + if (idl_global->idl_version_ >= IDL_VERSION_4) + return IDL_UINT64; + else + { + REJECT; + } +} YY_BREAK case 43: YY_RULE_SETUP -#line 169 "fe/idl.ll" -return IDL_CONSUMES; +#line 225 "fe/idl.ll" +return IDL_CUSTOM; YY_BREAK case 44: YY_RULE_SETUP -#line 170 "fe/idl.ll" -return IDL_EMITS; +#line 226 "fe/idl.ll" +return IDL_FACTORY; YY_BREAK case 45: YY_RULE_SETUP -#line 171 "fe/idl.ll" -return IDL_EVENTTYPE; +#line 227 "fe/idl.ll" +return IDL_PRIVATE; YY_BREAK case 46: YY_RULE_SETUP -#line 172 "fe/idl.ll" -return IDL_FINDER; +#line 228 "fe/idl.ll" +return IDL_PUBLIC; YY_BREAK case 47: YY_RULE_SETUP -#line 173 "fe/idl.ll" -return IDL_GETRAISES; +#line 229 "fe/idl.ll" +return IDL_SUPPORTS; YY_BREAK case 48: YY_RULE_SETUP -#line 174 "fe/idl.ll" -return IDL_HOME; +#line 230 "fe/idl.ll" +return IDL_TRUNCATABLE; YY_BREAK case 49: YY_RULE_SETUP -#line 175 "fe/idl.ll" -return IDL_IMPORT; +#line 231 "fe/idl.ll" +return IDL_VALUETYPE; YY_BREAK case 50: YY_RULE_SETUP -#line 176 "fe/idl.ll" -return IDL_MULTIPLE; +#line 233 "fe/idl.ll" +return IDL_COMPONENT; YY_BREAK case 51: YY_RULE_SETUP -#line 177 "fe/idl.ll" -return IDL_PRIMARYKEY; +#line 234 "fe/idl.ll" +return IDL_CONSUMES; YY_BREAK case 52: YY_RULE_SETUP -#line 178 "fe/idl.ll" -return IDL_PROVIDES; +#line 235 "fe/idl.ll" +return IDL_EMITS; YY_BREAK case 53: YY_RULE_SETUP -#line 179 "fe/idl.ll" -return IDL_PUBLISHES; +#line 236 "fe/idl.ll" +return IDL_EVENTTYPE; YY_BREAK case 54: YY_RULE_SETUP -#line 180 "fe/idl.ll" -return IDL_SETRAISES; +#line 237 "fe/idl.ll" +return IDL_FINDER; YY_BREAK case 55: YY_RULE_SETUP -#line 181 "fe/idl.ll" -return IDL_TYPEID; +#line 238 "fe/idl.ll" +return IDL_GETRAISES; YY_BREAK case 56: YY_RULE_SETUP -#line 182 "fe/idl.ll" -return IDL_TYPEPREFIX; +#line 239 "fe/idl.ll" +return IDL_HOME; YY_BREAK case 57: YY_RULE_SETUP -#line 183 "fe/idl.ll" -return IDL_USES; +#line 240 "fe/idl.ll" +return IDL_IMPORT; YY_BREAK case 58: YY_RULE_SETUP -#line 184 "fe/idl.ll" -return IDL_MANAGES; +#line 241 "fe/idl.ll" +return IDL_MULTIPLE; YY_BREAK case 59: YY_RULE_SETUP -#line 186 "fe/idl.ll" -return IDL_TYPENAME; +#line 242 "fe/idl.ll" +return IDL_PRIMARYKEY; YY_BREAK case 60: YY_RULE_SETUP -#line 187 "fe/idl.ll" -return IDL_PORT; +#line 243 "fe/idl.ll" +return IDL_PROVIDES; YY_BREAK case 61: YY_RULE_SETUP -#line 188 "fe/idl.ll" -return IDL_MIRRORPORT; +#line 244 "fe/idl.ll" +return IDL_PUBLISHES; YY_BREAK case 62: YY_RULE_SETUP -#line 189 "fe/idl.ll" -return IDL_PORTTYPE; +#line 245 "fe/idl.ll" +return IDL_SETRAISES; YY_BREAK case 63: YY_RULE_SETUP -#line 190 "fe/idl.ll" -return IDL_CONNECTOR; +#line 246 "fe/idl.ll" +return IDL_TYPEID; YY_BREAK case 64: YY_RULE_SETUP -#line 191 "fe/idl.ll" -return IDL_ALIAS; +#line 247 "fe/idl.ll" +return IDL_TYPEPREFIX; YY_BREAK case 65: YY_RULE_SETUP -#line 193 "fe/idl.ll" -return IDL_TRUETOK; +#line 248 "fe/idl.ll" +return IDL_USES; YY_BREAK case 66: YY_RULE_SETUP -#line 194 "fe/idl.ll" -return IDL_FALSETOK; +#line 249 "fe/idl.ll" +return IDL_MANAGES; YY_BREAK case 67: YY_RULE_SETUP -#line 196 "fe/idl.ll" -return IDL_INOUT; +#line 251 "fe/idl.ll" +return IDL_TYPENAME; YY_BREAK case 68: YY_RULE_SETUP -#line 197 "fe/idl.ll" -return IDL_IN; +#line 252 "fe/idl.ll" +return IDL_PORT; YY_BREAK case 69: YY_RULE_SETUP -#line 198 "fe/idl.ll" -return IDL_OUT; +#line 253 "fe/idl.ll" +return IDL_MIRRORPORT; YY_BREAK case 70: YY_RULE_SETUP -#line 199 "fe/idl.ll" -return IDL_ONEWAY; +#line 254 "fe/idl.ll" +return IDL_PORTTYPE; YY_BREAK case 71: YY_RULE_SETUP -#line 201 "fe/idl.ll" -return IDL_LEFT_SHIFT; +#line 255 "fe/idl.ll" +return IDL_CONNECTOR; YY_BREAK case 72: YY_RULE_SETUP -#line 202 "fe/idl.ll" -return IDL_RIGHT_SHIFT; +#line 256 "fe/idl.ll" +return IDL_ALIAS; YY_BREAK case 73: YY_RULE_SETUP -#line 203 "fe/idl.ll" +#line 258 "fe/idl.ll" +return IDL_TRUETOK; + YY_BREAK +case 74: +YY_RULE_SETUP +#line 259 "fe/idl.ll" +return IDL_FALSETOK; + YY_BREAK +case 75: +YY_RULE_SETUP +#line 261 "fe/idl.ll" +return IDL_INOUT; + YY_BREAK +case 76: +YY_RULE_SETUP +#line 262 "fe/idl.ll" +return IDL_IN; + YY_BREAK +case 77: +YY_RULE_SETUP +#line 263 "fe/idl.ll" +return IDL_OUT; + YY_BREAK +case 78: +YY_RULE_SETUP +#line 264 "fe/idl.ll" +return IDL_ONEWAY; + YY_BREAK +case 79: +YY_RULE_SETUP +#line 266 "fe/idl.ll" +return IDL_LEFT_SHIFT; + YY_BREAK +case 80: +YY_RULE_SETUP +#line 267 "fe/idl.ll" +return IDL_RIGHT_SHIFT; + YY_BREAK +case 81: +YY_RULE_SETUP +#line 268 "fe/idl.ll" { tao_yylval.strval = ACE::strnew ("::"); return IDL_SCOPE_DELIMITOR; } YY_BREAK -case 74: -/* rule 74 can match eol */ +case 82: +/* rule 82 can match eol */ YY_RULE_SETUP -#line 208 "fe/idl.ll" +#line 273 "fe/idl.ll" return IDL_ANNOTATION_DECL; // Allow annotation names that start with "annotation" YY_BREAK -case 75: +case 83: YY_RULE_SETUP -#line 209 "fe/idl.ll" +#line 274 "fe/idl.ll" return IDL_ANNOTATION_SYMBOL; YY_BREAK -case 76: +case 84: YY_RULE_SETUP -#line 211 "fe/idl.ll" +#line 276 "fe/idl.ll" { // Make sure that this identifier is not a C++ keyword. If it is, // prepend it with a _cxx_. Lookup in the perfect hash table for C++ @@ -1991,82 +2255,82 @@ YY_RULE_SETUP return IDENTIFIER; } YY_BREAK -case 77: +case 85: YY_RULE_SETUP -#line 244 "fe/idl.ll" +#line 309 "fe/idl.ll" { tao_yylval.dval = idl_atof (ace_yytext); return IDL_FLOATING_PT_LITERAL; } YY_BREAK -case 78: +case 86: YY_RULE_SETUP -#line 248 "fe/idl.ll" +#line 313 "fe/idl.ll" { tao_yylval.dval = idl_atof (ace_yytext); return IDL_FLOATING_PT_LITERAL; } YY_BREAK -case 79: +case 87: YY_RULE_SETUP -#line 253 "fe/idl.ll" +#line 318 "fe/idl.ll" { tao_yylval.fixval = ACE_CDR::Fixed::from_string (ace_yytext); return IDL_FIXED_PT_LITERAL; } YY_BREAK -case 80: +case 88: YY_RULE_SETUP -#line 258 "fe/idl.ll" +#line 323 "fe/idl.ll" { tao_yylval.ival = idl_atoi (ace_yytext, 10); return IDL_INTEGER_LITERAL; } YY_BREAK -case 81: +case 89: YY_RULE_SETUP -#line 262 "fe/idl.ll" +#line 327 "fe/idl.ll" { tao_yylval.uival = idl_atoui (ace_yytext, 10); return IDL_UINTEGER_LITERAL; } YY_BREAK -case 82: +case 90: YY_RULE_SETUP -#line 266 "fe/idl.ll" +#line 331 "fe/idl.ll" { tao_yylval.ival = idl_atoi (ace_yytext, 16); return IDL_INTEGER_LITERAL; } YY_BREAK -case 83: +case 91: YY_RULE_SETUP -#line 270 "fe/idl.ll" +#line 335 "fe/idl.ll" { tao_yylval.uival = idl_atoui (ace_yytext, 16); return IDL_UINTEGER_LITERAL; } YY_BREAK -case 84: +case 92: YY_RULE_SETUP -#line 274 "fe/idl.ll" +#line 339 "fe/idl.ll" { tao_yylval.ival = idl_atoi (ace_yytext, 8); return IDL_INTEGER_LITERAL; } YY_BREAK -case 85: +case 93: YY_RULE_SETUP -#line 278 "fe/idl.ll" +#line 343 "fe/idl.ll" { tao_yylval.uival = idl_atoui (ace_yytext, 8); return IDL_UINTEGER_LITERAL; } YY_BREAK -case 86: -/* rule 86 can match eol */ +case 94: +/* rule 94 can match eol */ YY_RULE_SETUP -#line 283 "fe/idl.ll" +#line 348 "fe/idl.ll" { /* Skip the quotes */ char * const tmp = ace_yytext; @@ -2088,10 +2352,10 @@ YY_RULE_SETUP return IDL_STRING_LITERAL; } YY_BREAK -case 87: -/* rule 87 can match eol */ +case 95: +/* rule 95 can match eol */ YY_RULE_SETUP -#line 303 "fe/idl.ll" +#line 368 "fe/idl.ll" { /* Skip the bookends */ char * const tmp = ACE_OS::strdup (ace_yytext); @@ -2112,157 +2376,157 @@ YY_RULE_SETUP return IDL_WSTRING_LITERAL; } YY_BREAK -case 88: +case 96: YY_RULE_SETUP -#line 322 "fe/idl.ll" +#line 387 "fe/idl.ll" { tao_yylval.cval = ace_yytext[1]; return IDL_CHARACTER_LITERAL; } YY_BREAK -case 89: +case 97: YY_RULE_SETUP -#line 326 "fe/idl.ll" +#line 391 "fe/idl.ll" { // octal character constant tao_yylval.cval = idl_escape_reader (ace_yytext + 1); return IDL_CHARACTER_LITERAL; } YY_BREAK -case 90: +case 98: YY_RULE_SETUP -#line 331 "fe/idl.ll" +#line 396 "fe/idl.ll" { // hexadecimal character constant tao_yylval.cval = idl_escape_reader (ace_yytext + 1); return IDL_CHARACTER_LITERAL; } YY_BREAK -case 91: +case 99: YY_RULE_SETUP -#line 336 "fe/idl.ll" +#line 401 "fe/idl.ll" { tao_yylval.cval = idl_escape_reader (ace_yytext + 1); return IDL_CHARACTER_LITERAL; } YY_BREAK -case 92: +case 100: YY_RULE_SETUP -#line 340 "fe/idl.ll" +#line 405 "fe/idl.ll" { // wide character constant tao_yylval.wcval = ace_yytext[2]; return IDL_WCHAR_LITERAL; } YY_BREAK -case 93: +case 101: YY_RULE_SETUP -#line 345 "fe/idl.ll" +#line 410 "fe/idl.ll" { // hexadecimal wide character constant tao_yylval.wcval = idl_wchar_escape_reader (ace_yytext + 2); return IDL_WCHAR_LITERAL; } YY_BREAK -case 94: -/* rule 94 can match eol */ -#line 351 "fe/idl.ll" -case 95: -/* rule 95 can match eol */ +case 102: +/* rule 102 can match eol */ +#line 416 "fe/idl.ll" +case 103: +/* rule 103 can match eol */ YY_RULE_SETUP -#line 351 "fe/idl.ll" +#line 416 "fe/idl.ll" {/* remember pragma */ idl_global->set_lineno (idl_global->lineno () + 1); idl_store_pragma (ace_yytext); break; } YY_BREAK -case 96: -/* rule 96 can match eol */ -#line 357 "fe/idl.ll" -case 97: -/* rule 97 can match eol */ +case 104: +/* rule 104 can match eol */ +#line 422 "fe/idl.ll" +case 105: +/* rule 105 can match eol */ YY_RULE_SETUP -#line 357 "fe/idl.ll" +#line 422 "fe/idl.ll" {/* ignore file */ idl_global->set_lineno(idl_global->lineno () + 1); break; } YY_BREAK -case 98: -/* rule 98 can match eol */ -#line 362 "fe/idl.ll" -case 99: -/* rule 99 can match eol */ +case 106: +/* rule 106 can match eol */ +#line 427 "fe/idl.ll" +case 107: +/* rule 107 can match eol */ YY_RULE_SETUP -#line 362 "fe/idl.ll" +#line 427 "fe/idl.ll" { idl_parse_line_and_file (ace_yytext); break; } YY_BREAK -case 100: -/* rule 100 can match eol */ -#line 367 "fe/idl.ll" -case 101: -/* rule 101 can match eol */ +case 108: +/* rule 108 can match eol */ +#line 432 "fe/idl.ll" +case 109: +/* rule 109 can match eol */ YY_RULE_SETUP -#line 367 "fe/idl.ll" +#line 432 "fe/idl.ll" { idl_parse_line_and_file (ace_yytext); break; } YY_BREAK -case 102: -/* rule 102 can match eol */ -#line 372 "fe/idl.ll" -case 103: -/* rule 103 can match eol */ +case 110: +/* rule 110 can match eol */ +#line 437 "fe/idl.ll" +case 111: +/* rule 111 can match eol */ YY_RULE_SETUP -#line 372 "fe/idl.ll" +#line 437 "fe/idl.ll" { idl_parse_line_and_file (ace_yytext); break; } YY_BREAK -case 104: -/* rule 104 can match eol */ -#line 377 "fe/idl.ll" -case 105: -/* rule 105 can match eol */ +case 112: +/* rule 112 can match eol */ +#line 442 "fe/idl.ll" +case 113: +/* rule 113 can match eol */ YY_RULE_SETUP -#line 377 "fe/idl.ll" +#line 442 "fe/idl.ll" { idl_parse_line_and_file (ace_yytext); break; } YY_BREAK -case 106: -/* rule 106 can match eol */ -#line 382 "fe/idl.ll" -case 107: -/* rule 107 can match eol */ +case 114: +/* rule 114 can match eol */ +#line 447 "fe/idl.ll" +case 115: +/* rule 115 can match eol */ YY_RULE_SETUP -#line 382 "fe/idl.ll" +#line 447 "fe/idl.ll" { /* ignore cpp ident */ idl_global->set_lineno (idl_global->lineno () + 1); break; } YY_BREAK -case 108: -/* rule 108 can match eol */ +case 116: +/* rule 116 can match eol */ YY_RULE_SETUP -#line 387 "fe/idl.ll" +#line 452 "fe/idl.ll" { /* ignore comments */ idl_global->set_lineno(idl_global->lineno () + 1); break; } YY_BREAK -case 109: +case 117: YY_RULE_SETUP -#line 392 "fe/idl.ll" +#line 457 "fe/idl.ll" { for (;;) { @@ -2283,33 +2547,33 @@ YY_RULE_SETUP break; } YY_BREAK -case 110: +case 118: YY_RULE_SETUP -#line 411 "fe/idl.ll" +#line 476 "fe/idl.ll" break; YY_BREAK -case 111: -/* rule 111 can match eol */ +case 119: +/* rule 119 can match eol */ YY_RULE_SETUP -#line 412 "fe/idl.ll" +#line 477 "fe/idl.ll" { idl_global->set_lineno (idl_global->lineno () + 1); break; } YY_BREAK -case 112: +case 120: YY_RULE_SETUP -#line 416 "fe/idl.ll" +#line 481 "fe/idl.ll" return ace_yytext[0]; YY_BREAK -case 113: +case 121: YY_RULE_SETUP -#line 418 "fe/idl.ll" +#line 483 "fe/idl.ll" ECHO; YY_BREAK -#line 2313 "fe/idl.yy.cpp" -case YY_STATE_EOF(INITIAL): - yyterminate(); +#line 2577 "fe/idl.yy.cpp" + case YY_STATE_EOF(INITIAL): + yyterminate(); case YY_END_OF_BUFFER: { @@ -2374,8 +2638,7 @@ case YY_STATE_EOF(INITIAL): else { - yy_cp = (yy_last_accepting_cpos); - yy_current_state = (yy_last_accepting_state); + yy_cp = (yy_c_buf_p); goto yy_find_action; } } @@ -2501,38 +2764,8 @@ static int yy_get_next_buffer (void) while ( num_to_read <= 0 ) { /* Not enough room in the buffer - grow it. */ - /* just a shorter name for the current buffer */ - YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE; - - int yy_c_buf_p_offset = - (int) ((yy_c_buf_p) - b->yy_ch_buf); - - if ( b->yy_is_our_buffer ) - { - int new_size = b->yy_buf_size * 2; - - if ( new_size <= 0 ) - b->yy_buf_size += b->yy_buf_size / 8; - else - b->yy_buf_size *= 2; - - b->yy_ch_buf = (char *) - /* Include room in for 2 EOB chars. */ - yyrealloc( (void *) b->yy_ch_buf, - (yy_size_t) (b->yy_buf_size + 2) ); - } - else - /* Can't grow it, we don't own it. */ - b->yy_ch_buf = 0; - - if ( ! b->yy_ch_buf ) - YY_FATAL_ERROR( - "fatal error - scanner input buffer overflow" ); - - (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset]; - - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size - - number_to_move - 1; + YY_FATAL_ERROR( +"input buffer overflow, can't enlarge buffer because scanner uses REJECT" ); } @@ -2595,21 +2828,20 @@ static int yy_get_next_buffer (void) yy_current_state = (yy_start); yy_current_state += YY_AT_BOL(); + (yy_state_ptr) = (yy_state_buf); + *(yy_state_ptr)++ = yy_current_state; + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp ) { YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 605 ) + if ( yy_current_state >= 622 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; + *(yy_state_ptr)++ = yy_current_state; } return yy_current_state; @@ -2623,22 +2855,18 @@ static int yy_get_next_buffer (void) static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state ) { int yy_is_jam; - char *yy_cp = (yy_c_buf_p); YY_CHAR yy_c = 1; - if ( yy_accept[yy_current_state] ) - { - (yy_last_accepting_state) = yy_current_state; - (yy_last_accepting_cpos) = yy_cp; - } while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 605 ) + if ( yy_current_state >= 622 ) yy_c = yy_meta[yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c]; - yy_is_jam = (yy_current_state == 604); + yy_is_jam = (yy_current_state == 621); + if ( ! yy_is_jam ) + *(yy_state_ptr)++ = yy_current_state; return yy_is_jam ? 0 : yy_current_state; } @@ -3229,6 +3457,11 @@ static int yy_init_globals (void) (yy_init) = 0; (yy_start) = 0; + (yy_state_buf) = 0; + (yy_state_ptr) = 0; + (yy_full_match) = 0; + (yy_lp) = 0; + /* Defined in main.c */ #ifdef YY_STDINIT yyin = stdin; @@ -3259,6 +3492,9 @@ int yylex_destroy (void) yyfree((yy_buffer_stack) ); (yy_buffer_stack) = 0; + yyfree ( (yy_state_buf) ); + (yy_state_buf) = 0; + /* Reset the globals. This is important in a non-reentrant scanner so the next time * yylex() is called, initialization will occur. */ yy_init_globals( ); @@ -3316,7 +3552,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 418 "fe/idl.ll" +#line 483 "fe/idl.ll" /* subroutines */ diff --git a/TAO/TAO_IDL/include/ast_constant.h b/TAO/TAO_IDL/include/ast_constant.h index 01196eb790a0d..c4f0d0d59b312 100644 --- a/TAO/TAO_IDL/include/ast_constant.h +++ b/TAO/TAO_IDL/include/ast_constant.h @@ -102,12 +102,6 @@ class TAO_IDL_FE_Export AST_Constant : public virtual AST_Decl bool ifr_added (void); void ifr_added (bool val); - const char *exprtype_to_string (void); - // Returns the appropriate type. - - static const char *exprtype_to_string (AST_Expression::ExprType et); - // For use with ORBs without the CORBA namespace. - UTL_ScopedName *enum_full_name (void); // If our type is enum, we have to generate the scoped name. diff --git a/TAO/TAO_IDL/include/ast_expression.h b/TAO/TAO_IDL/include/ast_expression.h index ec2dfc4eb2234..42f7be07f3355 100644 --- a/TAO/TAO_IDL/include/ast_expression.h +++ b/TAO/TAO_IDL/include/ast_expression.h @@ -121,12 +121,16 @@ class TAO_IDL_FE_Export AST_Expression , EK_octet , EK_floating_point , EK_fixed_point + , EK_int8 + , EK_uint8 }; // Enum to define expression type. enum ExprType { - EV_short // Expression value is short. + EV_int8 // Signed Byte Sized Integer + , EV_uint8 // Unsigned Byte Sized Integer + , EV_short // Expression value is short. , EV_ushort // Expression value is unsigned short. , EV_long // Expression value is long. , EV_ulong // Expression value is unsigned long. @@ -158,6 +162,8 @@ class TAO_IDL_FE_Export AST_Expression , EV_none // Expression value is missing. }; + static ExprType eval_kind_to_expr_type (EvalKind eval_kind); + // Structure to describe value of constant expression and its type. struct AST_ExprValue { @@ -181,6 +187,8 @@ class TAO_IDL_FE_Export AST_Expression char *wstrval; // Contains wide string expr value. ACE_CDR::ULong eval; // Contains enumeration value. ACE_CDR::Fixed fixedval; // Contains IDL fixed value. + ACE_CDR::Int8 int8val; // Signed Byte Sized Integer + ACE_CDR::UInt8 uint8val; // Unsigned Byte Sized Integer } u; ExprType et; @@ -280,10 +288,11 @@ class TAO_IDL_FE_Export AST_Expression // Evaluate then store value inside this AST_Expression. void evaluate (EvalKind ek); - // Compare two AST_Expressions. - + /// Compare two AST_Expressions. + ///{ bool operator== (AST_Expression *vc); - long compare (AST_Expression *vc); + bool compare (AST_Expression *vc); + ///} // Accessor for the member. AST_Decl *get_tdef (void) const; diff --git a/TAO/TAO_IDL/include/ast_predefined_type.h b/TAO/TAO_IDL/include/ast_predefined_type.h index 311e89c3e0481..598fca64f11e7 100644 --- a/TAO/TAO_IDL/include/ast_predefined_type.h +++ b/TAO/TAO_IDL/include/ast_predefined_type.h @@ -95,6 +95,8 @@ class TAO_IDL_FE_Export AST_PredefinedType : public virtual AST_ConcreteType , PT_abstract // Predefined type "CORBA::AbstractBase" , PT_void // Predefined type "void" , PT_pseudo // Predefined type for pseudo objects + , PT_int8 // Predefined type for int8 + , PT_uint8 // Predefined type for uint8 }; AST_PredefinedType (PredefinedType t, diff --git a/TAO/TAO_IDL/include/ast_sequence.h b/TAO/TAO_IDL/include/ast_sequence.h index 228a579dd434f..28719e35a149e 100644 --- a/TAO/TAO_IDL/include/ast_sequence.h +++ b/TAO/TAO_IDL/include/ast_sequence.h @@ -91,6 +91,12 @@ class TAO_IDL_FE_Export AST_Sequence : public virtual AST_ConcreteType AST_Type *base_type (void) const; + /** + * Returns the fully dealiased base type if it's a typedef. If it's not a + * typedef, the it returns the same value as as base_type(). + */ + AST_Type *primitive_base_type () const; + virtual bool unbounded (void) const; // Is this sequence bounded or not. diff --git a/TAO/bin/tao_orb_tests.lst b/TAO/bin/tao_orb_tests.lst index 303c079e51563..46bba23e6709d 100644 --- a/TAO/bin/tao_orb_tests.lst +++ b/TAO/bin/tao_orb_tests.lst @@ -508,3 +508,4 @@ TAO/DevGuideExamples/ValueTypes/Bank/run_test.pl: !MINIMUM !CORBA_E_MICRO TAO/DevGuideExamples/AMH/run_test.pl: !NO_MESSAGING !CORBA_E_MICRO TAO/DevGuideExamples/AMH_AMI/run_test.pl: !NO_MESSAGING !CORBA_E_MICRO TAO/tests/IDLv4/annotations/run_test.pl +TAO/tests/IDLv4/explicit_ints/run_test.pl diff --git a/TAO/tao/.gitignore b/TAO/tao/.gitignore index 03471db0e1cc2..2e8d674c14808 100644 --- a/TAO/tao/.gitignore +++ b/TAO/tao/.gitignore @@ -1,13 +1,16 @@ +/AnyTypeCode/Int8SeqA.cpp +/AnyTypeCode/Int8SeqA.h +/AnyTypeCode/UInt8SeqA.cpp +/AnyTypeCode/UInt8SeqA.h /BooleanSeqC.cpp /BooleanSeqC.h /BooleanSeqS.h -/CharSeqC.cpp -/CharSeqC.h -/CharSeqS.h -/config.h.in /CONV_FRAMEC.cpp /CONV_FRAMEC.h /CONV_FRAMES.h +/CharSeqC.cpp +/CharSeqC.h +/CharSeqS.h /CurrentC.cpp /CurrentC.h /CurrentS.h @@ -21,15 +24,18 @@ /GIOPC.h /GIOPC.inl /GIOPS.h -/IIOP_EndpointsC.cpp -/IIOP_EndpointsC.h -/IIOP_EndpointsS.h /IIOPC.cpp /IIOPC.h /IIOPS.h +/IIOP_EndpointsC.cpp +/IIOP_EndpointsC.h +/IIOP_EndpointsS.h /IOPC.cpp /IOPC.h /IOPS.h +/Int8SeqC.cpp +/Int8SeqC.h +/Int8SeqS.h /LongDoubleSeqC.cpp /LongDoubleSeqC.h /LongDoubleSeqS.h @@ -51,15 +57,15 @@ /OctetSeqC.cpp /OctetSeqC.h /OctetSeqS.h -/orb_typesC.cpp -/orb_typesC.h -/orb_typesS.h -/ParameterModeC.cpp -/ParameterModeC.h -/ParameterModeS.h /PI_ForwardC.cpp /PI_ForwardC.h /PI_ForwardS.h +/ParameterModeC.cpp +/ParameterModeC.h +/ParameterModeS.h +/PolicyC.cpp +/PolicyC.h +/PolicyC.inl /Policy_CurrentC.cpp /Policy_CurrentC.h /Policy_CurrentS.h @@ -90,6 +96,9 @@ /TimeBaseC.cpp /TimeBaseC.h /TimeBaseS.h +/UInt8SeqC.cpp +/UInt8SeqC.h +/UInt8SeqS.h /ULongLongSeqC.cpp /ULongLongSeqC.h /ULongLongSeqS.h @@ -105,3 +114,7 @@ /WStringSeqC.cpp /WStringSeqC.h /WStringSeqS.h +/config.h.in +/orb_typesC.cpp +/orb_typesC.h +/orb_typesS.h diff --git a/TAO/tao/AnyTypeCode/AnyTypeCode.mpc b/TAO/tao/AnyTypeCode/AnyTypeCode.mpc index aab09a00a2f99..6555efd66b70a 100644 --- a/TAO/tao/AnyTypeCode/AnyTypeCode.mpc +++ b/TAO/tao/AnyTypeCode/AnyTypeCode.mpc @@ -58,9 +58,10 @@ project(AnyTypeCode) : taolib, tao_output, install, extra_anytypecode, taoidldef FloatSeqA.cpp GIOPA.cpp IIOPA.cpp - IOPA.cpp IIOP_EndpointsA.cpp + IOPA.cpp Indirected_Type_TypeCode.cpp + Int8SeqA.cpp LongDoubleSeqA.cpp LongLongSeqA.cpp LongSeqA.cpp @@ -93,6 +94,7 @@ project(AnyTypeCode) : taolib, tao_output, install, extra_anytypecode, taoidldef TypeCodeA.cpp TypeCode_CDR_Extraction.cpp TypeCode_Constants.cpp + UInt8SeqA.cpp ULongLongSeqA.cpp ULongSeqA.cpp Union_TypeCode_Static.cpp @@ -117,9 +119,9 @@ project(AnyTypeCode) : taolib, tao_output, install, extra_anytypecode, taoidldef DoubleSeqA.h FloatSeqA.h IIOPA.h - IOPA.h IIOP_EndpointsA.h IOPA.h + Int8SeqA.h LongDoubleSeqA.h LongLongSeqA.h LongSeqA.h @@ -139,6 +141,7 @@ project(AnyTypeCode) : taolib, tao_output, install, extra_anytypecode, taoidldef StringSeqA.h TAOA.h TimeBaseA.h + UInt8SeqA.h ULongLongSeqA.h ULongSeqA.h UShortSeqA.h diff --git a/TAO/tao/AnyTypeCode/TypeCode_Constants.cpp b/TAO/tao/AnyTypeCode/TypeCode_Constants.cpp index 45f10d386e27d..a874655c69051 100644 --- a/TAO/tao/AnyTypeCode/TypeCode_Constants.cpp +++ b/TAO/tao/AnyTypeCode/TypeCode_Constants.cpp @@ -81,6 +81,8 @@ namespace CORBA TypeCode_ptr const _tc_wchar = &TAO::TypeCode::tc_wchar; TypeCode_ptr const _tc_short = &TAO::TypeCode::tc_short; TypeCode_ptr const _tc_ushort = &TAO::TypeCode::tc_ushort; + TypeCode_ptr const _tc_int8 = 0; + TypeCode_ptr const _tc_uint8 = 0; TypeCode_ptr const _tc_long = &TAO::TypeCode::tc_long; TypeCode_ptr const _tc_ulong = &TAO::TypeCode::tc_ulong; TypeCode_ptr const _tc_longlong = &TAO::TypeCode::tc_longlong; diff --git a/TAO/tao/AnyTypeCode/TypeCode_Constants.h b/TAO/tao/AnyTypeCode/TypeCode_Constants.h index 78520ca96691c..0444ec9866ff5 100644 --- a/TAO/tao/AnyTypeCode/TypeCode_Constants.h +++ b/TAO/tao/AnyTypeCode/TypeCode_Constants.h @@ -39,6 +39,8 @@ namespace CORBA extern TAO_AnyTypeCode_Export TypeCode_ptr const _tc_boolean; extern TAO_AnyTypeCode_Export TypeCode_ptr const _tc_char; extern TAO_AnyTypeCode_Export TypeCode_ptr const _tc_wchar; + extern TAO_AnyTypeCode_Export TypeCode_ptr const _tc_int8; + extern TAO_AnyTypeCode_Export TypeCode_ptr const _tc_uint8; extern TAO_AnyTypeCode_Export TypeCode_ptr const _tc_short; extern TAO_AnyTypeCode_Export TypeCode_ptr const _tc_ushort; extern TAO_AnyTypeCode_Export TypeCode_ptr const _tc_long; diff --git a/TAO/tao/Basic_Types.h b/TAO/tao/Basic_Types.h index 538332cdf93dd..facd7e5934894 100644 --- a/TAO/tao/Basic_Types.h +++ b/TAO/tao/Basic_Types.h @@ -75,6 +75,24 @@ namespace CORBA typedef ACE_CDR::WChar WChar; typedef WChar &WChar_out; + + typedef ACE_CDR::Int16 Int16; + typedef Int16 &Int16_out; + + typedef ACE_CDR::UInt16 UInt16; + typedef UInt16 &UInt16_out; + + typedef ACE_CDR::Int32 Int32; + typedef Int32 &Int32_out; + + typedef ACE_CDR::UInt32 UInt32; + typedef UInt32 &UInt32_out; + + typedef ACE_CDR::Int64 Int64; + typedef Int64 &Int64_out; + + typedef ACE_CDR::UInt64 UInt64; + typedef UInt64 &UInt64_out; //@} typedef TAO::String_var String_var; diff --git a/TAO/tao/Basic_Types_IDLv4.h b/TAO/tao/Basic_Types_IDLv4.h new file mode 100644 index 0000000000000..e4966777daad1 --- /dev/null +++ b/TAO/tao/Basic_Types_IDLv4.h @@ -0,0 +1,42 @@ +#ifndef TAO_BASIC_TYPES_IDLV4_H +#define TAO_BASIC_TYPES_IDLV4_H + +#include /**/ "ace/pre.h" +#include "ace/CDR_Base.h" + +#if !defined (ACE_LACKS_PRAGMA_ONCE) +# pragma once +#endif /* ACE_LACKS_PRAGMA_ONCE */ + +#include "tao/Basic_Types.h" +#include "tao/orbconf.h" + +TAO_BEGIN_VERSIONED_NAMESPACE_DECL + +namespace CORBA +{ + namespace IDLv4 + { + /** + * @name IDL4 Explicit Integer Types + * + * These are for the corresponding types defined in IDL4, but they are not + * standard in CORBA. + */ + //@{ + typedef ACE_CDR::Int8 Int8; + typedef Int8 &Int8_out; + struct Int8_tag {}; + + typedef ACE_CDR::UInt8 UInt8; + typedef UInt8 &UInt8_out; + struct UInt8_tag {}; + //@} + } +} + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* TAO_BASIC_TYPES_IDLV4_H */ diff --git a/TAO/tao/Bounded_Sequence_CDR_T.h b/TAO/tao/Bounded_Sequence_CDR_T.h index 6c673bd121490..f2339ff8bbfc9 100644 --- a/TAO/tao/Bounded_Sequence_CDR_T.h +++ b/TAO/tao/Bounded_Sequence_CDR_T.h @@ -1,5 +1,5 @@ -#ifndef guard_bounded_sequence_cdr -#define guard_bounded_sequence_cdr +#ifndef TAO_BOUNDED_SEQUENCE_CDR_T_H +#define TAO_BOUNDED_SEQUENCE_CDR_T_H /** * @file * @@ -11,6 +11,7 @@ #include "tao/orbconf.h" #include "tao/SystemException.h" +#include "tao/Basic_Types_IDLv4.h" TAO_BEGIN_VERSIONED_NAMESPACE_DECL @@ -277,6 +278,48 @@ namespace TAO { return true; } + template + bool demarshal_sequence(stream & strm, + TAO::bounded_value_sequence & target) { + typedef TAO::bounded_value_sequence sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_uint8_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template + bool demarshal_sequence(stream & strm, + TAO::bounded_value_sequence & target) { + typedef TAO::bounded_value_sequence sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if ((new_length > strm.length()) || (new_length > target.maximum ())) { + return false; + } + sequence tmp; + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_int8_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + template bool demarshal_sequence(stream & strm, TAO::bounded_value_sequence & target) { typedef TAO::bounded_value_sequence sequence; @@ -382,9 +425,7 @@ namespace TAO { tmp.swap(target); return true; } -} -namespace TAO { template bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence & source) { ::CORBA::ULong const length = source.length (); @@ -504,6 +545,26 @@ namespace TAO { return strm.write_boolean_array (source.get_buffer (), length); } + template + bool marshal_sequence(stream & strm, + const TAO::bounded_value_sequence & source) { + ::CORBA::ULong const length = source.length (); + if (length > source.maximum () || !(strm << length)) { + return false; + } + return strm.write_uint8_array (source.get_buffer (), length); + } + + template + bool marshal_sequence(stream & strm, + const TAO::bounded_value_sequence & source) { + ::CORBA::ULong const length = source.length (); + if (length > source.maximum () || !(strm << length)) { + return false; + } + return strm.write_int8_array (source.get_buffer (), length); + } + template bool marshal_sequence(stream & strm, const TAO::bounded_value_sequence & source) { ::CORBA::ULong const length = source.length (); @@ -568,4 +629,4 @@ namespace TAO { TAO_END_VERSIONED_NAMESPACE_DECL -#endif /* guard_bounded_sequence_cdr */ +#endif /* TAO_BOUNDED_SEQUENCE_CDR_T_H */ diff --git a/TAO/tao/Bounded_Value_Sequence_T.h b/TAO/tao/Bounded_Value_Sequence_T.h index 8c766e1c1f743..a9e620aa42a8f 100644 --- a/TAO/tao/Bounded_Value_Sequence_T.h +++ b/TAO/tao/Bounded_Value_Sequence_T.h @@ -18,7 +18,7 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL namespace TAO { -template +template class bounded_value_sequence { public: diff --git a/TAO/tao/CDR.h b/TAO/tao/CDR.h index f7406c6000d49..c501d30972802 100644 --- a/TAO/tao/CDR.h +++ b/TAO/tao/CDR.h @@ -48,7 +48,7 @@ #endif /* ACE_LACKS_PRAGMA_ONCE */ #include /**/ "tao/TAO_Export.h" -#include "tao/Basic_Types.h" +#include "tao/Basic_Types_IDLv4.h" #include "tao/GIOP_Message_Version.h" #include "tao/Message_Semantics.h" #include "tao/Intrusive_Ref_Count_Handle_T.h" diff --git a/TAO/tao/Int8Seq.pidl b/TAO/tao/Int8Seq.pidl new file mode 100644 index 0000000000000..a970dcbf55e92 --- /dev/null +++ b/TAO/tao/Int8Seq.pidl @@ -0,0 +1,11 @@ +#ifndef TAO_CORBA_INT8_SEQ_IDL +#define TAO_CORBA_INT8_SEQ_IDL + +#pragma prefix "omg.org" + +module CORBA +{ + typedef sequence Int8Seq; +}; + +#endif /* TAO_CORBA_INT8_SEQ_IDL */ diff --git a/TAO/tao/UInt8Seq.pidl b/TAO/tao/UInt8Seq.pidl new file mode 100644 index 0000000000000..e43b19c2656ac --- /dev/null +++ b/TAO/tao/UInt8Seq.pidl @@ -0,0 +1,11 @@ +#ifndef TAO_CORBA_UINT8_SEQ_IDL +#define TAO_CORBA_UINT8_SEQ_IDL + +#pragma prefix "omg.org" + +module CORBA +{ + typedef sequence UInt8Seq; +}; + +#endif /* TAO_CORBA_UINT8_SEQ_IDL */ diff --git a/TAO/tao/Unbounded_Sequence_CDR_T.h b/TAO/tao/Unbounded_Sequence_CDR_T.h index 0c8d530897086..ab4fb8aca9e25 100644 --- a/TAO/tao/Unbounded_Sequence_CDR_T.h +++ b/TAO/tao/Unbounded_Sequence_CDR_T.h @@ -1,5 +1,5 @@ -#ifndef guard_unbounded_sequence_cdr -#define guard_unbounded_sequence_cdr +#ifndef TAO_UNBOUNDED_SEQUENCE_CDR_T_H +#define TAO_UNBOUNDED_SEQUENCE_CDR_T_H /** * @file * @@ -12,6 +12,7 @@ #include "tao/orbconf.h" #include "tao/CORBA_String.h" #include "tao/SystemException.h" +#include "tao/Basic_Types_IDLv4.h" TAO_BEGIN_VERSIONED_NAMESPACE_DECL @@ -313,6 +314,48 @@ namespace TAO { return true; } + template + bool demarshal_sequence(stream & strm, + TAO::unbounded_value_sequence & target) { + typedef TAO::unbounded_value_sequence sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_uint8_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + + template + bool demarshal_sequence(stream & strm, + TAO::unbounded_value_sequence & target) { + typedef TAO::unbounded_value_sequence sequence; + ::CORBA::ULong new_length = 0; + if (!(strm >> new_length)) { + return false; + } + if (new_length > strm.length()) { + return false; + } + sequence tmp(new_length); + tmp.length(new_length); + typename sequence::value_type * buffer = tmp.get_buffer(); + if (!strm.read_int8_array (buffer, new_length)) { + return false; + } + tmp.swap(target); + return true; + } + template bool demarshal_sequence(stream & strm, TAO::unbounded_value_sequence & target) { typedef TAO::unbounded_value_sequence sequence; @@ -418,9 +461,7 @@ namespace TAO { tmp.swap(target); return true; } -} -namespace TAO { template bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence & source) { ::CORBA::ULong const length = source.length (); @@ -554,6 +595,26 @@ namespace TAO { return strm.write_boolean_array (source.get_buffer (), length); } + template + bool marshal_sequence(stream & strm, + const TAO::unbounded_value_sequence & source) { + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_uint8_array (source.get_buffer (), length); + } + + template + bool marshal_sequence(stream & strm, + const TAO::unbounded_value_sequence & source) { + ::CORBA::ULong const length = source.length (); + if (!(strm << length)) { + return false; + } + return strm.write_int8_array (source.get_buffer (), length); + } + template bool marshal_sequence(stream & strm, const TAO::unbounded_value_sequence & source) { ::CORBA::ULong const length = source.length (); @@ -618,4 +679,4 @@ namespace TAO { TAO_END_VERSIONED_NAMESPACE_DECL -#endif /* guard_unbounded_sequence_cdr */ +#endif /* TAO_UNBOUNDED_SEQUENCE_CDR_T_H */ diff --git a/TAO/tao/Unbounded_Value_Sequence_T.h b/TAO/tao/Unbounded_Value_Sequence_T.h index c3b5a53e60c41..2d7923c6bcb10 100644 --- a/TAO/tao/Unbounded_Value_Sequence_T.h +++ b/TAO/tao/Unbounded_Value_Sequence_T.h @@ -18,7 +18,7 @@ TAO_BEGIN_VERSIONED_NAMESPACE_DECL namespace TAO { -template +template class unbounded_value_sequence { public: diff --git a/TAO/tao/tao.mpc b/TAO/tao/tao.mpc index 57036a486f14d..dbc679c777b4b 100644 --- a/TAO/tao/tao.mpc +++ b/TAO/tao/tao.mpc @@ -60,6 +60,12 @@ project(TAO_Core_idl) : tao_versioning_idl_defaults, gen_ostream, install, pidl_ WStringSeq.pidl >> AnyTypeCode/WStringSeqA.h AnyTypeCode/WStringSeqA.cpp } + IDL_Files { + idlflags += -Sci -Gse -Gata --idl-version 4 + Int8Seq.pidl >> AnyTypeCode/Int8SeqA.h AnyTypeCode/Int8SeqA.cpp + UInt8Seq.pidl >> AnyTypeCode/UInt8SeqA.h AnyTypeCode/UInt8SeqA.cpp + } + IDL_Files { idlflags += -GT -oS PortableServer -Gd \ -Wb,safe_include=tao/PolicyC.h \ @@ -169,6 +175,7 @@ project(TAO) : acelib, install, tao_output, taodefaults, pidl, extra_core, taoid IIOPC.cpp Incoming_Message_Queue.cpp Incoming_Message_Stack.cpp + Int8SeqC.cpp Invocation_Adapter.cpp Invocation_Base.cpp Invocation_Endpoint_Selectors.cpp @@ -308,6 +315,7 @@ project(TAO) : acelib, install, tao_output, taodefaults, pidl, extra_core, taoid TSS_Resources.cpp TypeCodeFactory_Adapter.cpp Typecode_typesC.cpp + UInt8SeqC.cpp ULongLongSeqC.cpp ULongSeqC.cpp UserException.cpp @@ -453,6 +461,8 @@ project(TAO) : acelib, install, tao_output, taodefaults, pidl, extra_core, taoid IIOP_Transport.h Incoming_Message_Queue.h Incoming_Message_Stack.h + Int8SeqC.h + Int8SeqS.h Invocation_Adapter.h Invocation_Base.h Invocation_Endpoint_Selectors.h @@ -634,6 +644,8 @@ project(TAO) : acelib, install, tao_output, taodefaults, pidl, extra_core, taoid Typecode_typesS.h UB_String_Arguments.h UB_String_Argument_T.h + UInt8SeqC.h + UInt8SeqS.h ULongLongSeqC.h ULongLongSeqS.h ULongSeqC.h diff --git a/TAO/tests/IDLv4/explicit_ints/.gitignore b/TAO/tests/IDLv4/explicit_ints/.gitignore new file mode 100644 index 0000000000000..2d381ab3d39cb --- /dev/null +++ b/TAO/tests/IDLv4/explicit_ints/.gitignore @@ -0,0 +1,6 @@ +/testC.cpp +/testC.h +/testC.inl +/testS.cpp +/testS.h +/explicit_ints diff --git a/TAO/tests/IDLv4/explicit_ints/IDLv4_explicit_ints.mpc b/TAO/tests/IDLv4/explicit_ints/IDLv4_explicit_ints.mpc new file mode 100644 index 0000000000000..8a3691bfd3424 --- /dev/null +++ b/TAO/tests/IDLv4/explicit_ints/IDLv4_explicit_ints.mpc @@ -0,0 +1,10 @@ +project: taoexe { + exename = explicit_ints + idlflags += --idl-version 4 + IDL_Files { + test.idl + } + Source_Files { + main.cpp + } +} diff --git a/TAO/tests/IDLv4/explicit_ints/main.cpp b/TAO/tests/IDLv4/explicit_ints/main.cpp new file mode 100644 index 0000000000000..cff84c84463ea --- /dev/null +++ b/TAO/tests/IDLv4/explicit_ints/main.cpp @@ -0,0 +1,80 @@ +#include "testC.h" + +#include "ace/OS_NS_stdlib.h" +#include "ace/OS_main.h" +#include "ace/streams.h" + +namespace stream8 { + std::ostream & + operator<< (std::ostream &os, CORBA::UInt8 value) { + return os << static_cast(value); + } + + std::ostream & + operator<< (std::ostream &os, CORBA::Int8 value) { + return os << static_cast(value); + } +} + +template +void +expect_equals (bool &any_failed, const char *name, IntType actual, IntType expected) +{ + if (actual != expected) + { + using stream8::operator<<; + *ACE_DEFAULT_LOG_STREAM + << "ERROR: For " << name << " expected: " << expected + << ", but got " << actual << "\n"; + any_failed = true; + } +} + +int +ACE_TMAIN (int, ACE_TCHAR *[]) +{ + bool any_failed = false; + + expect_equals (any_failed, "u8_max", u8_max, 255); + expect_equals (any_failed, "i8_min", i8_min, -128); + expect_equals (any_failed, "i8_max", i8_max, 127); + expect_equals (any_failed, "u16_max", u16_max, 65535); + expect_equals (any_failed, "i16_min", i16_min, -32768); + expect_equals (any_failed, "i16_max", i16_max, 32767); + expect_equals (any_failed, "u32_max", u32_max, 4294967295); + expect_equals (any_failed, "i32_min", i32_min, -2147483648); + expect_equals (any_failed, "i32_max", i32_max, 2147483647); + expect_equals (any_failed, "u64_max", u64_max, 18446744073709551615ULL); + expect_equals (any_failed, "i64_min", i64_min, (-9223372036854775807 - 1)); + expect_equals (any_failed, "i64_max", i64_max, 9223372036854775807); + + expect_equals (any_failed, "u8_min_overflow", u8_min_overflow, u8_max); + expect_equals (any_failed, "i8_min_overflow", i8_min_overflow, i8_max); + expect_equals (any_failed, "u8_max_overflow", u8_max_overflow, 0); + expect_equals (any_failed, "i8_max_overflow", i8_max_overflow, i8_min); + + expect_equals (any_failed, "u8_max_negate", u8_max_negate, 0); + expect_equals (any_failed, "i8_max_negate", i8_max_negate, i8_min); + + expect_equals (any_failed, "u8_e1", u8_e1, 2); + expect_equals (any_failed, "u8_e2", u8_e2, 4); + expect_equals (any_failed, "u8_e3", u8_e3, 12); + expect_equals (any_failed, "u8_e4", u8_e4, 3); + expect_equals (any_failed, "u8_e5", u8_e5, 7); + expect_equals (any_failed, "u8_e6", u8_e6, 1); + expect_equals (any_failed, "u8_e7", u8_e7, 1); + expect_equals (any_failed, "u8_e8", u8_e8, 16); + expect_equals (any_failed, "u8_e9", u8_e9, 8); + + expect_equals (any_failed, "i8_e1", i8_e1, -2); + expect_equals (any_failed, "i8_e2", i8_e2, 4); + expect_equals (any_failed, "i8_e3", i8_e3, 12); + expect_equals (any_failed, "i8_e4", i8_e4, 3); + expect_equals (any_failed, "i8_e5", i8_e5, 7); + expect_equals (any_failed, "i8_e6", i8_e6, 1); + expect_equals (any_failed, "i8_e7", i8_e7, 1); + expect_equals (any_failed, "i8_e8", i8_e8, 16); + expect_equals (any_failed, "i8_e9", i8_e9, 8); + + return any_failed ? EXIT_FAILURE : EXIT_SUCCESS; +} diff --git a/TAO/tests/IDLv4/explicit_ints/run_test.pl b/TAO/tests/IDLv4/explicit_ints/run_test.pl new file mode 100755 index 0000000000000..79b4c67de30fe --- /dev/null +++ b/TAO/tests/IDLv4/explicit_ints/run_test.pl @@ -0,0 +1,19 @@ +eval '(exit $?0)' && eval 'exec perl -S $0 ${1+"$@"}' + & eval 'exec perl -S $0 $argv:q' + if 0; + +use strict; +use lib "$ENV{ACE_ROOT}/bin"; +use PerlACE::TestTarget; + +my $target = PerlACE::TestTarget::create_target (1) || die "Create target 1 failed\n"; +my $proc = $target->CreateProcess ("explicit_ints"); + +my $test = $proc->SpawnWaitKill ($target->ProcessStartWaitInterval ()); + +if ($test != 0) { + print STDERR "ERROR: test returned $test\n"; + exit 1; +} + +exit 0; diff --git a/TAO/tests/IDLv4/explicit_ints/test.idl b/TAO/tests/IDLv4/explicit_ints/test.idl new file mode 100644 index 0000000000000..5cf247fba6d90 --- /dev/null +++ b/TAO/tests/IDLv4/explicit_ints/test.idl @@ -0,0 +1,111 @@ +#include "tao/Int8Seq.pidl" +#include "tao/UInt8Seq.pidl" +#include "tao/OctetSeq.pidl" +#include "tao/CharSeq.pidl" + +const uint8 u8_min = 0; +const uint8 u8_max = 255; +const int8 i8_min = -128; +const int8 i8_max = 127; +const uint16 u16_max = 65535; +const int16 i16_min = -32768; +const int16 i16_max = 32767; +const uint32 u32_max = 4294967295; +const int32 i32_min = -2147483648; +const int32 i32_max = 2147483647; +const uint64 u64_max = 18446744073709551615; +const int64 i64_min = -9223372036854775808; +const int64 i64_max = 9223372036854775807; + +const uint8 u8_min_overflow = u8_min - 1; // == u8_max +const int8 i8_min_overflow = i8_min - 1; // == i8_max +const uint8 u8_max_overflow = u8_max + 1; // == 0 +const int8 i8_max_overflow = i8_max + 1; // == i8_min + +const uint8 u8_max_negate = ~u8_max; // == 0 +const int8 i8_max_negate = ~i8_max; // == i8_min + +const uint8 u8_e1 = 2; +const uint8 u8_e2 = u8_e1 + 2; +const uint8 u8_e3 = u8_e2 * 3; +const uint8 u8_e4 = u8_e3 / 4; +const uint8 u8_e5 = u8_e4 | 5; +const uint8 u8_e6 = u8_e5 ^ 6; +const uint8 u8_e7 = u8_e6 & 7; +const uint8 u8_e8 = u8_e7 << 4; +const uint8 u8_e9 = u8_e8 >> 1; + +const int8 i8_e1 = -2; +const int8 i8_e2 = i8_e1 - -6; +const int8 i8_e3 = i8_e2 * 3; +const int8 i8_e4 = i8_e3 / 4; +const int8 i8_e5 = i8_e4 | 5; +const int8 i8_e6 = i8_e5 ^ 6; +const int8 i8_e7 = i8_e6 & 7; +const int8 i8_e8 = i8_e7 << 4; +const int8 i8_e9 = i8_e8 >> 1; + +typedef uint8 U8arr[3]; +typedef int8 I8arr[3]; +typedef octet Oarr[3]; +typedef char Carr[3]; +typedef sequence U8seq; +typedef sequence I8seq; +typedef sequence Oseq; +typedef sequence Cseq; + +struct StructWithInts { + uint8 u8; + int8 i8; + uint16 u16; + int16 i16; + uint32 u32; + int32 i32; + uint64 u64; + int64 i64; + + // Make sure there's no conflict between uint8, int8, octet, and char. + uint8 u8_arr[3]; + int8 i8_arr[3]; + sequence u8_seq; + sequence i8_seq; + sequence o_seq; + sequence c_seq; + + U8arr td_u8_arr; + I8arr td_i8_arr; + U8seq td_u8_seq; + I8seq td_i8_seq; + Oseq td_o_seq; + Cseq td_c_seq; +}; + +union UnionOverU8 switch (uint8) { +case 0: + uint8 u8; +case 1: + int8 i8; +case 2: + uint8 u8arr[3]; +case 3: + int8 i8arr[3]; +case 4: + sequence u8seq; +case 5: + sequence i8seq; +}; + +union UnionOverI8 switch (int8) { +case 0: + uint8 u8; +case 1: + int8 i8; +case 2: + uint8 u8arr[3]; +case 3: + int8 i8arr[3]; +case 4: + sequence u8seq; +case 5: + sequence i8seq; +}; From 90531b1dd0bcf226497542cd414c4a3b03456c10 Mon Sep 17 00:00:00 2001 From: Claus Klein Date: Tue, 6 Jul 2021 16:32:48 +0200 Subject: [PATCH 2/8] add missed header Basic_Types_IDLv4 to list --- TAO/tao/tao.mpc | 1 + 1 file changed, 1 insertion(+) diff --git a/TAO/tao/tao.mpc b/TAO/tao/tao.mpc index dbc679c777b4b..3eb076e801ccc 100644 --- a/TAO/tao/tao.mpc +++ b/TAO/tao/tao.mpc @@ -355,6 +355,7 @@ project(TAO) : acelib, install, tao_output, taodefaults, pidl, extra_core, taoid Basic_Arguments.h Basic_Argument_T.h Basic_Types.h + Basic_Types_IDLv4.h BD_String_Argument_T.h BiDir_Adapter.h Bind_Dispatcher_Guard.h From 1655769f404204483e8ee28a686f765df332be71 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Thu, 1 Jul 2021 14:41:42 -0500 Subject: [PATCH 3/8] Fix Integer Literals for Windows --- TAO/TAO_IDL/be/be_helper.cpp | 42 +++++++++++-------- TAO/TAO_IDL/be/be_union_branch.cpp | 4 +- .../be/be_visitor_union/discriminant_ci.cpp | 4 +- TAO/tests/IDLv4/explicit_ints/main.cpp | 4 +- 4 files changed, 30 insertions(+), 24 deletions(-) diff --git a/TAO/TAO_IDL/be/be_helper.cpp b/TAO/TAO_IDL/be/be_helper.cpp index ac8c0735c0cca..98f1f0e364938 100644 --- a/TAO/TAO_IDL/be/be_helper.cpp +++ b/TAO/TAO_IDL/be/be_helper.cpp @@ -499,6 +499,26 @@ TAO_OutStream::print (UTL_IdList *idl) return *this; } +template +void +signed_int_helper (TAO_OutStream &os, IntType value, IntType min, const char *specifier) +{ + /* + * It seems that in C/C++ the minus sign and the bare number are parsed + * separately for negative integer literals. This can cause compilers + * to complain when using the minimum value of a signed integer because + * the number without the minus sign is 1 past the max signed value. + * + * https://stackoverflow.com/questions/65007935 + * + * Apparently the workaround is to write it as `VALUE_PLUS_ONE - 1`. + */ + const bool min_value = value == min; + if (min_value) ++value; + os.print (specifier, value); + if (min_value) os.print (" - 1"); +} + TAO_OutStream& TAO_OutStream::print (AST_Expression *expr) { @@ -523,30 +543,16 @@ TAO_OutStream::print (AST_Expression *expr) this->TAO_OutStream::print (ACE_INT32_FORMAT_SPECIFIER_ASCII "%c", ev->u.usval, 'U'); break; case AST_Expression::EV_long: - this->TAO_OutStream::print (ACE_INT32_FORMAT_SPECIFIER_ASCII, ev->u.lval); + signed_int_helper ( + *this, ev->u.lval, ACE_INT32_MIN, ACE_INT32_FORMAT_SPECIFIER_ASCII); break; case AST_Expression::EV_ulong: this->TAO_OutStream::print (ACE_UINT32_FORMAT_SPECIFIER_ASCII "%c", ev->u.ulval, 'U'); break; case AST_Expression::EV_longlong: this->TAO_OutStream::print ("ACE_INT64_LITERAL ("); - { - ACE_CDR::LongLong value = ev->u.llval; - /* - * It seems that in C/C++ the minus sign and the bare number are parsed - * separately for negative integer literals. This can cause compilers - * to complain when using the minimum value of a signed integer because - * the number without the minus sign is 1 past the max signed value. - * - * https://stackoverflow.com/questions/65007935 - * - * Apparently the workaround is to write it as `VALUE_PLUS_ONE - 1`. - */ - const bool min_value = value == ACE_INT64_MIN; - if (min_value) ++value; - TAO_OutStream::print (ACE_INT64_FORMAT_SPECIFIER_ASCII, value); - if (min_value) TAO_OutStream::print (" - 1"); - } + signed_int_helper ( + *this, ev->u.llval, ACE_INT64_MIN, ACE_INT64_FORMAT_SPECIFIER_ASCII); this->TAO_OutStream::print (")"); break; case AST_Expression::EV_ulonglong: diff --git a/TAO/TAO_IDL/be/be_union_branch.cpp b/TAO/TAO_IDL/be/be_union_branch.cpp index 372bf6be83449..ec8442d5f4350 100644 --- a/TAO/TAO_IDL/be/be_union_branch.cpp +++ b/TAO/TAO_IDL/be/be_union_branch.cpp @@ -118,11 +118,9 @@ be_union_branch::gen_default_label_value (TAO_OutStream *os, switch (bu->udisc_type ()) { case AST_Expression::EV_short: - case AST_Expression::EV_int8: *os << dv.u.short_val; break; case AST_Expression::EV_ushort: - case AST_Expression::EV_uint8: *os << dv.u.ushort_val; break; case AST_Expression::EV_long: @@ -133,6 +131,8 @@ be_union_branch::gen_default_label_value (TAO_OutStream *os, break; case AST_Expression::EV_octet: case AST_Expression::EV_char: + case AST_Expression::EV_int8: + case AST_Expression::EV_uint8: os->print ("'\\%o'", dv.u.char_val); break; case AST_Expression::EV_bool: diff --git a/TAO/TAO_IDL/be/be_visitor_union/discriminant_ci.cpp b/TAO/TAO_IDL/be/be_visitor_union/discriminant_ci.cpp index f172a2f7d82f1..f1ac4e6e0f219 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/discriminant_ci.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/discriminant_ci.cpp @@ -159,11 +159,9 @@ be_visitor_union_discriminant_ci::visit_predefined_type ( switch (bu->udisc_type ()) { case AST_Expression::EV_short: - case AST_Expression::EV_int8: *os << dv.u.short_val; break; case AST_Expression::EV_ushort: - case AST_Expression::EV_uint8: *os << dv.u.ushort_val; break; case AST_Expression::EV_long: @@ -174,6 +172,8 @@ be_visitor_union_discriminant_ci::visit_predefined_type ( break; case AST_Expression::EV_char: case AST_Expression::EV_octet: + case AST_Expression::EV_int8: + case AST_Expression::EV_uint8: os->print ("'\\%o'", dv.u.char_val); break; case AST_Expression::EV_bool: diff --git a/TAO/tests/IDLv4/explicit_ints/main.cpp b/TAO/tests/IDLv4/explicit_ints/main.cpp index cff84c84463ea..7aaa38a8d9c22 100644 --- a/TAO/tests/IDLv4/explicit_ints/main.cpp +++ b/TAO/tests/IDLv4/explicit_ints/main.cpp @@ -42,10 +42,10 @@ ACE_TMAIN (int, ACE_TCHAR *[]) expect_equals (any_failed, "i16_min", i16_min, -32768); expect_equals (any_failed, "i16_max", i16_max, 32767); expect_equals (any_failed, "u32_max", u32_max, 4294967295); - expect_equals (any_failed, "i32_min", i32_min, -2147483648); + expect_equals (any_failed, "i32_min", i32_min, -2147483647 - 1); expect_equals (any_failed, "i32_max", i32_max, 2147483647); expect_equals (any_failed, "u64_max", u64_max, 18446744073709551615ULL); - expect_equals (any_failed, "i64_min", i64_min, (-9223372036854775807 - 1)); + expect_equals (any_failed, "i64_min", i64_min, -9223372036854775807 - 1); expect_equals (any_failed, "i64_max", i64_max, 9223372036854775807); expect_equals (any_failed, "u8_min_overflow", u8_min_overflow, u8_max); From 860746a594bf7bd04ee2501a8d8b5c7d678934c7 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Thu, 8 Jul 2021 17:26:09 -0500 Subject: [PATCH 4/8] Attempt to Fix Coverity Issues from #840 https://github.com/DOCGroup/ACE_TAO/pull/840 Because the main set of issues in `coerce_value` was caused by applying the existing pattern, the issues caused by the existing code should also be fixed. --- ACE/ace/Basic_Types.h | 2 + TAO/TAO_IDL/ast/ast_expression.cpp | 891 ++++++++++++--------------- TAO/TAO_IDL/be/be_sequence.cpp | 6 + TAO/TAO_IDL/include/ast_expression.h | 5 +- 4 files changed, 392 insertions(+), 512 deletions(-) diff --git a/ACE/ace/Basic_Types.h b/ACE/ace/Basic_Types.h index ac7a13116e358..8ef1b265d6472 100644 --- a/ACE/ace/Basic_Types.h +++ b/ACE/ace/Basic_Types.h @@ -686,8 +686,10 @@ ACE_END_VERSIONED_NAMESPACE_DECL // These use ANSI/IEEE format. #define ACE_FLT_MAX 3.402823466e+38F #define ACE_FLT_MIN 1.175494351e-38F +#define ACE_FLT_LOWEST -(ACE_FLT_MAX) #define ACE_DBL_MAX 1.7976931348623158e+308 #define ACE_DBL_MIN 2.2250738585072014e-308 +#define ACE_DBL_LOWEST -(ACE_DBL_MAX) # include /**/ "ace/post.h" #endif /* ACE_BASIC_TYPES_H */ diff --git a/TAO/TAO_IDL/ast/ast_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp index 0e819de9e51da..6fd259cafa465 100644 --- a/TAO/TAO_IDL/ast/ast_expression.cpp +++ b/TAO/TAO_IDL/ast/ast_expression.cpp @@ -572,39 +572,39 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return ev; } + // Avoid Coverity issue with "Assignment of overlapping memory" by using a + // temporary value and setting ev->u at the end if there wasn't an error. + AST_Expression::AST_ExprValue::Value tmp; switch (t) { case AST_Expression::EV_short: switch (ev->et) { case AST_Expression::EV_ushort: - if (ev->u.usval > (unsigned short) ACE_INT16_MAX) + if (ev->u.usval > (ACE_CDR::UShort) ACE_INT16_MAX) { return 0; } - ev->u.sval = (short) ev->u.usval; - ev->et = AST_Expression::EV_short; - return ev; + tmp.sval = (ACE_CDR::Short) ev->u.usval; + break; case AST_Expression::EV_long: - if (ev->u.lval > (long) ACE_INT16_MAX - || ev->u.lval < (long) ACE_INT16_MIN) + if (ev->u.lval > (ACE_CDR::Long) ACE_INT16_MAX + || ev->u.lval < (ACE_CDR::Long) ACE_INT16_MIN) { return 0; } - ev->u.sval = (short) ev->u.lval; - ev->et = AST_Expression::EV_short; - return ev; + tmp.sval = (ACE_CDR::Short) ev->u.lval; + break; case AST_Expression::EV_ulong: - if (ev->u.ulval > (unsigned long) ACE_INT16_MAX) + if (ev->u.ulval > (ACE_CDR::ULong) ACE_INT16_MAX) { return 0; } - ev->u.sval = (short) ev->u.ulval; - ev->et = AST_Expression::EV_short; - return ev; + tmp.sval = (ACE_CDR::Short) ev->u.ulval; + break; case AST_Expression::EV_longlong: if (ev->u.llval > (ACE_CDR::LongLong) ACE_INT16_MAX || ev->u.llval < (ACE_CDR::LongLong) ACE_INT16_MIN) @@ -612,70 +612,62 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.sval = (short) ev->u.llval; - ev->et = AST_Expression::EV_short; - return ev; + tmp.sval = (ACE_CDR::Short) ev->u.llval; + break; case AST_Expression::EV_ulonglong: if ((ev->u.ullval & ACE_INT16_MAX) != ev->u.ullval) { return 0; } - ev->u.sval = (short) ev->u.ullval; - ev->et = AST_Expression::EV_short; - return ev; + tmp.sval = (ACE_CDR::Short) ev->u.ullval; + break; case AST_Expression::EV_bool: - ev->u.sval = (short) ev->u.bval; - ev->et = AST_Expression::EV_short; - return ev; + tmp.sval = (ACE_CDR::Short) ev->u.bval; + break; case AST_Expression::EV_float: - if (ev->u.fval > (float) ACE_INT16_MAX - || ev->u.fval < (float) ACE_INT16_MIN) + if (ev->u.fval > (ACE_CDR::Float) ACE_INT16_MAX + || ev->u.fval < (ACE_CDR::Float) ACE_INT16_MIN) { return 0; } - ev->u.sval = (short) ev->u.fval; - ev->et = AST_Expression::EV_short; - return ev; + tmp.sval = (ACE_CDR::Short) ev->u.fval; + break; case AST_Expression::EV_double: - if (ev->u.dval > (double) ACE_INT16_MAX - || ev->u.dval < (double) ACE_INT16_MIN) + if (ev->u.dval > (ACE_CDR::Double) ACE_INT16_MAX + || ev->u.dval < (ACE_CDR::Double) ACE_INT16_MIN) { return 0; } - ev->u.sval = (short) ev->u.dval; - ev->et = AST_Expression::EV_short; - return ev; + tmp.sval = (ACE_CDR::Short) ev->u.dval; + break; case AST_Expression::EV_char: - ev->u.sval = (short) ev->u.cval; - ev->et = AST_Expression::EV_short; - return ev; + tmp.sval = (ACE_CDR::Short) ev->u.cval; + break; case AST_Expression::EV_wchar: if (ev->u.wcval > (ACE_CDR::WChar) ACE_INT16_MAX) { return 0; } - ev->u.sval = (short) ev->u.wcval; - ev->et = AST_Expression::EV_short; - return ev; + tmp.sval = (ACE_CDR::Short) ev->u.wcval; + break; case AST_Expression::EV_octet: - ev->u.sval = (short) ev->u.oval; - ev->et = AST_Expression::EV_short; - return ev; + tmp.sval = (ACE_CDR::Short) ev->u.oval; + break; case AST_Expression::EV_int8: - ev->u.sval = (short) ev->u.int8val; - ev->et = t; - return ev; + tmp.sval = (ACE_CDR::Short) ev->u.int8val; + break; case AST_Expression::EV_uint8: - ev->u.sval = (short) ev->u.uint8val; - ev->et = t; - return ev; + tmp.sval = (ACE_CDR::Short) ev->u.uint8val; + break; default: return 0; } + break; + case AST_Expression::EV_ushort: switch (ev->et) { @@ -685,28 +677,25 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.usval = (unsigned short) ev->u.sval; - ev->et = AST_Expression::EV_ushort; - return ev; + tmp.usval = (ACE_CDR::UShort) ev->u.sval; + break; case AST_Expression::EV_long: - if (ev->u.lval > (long) ACE_UINT16_MAX + if (ev->u.lval > (ACE_CDR::Long) ACE_UINT16_MAX || ev->u.lval < 0) { return 0; } - ev->u.usval = (unsigned short) ev->u.lval; - ev->et = AST_Expression::EV_ushort; - return ev; + tmp.usval = (ACE_CDR::UShort) ev->u.lval; + break; case AST_Expression::EV_ulong: - if (ev->u.ulval > (unsigned long) ACE_UINT16_MAX) + if (ev->u.ulval > (ACE_CDR::ULong) ACE_UINT16_MAX) { return 0; } - ev->u.usval = (unsigned short) ev->u.ulval; - ev->et = AST_Expression::EV_ushort; - return ev; + tmp.usval = (ACE_CDR::UShort) ev->u.ulval; + break; case AST_Expression::EV_longlong: if (ev->u.llval > (ACE_CDR::LongLong) ACE_UINT16_MAX || ev->u.llval < 0) @@ -714,156 +703,137 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.usval = (unsigned short) ev->u.llval; - ev->et = AST_Expression::EV_ushort; - return ev; + tmp.usval = (ACE_CDR::UShort) ev->u.llval; + break; case AST_Expression::EV_ulonglong: if ((ev->u.ullval & ACE_UINT16_MAX) != ev->u.ullval) { return 0; } - ev->u.usval = (unsigned short) ev->u.ullval; - ev->et = AST_Expression::EV_ushort; - return ev; + tmp.usval = (ACE_CDR::UShort) ev->u.ullval; + break; case AST_Expression::EV_bool: - ev->u.usval = (unsigned short) ev->u.bval; - ev->et = AST_Expression::EV_ushort; - return ev; + tmp.usval = (ACE_CDR::UShort) ev->u.bval; + break; case AST_Expression::EV_float: if (ev->u.fval < 0.0 - || ev->u.fval > (float) ACE_UINT16_MAX) + || ev->u.fval > (ACE_CDR::Float) ACE_UINT16_MAX) { return 0; } - ev->u.usval = (unsigned short) ev->u.fval; - ev->et = AST_Expression::EV_ushort; - return ev; + tmp.usval = (ACE_CDR::UShort) ev->u.fval; + break; case AST_Expression::EV_double: if (ev->u.dval < 0.0 - || ev->u.dval > (double) ACE_UINT16_MAX) + || ev->u.dval > (ACE_CDR::Double) ACE_UINT16_MAX) { return 0; } - ev->u.usval = (unsigned short) ev->u.dval; - ev->et = AST_Expression::EV_ushort; - return ev; + tmp.usval = (ACE_CDR::UShort) ev->u.dval; + break; case AST_Expression::EV_char: if ((signed char) ev->u.cval < 0) { return 0; } - ev->u.usval = (unsigned short) ev->u.cval; - ev->et = AST_Expression::EV_ushort; - return ev; + tmp.usval = (ACE_CDR::UShort) ev->u.cval; + break; case AST_Expression::EV_wchar: - ev->u.usval = (unsigned short) ev->u.wcval; - ev->et = AST_Expression::EV_ushort; - return ev; + tmp.usval = (ACE_CDR::UShort) ev->u.wcval; + break; case AST_Expression::EV_octet: - ev->u.usval = (unsigned short) ev->u.oval; - ev->et = AST_Expression::EV_ushort; - return ev; + tmp.usval = (ACE_CDR::UShort) ev->u.oval; + break; case AST_Expression::EV_int8: if (ev->u.int8val < 0) return 0; - ev->u.usval = static_cast (ev->u.int8val); - ev->et = t; - return ev; + tmp.usval = static_cast (ev->u.int8val); + break; case AST_Expression::EV_uint8: - ev->u.usval = static_cast (ev->u.uint8val); - ev->et = t; - return ev; + tmp.usval = static_cast (ev->u.uint8val); + break; default: return 0; } + break; + case AST_Expression::EV_long: switch (ev->et) { case AST_Expression::EV_short: - ev->u.lval = (long) ev->u.sval; - ev->et = AST_Expression::EV_long; - return ev; + tmp.lval = (ACE_CDR::Long) ev->u.sval; + break; case AST_Expression::EV_ushort: - ev->u.lval = (long) ev->u.usval; - ev->et = AST_Expression::EV_long; - return ev; + tmp.lval = (ACE_CDR::Long) ev->u.usval; + break; case AST_Expression::EV_ulong: - if (ev->u.ulval > (unsigned long) ACE_INT32_MAX) + if (ev->u.ulval > (ACE_CDR::ULong) ACE_INT32_MAX) { return 0; } - ev->u.lval = (long) ev->u.ulval; - ev->et = AST_Expression::EV_long; - return ev; + tmp.lval = (ACE_CDR::Long) ev->u.ulval; + break; case AST_Expression::EV_longlong: if (ev->u.llval > (ACE_CDR::LongLong) ACE_INT32_MAX || ev->u.llval < (ACE_CDR::LongLong) ACE_INT32_MIN) { return 0; } - ev->u.lval = (long) ev->u.llval; - ev->et = AST_Expression::EV_long; - return ev; + tmp.lval = (ACE_CDR::Long) ev->u.llval; + break; case AST_Expression::EV_ulonglong: if ((ev->u.ullval & ACE_INT32_MAX) != ev->u.ullval) { return 0; } - ev->u.lval = (long) ev->u.ullval; - ev->et = AST_Expression::EV_long; - return ev; + tmp.lval = (ACE_CDR::Long) ev->u.ullval; + break; case AST_Expression::EV_bool: - ev->u.lval = (long) ev->u.bval; - ev->et = AST_Expression::EV_long; - return ev; + tmp.lval = (ACE_CDR::Long) ev->u.bval; + break; case AST_Expression::EV_float: - if (ev->u.fval > (float) LONG_MAX - || ev->u.fval < (float) ACE_INT32_MIN) + if (ev->u.fval > (ACE_CDR::Float) ACE_INT32_MAX + || ev->u.fval < (ACE_CDR::Float) ACE_INT32_MIN) { return 0; } - ev->u.lval = (long) ev->u.fval; - ev->et = AST_Expression::EV_long; - return ev; + tmp.lval = (ACE_CDR::Long) ev->u.fval; + break; case AST_Expression::EV_double: - if (ev->u.dval > (double) LONG_MAX - || ev->u.dval < (double) ACE_INT32_MIN) + if (ev->u.dval > (ACE_CDR::Double) ACE_INT32_MAX + || ev->u.dval < (ACE_CDR::Double) ACE_INT32_MIN) { return 0; } - ev->u.lval = (long) ev->u.dval; - ev->et = AST_Expression::EV_long; - return ev; + tmp.lval = (ACE_CDR::Long) ev->u.dval; + break; case AST_Expression::EV_char: - ev->u.lval = (long) ev->u.cval; - ev->et = AST_Expression::EV_long; - return ev; + tmp.lval = (ACE_CDR::Long) ev->u.cval; + break; case AST_Expression::EV_wchar: - ev->u.lval = (long) ev->u.wcval; - ev->et = AST_Expression::EV_long; - return ev; + tmp.lval = (ACE_CDR::Long) ev->u.wcval; + break; case AST_Expression::EV_octet: - ev->u.lval = (long) ev->u.oval; - ev->et = AST_Expression::EV_long; - return ev; + tmp.lval = (ACE_CDR::Long) ev->u.oval; + break; case AST_Expression::EV_int8: - ev->u.lval = static_cast (ev->u.int8val); - ev->et = t; - return ev; + tmp.lval = static_cast (ev->u.int8val); + break; case AST_Expression::EV_uint8: - ev->u.lval = static_cast (ev->u.uint8val); - ev->et = t; - return ev; + tmp.lval = static_cast (ev->u.uint8val); + break; default: return 0; } + break; + case AST_Expression::EV_ulong: switch (ev->et) { @@ -873,22 +843,19 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.ulval = (unsigned long) ev->u.sval; - ev->et = AST_Expression::EV_ulong; - return ev; + tmp.ulval = (ACE_CDR::ULong) ev->u.sval; + break; case AST_Expression::EV_ushort: - ev->u.ulval = (unsigned long) ev->u.usval; - ev->et = AST_Expression::EV_ulong; - return ev; + tmp.ulval = (ACE_CDR::ULong) ev->u.usval; + break; case AST_Expression::EV_long: if (ev->u.lval < 0) { return 0; } - ev->u.ulval = (unsigned long) ev->u.lval; - ev->et = AST_Expression::EV_ulong; - return ev; + tmp.ulval = (ACE_CDR::ULong) ev->u.lval; + break; case AST_Expression::EV_longlong: if (ev->u.llval > (ACE_CDR::LongLong) ACE_UINT32_MAX || ev->u.llval < 0) @@ -896,89 +863,77 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.ulval = (unsigned long) ev->u.llval; - ev->et = AST_Expression::EV_ulong; - return ev; + tmp.ulval = (ACE_CDR::ULong) ev->u.llval; + break; case AST_Expression::EV_ulonglong: if ((ev->u.ullval & ACE_UINT32_MAX) != ev->u.ullval) { return 0; } - ev->u.ulval = (unsigned long) ev->u.ullval; - ev->et = AST_Expression::EV_ulong; - return ev; + tmp.ulval = (ACE_CDR::ULong) ev->u.ullval; + break; case AST_Expression::EV_bool: - ev->u.ulval = (unsigned long) ev->u.bval; - ev->et = AST_Expression::EV_ulong; - return ev; + tmp.ulval = (ACE_CDR::ULong) ev->u.bval; + break; case AST_Expression::EV_float: if (ev->u.fval < 0.0 - || ev->u.fval > (float) ACE_UINT32_MAX) + || ev->u.fval > (ACE_CDR::Float) ACE_UINT32_MAX) { return 0; } - ev->u.ulval = (unsigned long) ev->u.fval; - ev->et = AST_Expression::EV_ulong; - return ev; + tmp.ulval = (ACE_CDR::ULong) ev->u.fval; + break; case AST_Expression::EV_double: if (ev->u.dval < 0.0 - || ev->u.dval > (double) ACE_UINT32_MAX) + || ev->u.dval > (ACE_CDR::Double) ACE_UINT32_MAX) { return 0; } - ev->u.ulval = (unsigned long) ev->u.dval; - ev->et = AST_Expression::EV_ulong; - return ev; + tmp.ulval = (ACE_CDR::ULong) ev->u.dval; + break; case AST_Expression::EV_char: if ((signed char) ev->u.cval < 0) { return 0; } - ev->u.ulval = (unsigned long) ev->u.cval; - ev->et = AST_Expression::EV_ulong; - return ev; + tmp.ulval = (ACE_CDR::ULong) ev->u.cval; + break; case AST_Expression::EV_wchar: - ev->u.ulval = (unsigned long) ev->u.wcval; - ev->et = AST_Expression::EV_ulong; - return ev; + tmp.ulval = (ACE_CDR::ULong) ev->u.wcval; + break; case AST_Expression::EV_octet: - ev->u.ulval = (unsigned long) ev->u.oval; - ev->et = AST_Expression::EV_ulong; - return ev; + tmp.ulval = (ACE_CDR::ULong) ev->u.oval; + break; case AST_Expression::EV_int8: if (ev->u.int8val < 0) return 0; - ev->u.ulval = static_cast (ev->u.int8val); - ev->et = t; - return ev; + tmp.ulval = static_cast (ev->u.int8val); + break; case AST_Expression::EV_uint8: - ev->u.ulval = static_cast (ev->u.uint8val); - ev->et = t; - return ev; + tmp.ulval = static_cast (ev->u.uint8val); + break; default: return 0; } + break; + case AST_Expression::EV_longlong: switch (ev->et) { case AST_Expression::EV_short: - ev->u.llval = (ACE_CDR::LongLong) ev->u.sval; - ev->et = AST_Expression::EV_longlong; - return ev; + tmp.llval = (ACE_CDR::LongLong) ev->u.sval; + break; case AST_Expression::EV_ushort: - ev->u.llval = (ACE_CDR::LongLong) ev->u.usval; - ev->et = AST_Expression::EV_longlong; - return ev; + tmp.llval = (ACE_CDR::LongLong) ev->u.usval; + break; case AST_Expression::EV_long: - ev->u.llval = (ACE_CDR::LongLong) ev->u.lval; - ev->et = AST_Expression::EV_longlong; - return ev; + tmp.llval = (ACE_CDR::LongLong) ev->u.lval; + break; case AST_Expression::EV_ulong: - ev->u.llval = (ACE_CDR::LongLong) ev->u.ulval; - ev->et = AST_Expression::EV_longlong; - return ev; + tmp.llval = (ACE_CDR::LongLong) ev->u.ulval; + break; case AST_Expression::EV_ulonglong: if (ev->u.ullval > ACE_INT64_MAX) { @@ -987,55 +942,48 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.llval = static_cast (ev->u.ullval); - ev->et = AST_Expression::EV_longlong; - return ev; + break; case AST_Expression::EV_bool: - ev->u.llval = (ACE_CDR::LongLong) ev->u.bval; - ev->et = AST_Expression::EV_longlong; - return ev; + tmp.llval = (ACE_CDR::LongLong) ev->u.bval; + break; case AST_Expression::EV_float: - if (ev->u.fval > (float) ACE_INT64_MAX - || ev->u.fval < (float) ACE_INT64_MIN) + if (ev->u.fval > (ACE_CDR::Float) ACE_INT64_MAX + || ev->u.fval < (ACE_CDR::Float) ACE_INT64_MIN) { return 0; } - ev->u.llval = (ACE_CDR::LongLong) ev->u.fval; - ev->et = AST_Expression::EV_longlong; - return ev; + tmp.llval = (ACE_CDR::LongLong) ev->u.fval; + break; case AST_Expression::EV_double: - if (ev->u.dval > (double) ACE_INT64_MAX - || ev->u.dval < (double) ACE_INT64_MIN) + if (ev->u.dval > (ACE_CDR::Double) ACE_INT64_MAX + || ev->u.dval < (ACE_CDR::Double) ACE_INT64_MIN) { return 0; } - ev->u.llval = (ACE_CDR::LongLong) ev->u.dval; - ev->et = AST_Expression::EV_longlong; - return ev; + tmp.llval = (ACE_CDR::LongLong) ev->u.dval; + break; case AST_Expression::EV_char: - ev->u.llval = (ACE_CDR::LongLong) ev->u.cval; - ev->et = AST_Expression::EV_longlong; - return ev; + tmp.llval = (ACE_CDR::LongLong) ev->u.cval; + break; case AST_Expression::EV_wchar: - ev->u.llval = (ACE_CDR::LongLong) ev->u.wcval; - ev->et = AST_Expression::EV_longlong; - return ev; + tmp.llval = (ACE_CDR::LongLong) ev->u.wcval; + break; case AST_Expression::EV_octet: - ev->u.llval = (ACE_CDR::LongLong) ev->u.oval; - ev->et = AST_Expression::EV_longlong; - return ev; + tmp.llval = (ACE_CDR::LongLong) ev->u.oval; + break; case AST_Expression::EV_int8: - ev->u.llval = static_cast (ev->u.int8val); - ev->et = t; - return ev; + tmp.llval = static_cast (ev->u.int8val); + break; case AST_Expression::EV_uint8: - ev->u.llval = static_cast (ev->u.int8val); - ev->et = t; - return ev; + tmp.llval = static_cast (ev->u.int8val); + break; default: return 0; } + break; + case AST_Expression::EV_ulonglong: switch (ev->et) { @@ -1045,26 +993,22 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.ullval = ev->u.sval; - ev->et = AST_Expression::EV_ulonglong; - return ev; + tmp.ullval = ev->u.sval; + break; case AST_Expression::EV_ushort: - ev->u.ullval = ev->u.usval; - ev->et = AST_Expression::EV_ulonglong; - return ev; + tmp.ullval = ev->u.usval; + break; case AST_Expression::EV_long: if (ev->u.lval < 0) { return 0; } - ev->u.ullval = ev->u.lval; - ev->et = AST_Expression::EV_ulonglong; - return ev; + tmp.ullval = ev->u.lval; + break; case AST_Expression::EV_ulong: - ev->u.ullval = ev->u.ulval; - ev->et = AST_Expression::EV_ulonglong; - return ev; + tmp.ullval = ev->u.ulval; + break; case AST_Expression::EV_longlong: if (ev->u.llval < 0) { @@ -1073,213 +1017,177 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.ullval = static_cast (ev->u.llval); - ev->et = AST_Expression::EV_ulonglong; - return ev; + break; case AST_Expression::EV_bool: - ev->u.ullval = ev->u.bval; - ev->et = AST_Expression::EV_ulonglong; - return ev; + tmp.ullval = ev->u.bval; + break; case AST_Expression::EV_float: if (ev->u.fval < 0.0 - || ev->u.fval > (float) ACE_UINT64_MAX) + || ev->u.fval > (ACE_CDR::Float) ACE_UINT64_MAX) { return 0; } - ev->u.ullval = static_cast (ev->u.fval); - - ev->et = AST_Expression::EV_ulonglong; - return ev; + tmp.ullval = static_cast (ev->u.fval); + break; case AST_Expression::EV_double: if (ev->u.dval < 0.0 - || ev->u.dval > (double) ACE_UINT64_MAX) + || ev->u.dval > (ACE_CDR::Double) ACE_UINT64_MAX) { return 0; } - ev->u.ullval = static_cast (ev->u.dval); - - ev->et = AST_Expression::EV_ulonglong; - return ev; + tmp.ullval = static_cast (ev->u.dval); + break; case AST_Expression::EV_char: if ((signed char) ev->u.cval < 0) { return 0; } - ev->u.ullval = ev->u.cval; - ev->et = AST_Expression::EV_ulonglong; - return ev; + tmp.ullval = ev->u.cval; + break; case AST_Expression::EV_wchar: - ev->u.ullval = ev->u.wcval; - ev->et = AST_Expression::EV_ulonglong; - return ev; + tmp.ullval = ev->u.wcval; + break; case AST_Expression::EV_octet: - ev->u.ullval = ev->u.oval; - ev->et = AST_Expression::EV_ulonglong; - return ev; + tmp.ullval = ev->u.oval; + break; case AST_Expression::EV_int8: if (ev->u.int8val < 0) return 0; - ev->u.ullval = static_cast (ev->u.int8val); - ev->et = t; - return ev; + tmp.ullval = static_cast (ev->u.int8val); + break; case AST_Expression::EV_uint8: - ev->u.ullval = static_cast (ev->u.uint8val); - ev->et = t; - return ev; + tmp.ullval = static_cast (ev->u.uint8val); + break; default: return 0; } + break; + case AST_Expression::EV_bool: switch (ev->et) { case AST_Expression::EV_short: - ev->u.bval = (ev->u.sval == 0) ? false : true; - ev->et = AST_Expression::EV_bool; - return ev; + tmp.bval = (ev->u.sval == 0) ? false : true; + break; case AST_Expression::EV_ushort: - ev->u.bval = (ev->u.usval == 0) ? false : true; - ev->et = AST_Expression::EV_bool; - return ev; + tmp.bval = (ev->u.usval == 0) ? false : true; + break; case AST_Expression::EV_long: - ev->u.bval = (ev->u.lval == 0) ? false : true; - ev->et = AST_Expression::EV_bool; - return ev; + tmp.bval = (ev->u.lval == 0) ? false : true; + break; case AST_Expression::EV_ulong: - ev->u.bval = (ev->u.ulval == 0) ? false : true; - ev->et = AST_Expression::EV_bool; - return ev; + tmp.bval = (ev->u.ulval == 0) ? false : true; + break; case AST_Expression::EV_longlong: - ev->u.bval = (ev->u.llval == 0) ? false : true; - ev->et = AST_Expression::EV_bool; - return ev; + tmp.bval = (ev->u.llval == 0) ? false : true; + break; case AST_Expression::EV_ulonglong: - ev->u.bval = (ev->u.ullval == 0) ? false : true; - ev->et = AST_Expression::EV_bool; - return ev; + tmp.bval = (ev->u.ullval == 0) ? false : true; + break; case AST_Expression::EV_float: - ev->u.bval = ACE::is_equal (ev->u.fval, 0.0f) ? false : true; - ev->et = AST_Expression::EV_bool; - return ev; + tmp.bval = ACE::is_equal (ev->u.fval, 0.0f) ? false : true; + break; case AST_Expression::EV_double: - ev->u.bval = ACE::is_equal (ev->u.dval, 0.0) ? false : true; - ev->et = AST_Expression::EV_bool; - return ev; + tmp.bval = ACE::is_equal (ev->u.dval, 0.0) ? false : true; + break; case AST_Expression::EV_char: - ev->u.bval = (ev->u.cval == 0) ? false : true; - ev->et = AST_Expression::EV_bool; - return ev; + tmp.bval = (ev->u.cval == 0) ? false : true; + break; case AST_Expression::EV_wchar: - ev->u.bval = (ev->u.wcval == 0) ? false : true; - ev->et = AST_Expression::EV_bool; - return ev; + tmp.bval = (ev->u.wcval == 0) ? false : true; + break; case AST_Expression::EV_octet: - ev->u.bval = (ev->u.oval == 0) ? false : true; - ev->et = AST_Expression::EV_bool; - return ev; + tmp.bval = (ev->u.oval == 0) ? false : true; + break; case AST_Expression::EV_int8: - ev->u.bval = ev->u.int8val ? true : false; - ev->et = t; - return ev; + tmp.bval = ev->u.int8val ? true : false; + break; case AST_Expression::EV_uint8: - ev->u.bval = ev->u.uint8val ? true : false; - ev->et = t; - return ev; + tmp.bval = ev->u.uint8val ? true : false; + break; default: return 0; } + break; + case AST_Expression::EV_float: switch (ev->et) { case AST_Expression::EV_short: - ev->u.fval = (float) ev->u.sval; - ev->et = AST_Expression::EV_float; - return ev; + tmp.fval = (ACE_CDR::Float) ev->u.sval; + break; case AST_Expression::EV_ushort: - ev->u.fval = (float) ev->u.usval; - ev->et = AST_Expression::EV_float; - return ev; + tmp.fval = (ACE_CDR::Float) ev->u.usval; + break; case AST_Expression::EV_long: - ev->u.fval = (float) ev->u.lval; - ev->et = AST_Expression::EV_float; - return ev; + tmp.fval = (ACE_CDR::Float) ev->u.lval; + break; case AST_Expression::EV_ulong: - ev->u.fval = (float) ev->u.ulval; - ev->et = AST_Expression::EV_float; - return ev; + tmp.fval = (ACE_CDR::Float) ev->u.ulval; + break; case AST_Expression::EV_longlong: - if (ev->u.llval > FLT_MAX - || ev->u.llval < -(ACE_FLT_MAX)) + if (ev->u.llval > ACE_FLT_MAX + || ev->u.llval < ACE_FLT_LOWEST) { return 0; } - ev->u.fval = (float) ev->u.llval; - ev->et = AST_Expression::EV_float; - return ev; + tmp.fval = (ACE_CDR::Float) ev->u.llval; + break; case AST_Expression::EV_ulonglong: - ev->u.fval = (float) ((ACE_CDR::LongLong) ev->u.ullval); - ev->et = AST_Expression::EV_float; - return ev; + tmp.fval = (ACE_CDR::Float) ((ACE_CDR::LongLong) ev->u.ullval); + break; case AST_Expression::EV_bool: - ev->u.fval = (float) ((ev->u.bval == true) ? 1.0 : 0.0); - ev->et = AST_Expression::EV_float; - return ev; + tmp.fval = (ACE_CDR::Float) ev->u.bval ? 1.0 : 0.0; + break; case AST_Expression::EV_double: if (ev->u.dval > ACE_FLT_MAX - || ev->u.dval < -(ACE_FLT_MAX)) + || ev->u.dval < ACE_FLT_LOWEST) { return 0; } - ev->u.fval = (float) ev->u.dval; - ev->et = AST_Expression::EV_float; - return ev; + tmp.fval = (ACE_CDR::Float) ev->u.dval; + break; case AST_Expression::EV_char: - ev->u.fval = (float) ev->u.cval; - ev->et = AST_Expression::EV_float; - return ev; + tmp.fval = (ACE_CDR::Float) ev->u.cval; + break; case AST_Expression::EV_wchar: - ev->u.fval = (float) ev->u.wcval; - ev->et = AST_Expression::EV_float; - return ev; + tmp.fval = (ACE_CDR::Float) ev->u.wcval; + break; case AST_Expression::EV_octet: - ev->u.fval = (float) ev->u.oval; - ev->et = AST_Expression::EV_float; - return ev; + tmp.fval = (ACE_CDR::Float) ev->u.oval; + break; case AST_Expression::EV_int8: - ev->u.fval = static_cast (ev->u.int8val); - ev->et = t; - return ev; + tmp.fval = static_cast (ev->u.int8val); + break; case AST_Expression::EV_uint8: - ev->u.fval = static_cast (ev->u.uint8val); - ev->et = t; - return ev; + tmp.fval = static_cast (ev->u.uint8val); + break; default: return 0; } + break; + case AST_Expression::EV_double: switch (ev->et) { case AST_Expression::EV_short: - ev->u.dval = (double) ev->u.sval; - ev->et = AST_Expression::EV_double; - return ev; + tmp.dval = (ACE_CDR::Double) ev->u.sval; + break; case AST_Expression::EV_ushort: - ev->u.dval = (double) ev->u.usval; - ev->et = AST_Expression::EV_double; - return ev; + tmp.dval = (ACE_CDR::Double) ev->u.usval; + break; case AST_Expression::EV_long: - ev->u.dval = (double) ev->u.lval; - ev->et = AST_Expression::EV_double; - return ev; + tmp.dval = (ACE_CDR::Double) ev->u.lval; + break; case AST_Expression::EV_ulong: - ev->u.dval = (double) ev->u.ulval; - ev->et = AST_Expression::EV_double; - return ev; + tmp.dval = (ACE_CDR::Double) ev->u.ulval; + break; case AST_Expression::EV_longlong: - ev->u.dval = (double) ev->u.llval; - ev->et = AST_Expression::EV_double; - return ev; + tmp.dval = (ACE_CDR::Double) ev->u.llval; + break; case AST_Expression::EV_ulonglong: // Some compilers don't implement unsigned 64-bit to double // conversions, so we are stuck with the signed 64-bit max value. @@ -1288,82 +1196,72 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.dval = (double) ((ACE_CDR::LongLong) ev->u.ullval); - ev->et = AST_Expression::EV_double; - return ev; + tmp.dval = (ACE_CDR::Double) ((ACE_CDR::LongLong) ev->u.ullval); + break; case AST_Expression::EV_bool: - ev->u.dval = (ev->u.bval == true) ? 1.0 : 0.0; - ev->et = AST_Expression::EV_double; - return ev; + tmp.dval = ev->u.bval ? 1.0 : 0.0; + break; case AST_Expression::EV_float: - ev->u.dval = (double) ev->u.fval; - ev->et = AST_Expression::EV_double; - return ev; + tmp.dval = (ACE_CDR::Double) ev->u.fval; + break; case AST_Expression::EV_char: - ev->u.dval = (double) ev->u.cval; - ev->et = AST_Expression::EV_double; - return ev; + tmp.dval = (ACE_CDR::Double) ev->u.cval; + break; case AST_Expression::EV_wchar: - ev->u.dval = (double) ev->u.wcval; - ev->et = AST_Expression::EV_double; - return ev; + tmp.dval = (ACE_CDR::Double) ev->u.wcval; + break; case AST_Expression::EV_octet: - ev->u.dval = (double) ev->u.oval; - ev->et = AST_Expression::EV_double; - return ev; + tmp.dval = (ACE_CDR::Double) ev->u.oval; + break; case AST_Expression::EV_int8: - ev->u.dval = static_cast (ev->u.int8val); - ev->et = t; - return ev; + tmp.dval = static_cast (ev->u.int8val); + break; case AST_Expression::EV_uint8: - ev->u.dval = static_cast (ev->u.uint8val); - ev->et = t; - return ev; + tmp.dval = static_cast (ev->u.uint8val); + break; default: return 0; } + break; + case AST_Expression::EV_int8: case AST_Expression::EV_char: switch (ev->et) { case AST_Expression::EV_short: - if (ev->u.sval > (short) ACE_CHAR_MAX - || ev->u.sval < (short) ACE_CHAR_MIN) + if (ev->u.sval > (ACE_CDR::Short) ACE_CHAR_MAX + || ev->u.sval < (ACE_CDR::Short) ACE_CHAR_MIN) { return 0; } - ev->u.cval = (char) ev->u.sval; - ev->et = t; - return ev; + tmp.cval = (ACE_CDR::Char) ev->u.sval; + break; case AST_Expression::EV_ushort: - if (ev->u.usval > (unsigned short) ACE_CHAR_MAX) + if (ev->u.usval > (ACE_CDR::UShort) ACE_CHAR_MAX) { return 0; } - ev->u.cval = (char) ev->u.usval; - ev->et = t; - return ev; + tmp.cval = (ACE_CDR::Char) ev->u.usval; + break; case AST_Expression::EV_long: - if (ev->u.lval > (long) ACE_CHAR_MAX - || ev->u.lval < (long) ACE_CHAR_MIN) + if (ev->u.lval > (ACE_CDR::Long) ACE_CHAR_MAX + || ev->u.lval < (ACE_CDR::Long) ACE_CHAR_MIN) { return 0; } - ev->u.cval = (char) ev->u.lval; - ev->et = t; - return ev; + tmp.cval = (ACE_CDR::Char) ev->u.lval; + break; case AST_Expression::EV_ulong: - if (ev->u.ulval > (unsigned long) ACE_CHAR_MAX) + if (ev->u.ulval > (ACE_CDR::ULong) ACE_CHAR_MAX) { return 0; } - ev->u.cval = (char) ev->u.ulval; - ev->et = t; - return ev; + tmp.cval = (ACE_CDR::Char) ev->u.ulval; + break; case AST_Expression::EV_longlong: if (ev->u.llval > (ACE_CDR::LongLong) ACE_CHAR_MAX || ev->u.llval < (ACE_CDR::LongLong) ACE_CHAR_MIN) @@ -1371,51 +1269,45 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.cval = (char) ev->u.llval; - ev->et = t; - return ev; + tmp.cval = (ACE_CDR::Char) ev->u.llval; + break; case AST_Expression::EV_ulonglong: if (( ev->u.ullval & ACE_CHAR_MAX) != ev->u.ullval) { return 0; } - ev->u.cval = (char) ev->u.ullval; - ev->et = t; - return ev; + tmp.cval = (ACE_CDR::Char) ev->u.ullval; + break; case AST_Expression::EV_bool: - ev->u.cval = (char) ev->u.bval; - ev->et = t; - return ev; + tmp.cval = (ACE_CDR::Char) ev->u.bval; + break; case AST_Expression::EV_float: - if (ev->u.fval > (float) ACE_CHAR_MAX - || ev->u.fval < (float) ACE_CHAR_MIN) + if (ev->u.fval > (ACE_CDR::Float) ACE_CHAR_MAX + || ev->u.fval < (ACE_CDR::Float) ACE_CHAR_MIN) { return 0; } - ev->u.cval = (char) ev->u.fval; - ev->et = t; - return ev; + tmp.cval = (ACE_CDR::Char) ev->u.fval; + break; case AST_Expression::EV_double: - if (ev->u.dval > (double) ACE_CHAR_MAX - || ev->u.dval < (double) ACE_CHAR_MIN) + if (ev->u.dval > (ACE_CDR::Double) ACE_CHAR_MAX + || ev->u.dval < (ACE_CDR::Double) ACE_CHAR_MIN) { return 0; } - ev->u.cval = (char) ev->u.dval; - ev->et = t; - return ev; + tmp.cval = (ACE_CDR::Char) ev->u.dval; + break; case AST_Expression::EV_wchar: if (ev->u.wcval > (ACE_CDR::WChar) ACE_CHAR_MAX) { return 0; } - ev->u.cval = (char) ev->u.wcval; - ev->et = t; - return ev; + tmp.cval = (ACE_CDR::Char) ev->u.wcval; + break; case AST_Expression::EV_uint8: case AST_Expression::EV_octet: if (ev->u.oval > (unsigned char) ACE_CHAR_MAX) @@ -1423,17 +1315,17 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.cval = (char) ev->u.oval; - ev->et = t; - return ev; + tmp.cval = (ACE_CDR::Char) ev->u.oval; + break; case AST_Expression::EV_int8: case AST_Expression::EV_char: - ev->u.cval = static_cast (ev->u.int8val); - ev->et = t; - return ev; + tmp = ev->u; + break; default: return 0; } + break; + case AST_Expression::EV_wchar: switch (ev->et) { @@ -1443,13 +1335,11 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.wcval = (ACE_CDR::WChar) ev->u.sval; - ev->et = AST_Expression::EV_wchar; - return ev; + tmp.wcval = (ACE_CDR::WChar) ev->u.sval; + break; case AST_Expression::EV_ushort: - ev->u.wcval = (ACE_CDR::WChar) ev->u.usval; - ev->et = AST_Expression::EV_char; - return ev; + tmp.wcval = (ACE_CDR::WChar) ev->u.usval; + break; case AST_Expression::EV_long: if (ev->u.lval < 0 || ev->u.lval > ACE_WCHAR_MAX) @@ -1457,18 +1347,16 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.wcval = (ACE_CDR::WChar) ev->u.lval; - ev->et = AST_Expression::EV_wchar; - return ev; + tmp.wcval = (ACE_CDR::WChar) ev->u.lval; + break; case AST_Expression::EV_ulong: if (ev->u.ulval > ACE_WCHAR_MAX) { return 0; } - ev->u.wcval = (ACE_CDR::WChar) ev->u.ulval; - ev->et = AST_Expression::EV_wchar; - return ev; + tmp.wcval = (ACE_CDR::WChar) ev->u.ulval; + break; case AST_Expression::EV_longlong: if (ev->u.llval > (ACE_CDR::LongLong) ACE_WCHAR_MAX || ev->u.llval < 0) @@ -1476,108 +1364,95 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.wcval = (ACE_CDR::WChar) ev->u.llval; - ev->et = AST_Expression::EV_wchar; - return ev; + tmp.wcval = (ACE_CDR::WChar) ev->u.llval; + break; case AST_Expression::EV_ulonglong: if ((ev->u.ullval & ACE_WCHAR_MAX) != ev->u.ullval ) { return 0; } - ev->u.wcval = (ACE_CDR::WChar) ev->u.ullval; - ev->et = AST_Expression::EV_wchar; - return ev; + tmp.wcval = (ACE_CDR::WChar) ev->u.ullval; + break; case AST_Expression::EV_bool: - ev->u.wcval = (ACE_CDR::WChar) ev->u.bval; - ev->et = AST_Expression::EV_wchar; - return ev; + tmp.wcval = (ACE_CDR::WChar) ev->u.bval; + break; case AST_Expression::EV_float: - if (ev->u.fval > (float) ACE_WCHAR_MAX + if (ev->u.fval > (ACE_CDR::Float) ACE_WCHAR_MAX || ev->u.fval < 0) { return 0; } - ev->u.wcval = (ACE_CDR::WChar) ev->u.fval; - ev->et = AST_Expression::EV_wchar; - return ev; + tmp.wcval = (ACE_CDR::WChar) ev->u.fval; + break; case AST_Expression::EV_double: - if (ev->u.dval > (double) ACE_WCHAR_MAX + if (ev->u.dval > (ACE_CDR::Double) ACE_WCHAR_MAX || ev->u.dval < 0) { return 0; } - ev->u.wcval = (ACE_CDR::WChar) ev->u.dval; - ev->et = AST_Expression::EV_wchar; - return ev; + tmp.wcval = (ACE_CDR::WChar) ev->u.dval; + break; case AST_Expression::EV_char: + case AST_Expression::EV_int8: if ((signed char) ev->u.cval < 0) { return 0; } - ev->u.wcval = (ACE_CDR::WChar) ev->u.cval; - ev->et = AST_Expression::EV_wchar; - return ev; + tmp.wcval = (ACE_CDR::WChar) ev->u.cval; + break; case AST_Expression::EV_octet: - ev->u.wcval = (ACE_CDR::WChar) ev->u.oval; - ev->et = AST_Expression::EV_wchar; - return ev; - case AST_Expression::EV_int8: - ev->u.wcval = static_cast (ev->u.int8val); - ev->et = t; - return ev; + tmp.wcval = (ACE_CDR::WChar) ev->u.oval; + break; case AST_Expression::EV_uint8: - ev->u.wcval = static_cast (ev->u.uint8val); - ev->et = t; - return ev; + tmp.wcval = static_cast (ev->u.uint8val); + break; default: return 0; } + break; + case AST_Expression::EV_uint8: case AST_Expression::EV_octet: switch (ev->et) { case AST_Expression::EV_short: if (ev->u.sval < 0 - || ev->u.sval > (short) ACE_OCTET_MAX) + || ev->u.sval > (ACE_CDR::Short) ACE_OCTET_MAX) { return 0; } - ev->u.oval = (unsigned char) ev->u.sval; - ev->et = t; - return ev; + tmp.oval = (ACE_CDR::Octet) ev->u.sval; + break; case AST_Expression::EV_ushort: - if (ev->u.usval > (unsigned short) ACE_OCTET_MAX) + if (ev->u.usval > (ACE_CDR::UShort) ACE_OCTET_MAX) { return 0; } - ev->u.oval = (unsigned char) ev->u.usval; - ev->et = t; - return ev; + tmp.oval = (ACE_CDR::Octet) ev->u.usval; + break; case AST_Expression::EV_long: if (ev->u.lval < 0 - || ev->u.lval > (long) ACE_OCTET_MAX) + || ev->u.lval > (ACE_CDR::Long) ACE_OCTET_MAX) { return 0; } - ev->u.oval = (unsigned char) ev->u.lval; - ev->et = t; - return ev; + tmp.oval = (ACE_CDR::Octet) ev->u.lval; + break; case AST_Expression::EV_ulong: - if (ev->u.ulval > (unsigned long) ACE_OCTET_MAX) + if (ev->u.ulval > (ACE_CDR::ULong) ACE_OCTET_MAX) { return 0; } - ev->u.oval = (unsigned char) ev->u.ulval; - ev->et = t; - return ev; + tmp.oval = (ACE_CDR::Octet) ev->u.ulval; + break; case AST_Expression::EV_longlong: if (ev->u.llval < 0 || ev->u.llval > (ACE_CDR::LongLong) ACE_OCTET_MAX) @@ -1585,42 +1460,37 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.oval = (unsigned char) ev->u.llval; - ev->et = t; - return ev; + tmp.oval = (ACE_CDR::Octet) ev->u.llval; + break; case AST_Expression::EV_ulonglong: if ((ev->u.ullval & ACE_OCTET_MAX) != ev->u.ullval) { return 0; } - ev->u.oval = (unsigned char) ev->u.ullval; - ev->et = t; - return ev; + tmp.oval = (ACE_CDR::Octet) ev->u.ullval; + break; case AST_Expression::EV_bool: - ev->u.oval = (unsigned char) ((ev->u.bval == false) ? 1 : 0); - ev->et = t; - return ev; + tmp.oval = (ACE_CDR::Octet) ev->u.bval ? 1 : 0; + break; case AST_Expression::EV_float: if (ev->u.fval < 0.0 - || ev->u.fval > (float) ACE_OCTET_MAX) + || ev->u.fval > (ACE_CDR::Float) ACE_OCTET_MAX) { return 0; } - ev->u.oval = (unsigned char) ev->u.fval; - ev->et = t; - return ev; + tmp.oval = (ACE_CDR::Octet) ev->u.fval; + break; case AST_Expression::EV_double: if (ev->u.dval < 0.0 - || ev->u.dval > (double) ACE_OCTET_MAX) + || ev->u.dval > (ACE_CDR::Double) ACE_OCTET_MAX) { return 0; } - ev->u.oval = (unsigned char) ev->u.dval; - ev->et = t; - return ev; + tmp.oval = (ACE_CDR::Octet) ev->u.dval; + break; case AST_Expression::EV_int8: case AST_Expression::EV_char: if ((signed char) ev->u.cval < 0) @@ -1628,26 +1498,25 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.oval = (unsigned char) ev->u.cval; - ev->et = t; - return ev; + tmp.oval = (ACE_CDR::Octet) ev->u.cval; + break; case AST_Expression::EV_wchar: if (ev->u.wcval > (ACE_CDR::WChar) ACE_OCTET_MAX) { return 0; } - ev->u.oval = (unsigned char) ev->u.wcval; - ev->et = t; - return ev; + tmp.oval = (ACE_CDR::Octet) ev->u.wcval; + break; case AST_Expression::EV_uint8: case AST_Expression::EV_octet: - ev->u.oval = ev->u.oval; - ev->et = t; - return ev; + tmp = ev->u; + break; default: return 0; } + break; + case AST_Expression::EV_enum: switch (ev->et) { @@ -1660,7 +1529,9 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - return 0; + ev->et = t; + ev->u = tmp; + return ev; } // Integer literals may not be assigned to floating point constants, diff --git a/TAO/TAO_IDL/be/be_sequence.cpp b/TAO/TAO_IDL/be/be_sequence.cpp index 9fdbf97edd38e..c0c00716c28ac 100644 --- a/TAO/TAO_IDL/be/be_sequence.cpp +++ b/TAO/TAO_IDL/be/be_sequence.cpp @@ -752,6 +752,12 @@ be_sequence::gen_base_class_name (TAO_OutStream *os, { be_predefined_type *const predefined_type = dynamic_cast (base_type); + if (!predefined_type) + ACE_ERROR_RETURN ((LM_ERROR, + "(%N:%l) be_sequence::" + "gen_base_class_name - " + "Bad element type\n"), + -1); switch (predefined_type->pt ()) { case AST_PredefinedType::PT_uint8: diff --git a/TAO/TAO_IDL/include/ast_expression.h b/TAO/TAO_IDL/include/ast_expression.h index 42f7be07f3355..9a40a1a484463 100644 --- a/TAO/TAO_IDL/include/ast_expression.h +++ b/TAO/TAO_IDL/include/ast_expression.h @@ -169,7 +169,7 @@ class TAO_IDL_FE_Export AST_Expression { AST_ExprValue (void); - union + union Value { ACE_CDR::Short sval; // Contains short expression value. ACE_CDR::UShort usval; // Contains unsigned short expr value. @@ -189,9 +189,10 @@ class TAO_IDL_FE_Export AST_Expression ACE_CDR::Fixed fixedval; // Contains IDL fixed value. ACE_CDR::Int8 int8val; // Signed Byte Sized Integer ACE_CDR::UInt8 uint8val; // Unsigned Byte Sized Integer - } u; + }; ExprType et; + Value u; }; // Operations. From 2100bb4d9d73a251171b0d3808c059483314b885 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Thu, 8 Jul 2021 19:31:41 -0500 Subject: [PATCH 5/8] TAO/TAO_IDL/regen.pl: Exit with Error --- TAO/TAO_IDL/.gitignore | 1 + TAO/TAO_IDL/regen.pl | 8 ++++++-- TAO/TAO_IDL/tao_idl_fe.mpc | 7 +++++-- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/TAO/TAO_IDL/.gitignore b/TAO/TAO_IDL/.gitignore index 656394c8c3df9..481044e39ce07 100644 --- a/TAO/TAO_IDL/.gitignore +++ b/TAO/TAO_IDL/.gitignore @@ -1,3 +1,4 @@ /tao_idl /fe/idl.output +/fe/keywords.dat.tmp /bison_report diff --git a/TAO/TAO_IDL/regen.pl b/TAO/TAO_IDL/regen.pl index ed20f2bc56b91..28e79188c71d6 100755 --- a/TAO/TAO_IDL/regen.pl +++ b/TAO/TAO_IDL/regen.pl @@ -9,8 +9,12 @@ my $debug = exists($args{'-d'}); my $features = 'tao_idl_fe_gen=1'; -system "$ACE_ROOT/bin/mpc.pl -type gnuace -features $features tao_idl_fe.mpc"; +if (system "$ACE_ROOT/bin/mpc.pl -type gnuace -features $features tao_idl_fe.mpc") { + exit(1); +} utime undef, undef, 'fe/keywords.dat'; my $bison_target = $debug ? 'debug_bison' : 'y.tab'; -system "make -f GNUmakefile.TAO_IDL_GEN $features lex.yy $bison_target all"; +if (system "make -f GNUmakefile.TAO_IDL_GEN $features lex.yy $bison_target all") { + exit(1); +} diff --git a/TAO/TAO_IDL/tao_idl_fe.mpc b/TAO/TAO_IDL/tao_idl_fe.mpc index 020936b5c8926..6875856ee17c2 100644 --- a/TAO/TAO_IDL/tao_idl_fe.mpc +++ b/TAO/TAO_IDL/tao_idl_fe.mpc @@ -11,8 +11,11 @@ project(TAO_IDL_GEN) { BISON_FLAGS := -d --feature=caret --warnings=error=deprecated --warnings=error=empty-rule --warnings=error=conflicts-rr all: fe/fe_lookup.cpp fe/idl.yy.cpp fe/idl.tab.cpp fe/idl.tab.hpp GPERF ?= $(ACE_ROOT)/bin/ace_gperf - fe/fe_lookup.cpp: fe/keywords.dat - " $(GPERF) -M -J -c -C -D -E -T -f 0 -a -o -t -p -K keyword_ -L C++ -Z TAO_IDL_CPP_Keyword_Table -N lookup -k1,2,$$ $^ | sed -f fe/post_gperf.sed > $@" + fe/keywords.dat.tmp: fe/keywords.dat + " $(GPERF) -M -J -c -C -D -E -T -f 0 -a -o -t -p -K keyword_ -L C++ -Z TAO_IDL_CPP_Keyword_Table -N lookup -k1,2,$$ $^ > $@" + + fe/fe_lookup.cpp: fe/keywords.dat.tmp + " sed -f fe/post_gperf.sed $^ > $@" fe/idl.yy.cpp: fe/idl.ll " @echo 'WARNING: Potentially outdated $@'" From 74641777190b74d7e2b2e7a142299771f1086289 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Thu, 8 Jul 2021 20:22:38 -0500 Subject: [PATCH 6/8] ast_expression.cpp: Fix Uninitialized Value --- TAO/TAO_IDL/ast/ast_expression.cpp | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/TAO/TAO_IDL/ast/ast_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp index 6fd259cafa465..8e193cd2c3abb 100644 --- a/TAO/TAO_IDL/ast/ast_expression.cpp +++ b/TAO/TAO_IDL/ast/ast_expression.cpp @@ -940,8 +940,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.llval = - static_cast (ev->u.ullval); + tmp.llval = static_cast (ev->u.ullval); break; case AST_Expression::EV_bool: tmp.llval = (ACE_CDR::LongLong) ev->u.bval; @@ -1015,8 +1014,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, return 0; } - ev->u.ullval = - static_cast (ev->u.llval); + tmp.ullval = static_cast (ev->u.llval); break; case AST_Expression::EV_bool: tmp.ullval = ev->u.bval; @@ -1083,7 +1081,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, case AST_Expression::EV_longlong: tmp.bval = (ev->u.llval == 0) ? false : true; break; - case AST_Expression::EV_ulonglong: + case AST_Expression::EV_ulonglong: tmp.bval = (ev->u.ullval == 0) ? false : true; break; case AST_Expression::EV_float: @@ -1271,8 +1269,8 @@ coerce_value (AST_Expression::AST_ExprValue *ev, tmp.cval = (ACE_CDR::Char) ev->u.llval; break; - case AST_Expression::EV_ulonglong: - if (( ev->u.ullval & ACE_CHAR_MAX) != ev->u.ullval) + case AST_Expression::EV_ulonglong: + if ((ev->u.ullval & ACE_CHAR_MAX) != ev->u.ullval) { return 0; } @@ -1367,7 +1365,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, tmp.wcval = (ACE_CDR::WChar) ev->u.llval; break; case AST_Expression::EV_ulonglong: - if ((ev->u.ullval & ACE_WCHAR_MAX) != ev->u.ullval ) + if ((ev->u.ullval & ACE_WCHAR_MAX) != ev->u.ullval) { return 0; } @@ -1977,7 +1975,7 @@ AST_Expression::eval_bit_op (AST_Expression::EvalKind ek) this->pd_v1->set_ev (this->pd_v1->eval_internal (ek)); this->pd_v2->set_ev (this->pd_v2->eval_internal (ek)); - if (this->pd_v1->ev () == 0 || this->pd_v2->ev () == 0 ) + if (this->pd_v1->ev () == 0 || this->pd_v2->ev () == 0) { return 0; } From 3675e79e90533dfc63626ee0c4f0116d1ae9c902 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Thu, 8 Jul 2021 22:30:42 -0500 Subject: [PATCH 7/8] Replace a Stray nullptr with 0 --- TAO/TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TAO/TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp index 486f6ffbd0aad..b45851a5eea9a 100644 --- a/TAO/TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp +++ b/TAO/TAO_IDL/be/be_visitor_union/cdr_op_cs.cpp @@ -25,7 +25,7 @@ namespace { void serialize_disc (TAO_OutStream *os, AST_Expression::ExprType disc_type, bool out) { - const char* tmp_suffix = nullptr; + const char* tmp_suffix = 0; switch (disc_type) { case AST_Expression::EV_bool: From 8d789a12c3180f0308105054eeead7f5c181811c Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Fri, 9 Jul 2021 14:25:27 -0500 Subject: [PATCH 8/8] Update TAO/NEWS --- TAO/NEWS | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/TAO/NEWS b/TAO/NEWS index 360e633c94a9c..3008197c35dc4 100644 --- a/TAO/NEWS +++ b/TAO/NEWS @@ -1,3 +1,11 @@ +USER VISIBLE CHANGES BETWEEN TAO-2.5.13 and TAO-2.5.14 +====================================================== + +. Support for IDL 4 explicitly-named integer types like `int64` in TAO_IDL. + Support for `uint8` and `int8` is limited in TAO. Unlike the larger types, + these are new distinct types that are not aliases of existing types covered + by the CORBA specification. + USER VISIBLE CHANGES BETWEEN TAO-2.5.12 and TAO-2.5.13 ======================================================