From 8f4fcb1ed7a972b75530af8ecc1a4e0a932044d4 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Fri, 21 Dec 2018 17:27:31 -0600 Subject: [PATCH 01/19] TAO_IDL: IDL4 stdint-like Integers uint16, uint32, uint64, int16, int32, int64 from IDL 4.2 section 7.4.13.4.5 "Explicitly-named Integer Types" WIP uint8/int8 from IDL4.2 section 7.4.13.4.4 "Integers restricted to holding 8-bits of information" --- TAO/TAO_IDL/ast/ast_expression.cpp | 324 +++++++++++++++------------ TAO/TAO_IDL/fe/idl.ll | 65 ++++++ TAO/TAO_IDL/fe/idl.ypp | 42 ++++ TAO/TAO_IDL/include/ast_expression.h | 15 +- 4 files changed, 293 insertions(+), 153 deletions(-) diff --git a/TAO/TAO_IDL/ast/ast_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp index 7a6bc51052711..138c0fd83642f 100644 --- a/TAO/TAO_IDL/ast/ast_expression.cpp +++ b/TAO/TAO_IDL/ast/ast_expression.cpp @@ -532,13 +532,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) { @@ -627,6 +630,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; } @@ -642,8 +653,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) @@ -723,6 +732,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; } @@ -737,8 +755,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) { @@ -802,6 +818,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; } @@ -830,8 +854,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) @@ -891,6 +913,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; } @@ -913,8 +944,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) { @@ -961,6 +990,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; } @@ -1003,8 +1040,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; @@ -1048,6 +1083,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; } @@ -1078,8 +1122,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; @@ -1100,6 +1142,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; } @@ -1139,8 +1189,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)) @@ -1163,6 +1211,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; } @@ -1208,8 +1264,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; @@ -1222,6 +1276,14 @@ 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.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; } @@ -1309,8 +1371,6 @@ 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: - return ev; case AST_Expression::EV_wchar: if (ev->u.wcval > (ACE_CDR::WChar) ACE_CHAR_MAX) { @@ -1329,6 +1389,14 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.cval = (char) ev->u.oval; ev->et = AST_Expression::EV_char; return ev; + case AST_Expression::EV_int8: + ev->u.cval = static_cast (ev->u.int8val); + ev->et = t; + return ev; + case AST_Expression::EV_uint8: + ev->u.cval = static_cast (ev->u.uint8val); + ev->et = t; + return ev; default: return 0; } @@ -1419,12 +1487,18 @@ 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; } @@ -1530,7 +1604,13 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.oval = (unsigned char) ev->u.wcval; ev->et = AST_Expression::EV_octet; return ev; - case AST_Expression::EV_octet: + case AST_Expression::EV_int8: + ev->u.oval = reinterpret_cast (ev->u.int8val); + ev->et = t; + return ev; + case AST_Expression::EV_uint8: + ev->u.oval = ev->u.uint8val; // Same Type + ev->et = t; return ev; default: return 0; @@ -1538,38 +1618,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; } @@ -1593,6 +1646,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: @@ -1603,9 +1658,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: @@ -1615,23 +1672,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; } } @@ -1694,6 +1742,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; } @@ -2612,6 +2666,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; @@ -2718,6 +2778,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; } @@ -2817,6 +2883,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 ()) { @@ -2871,91 +2943,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 * @@ -3002,6 +2996,27 @@ dump_unary_expr (ACE_OSTREAM_TYPE &o, e->dump (o); } +void +dump_nibble (ACE_OSTREAM_TYPE &o, short value) +{ + value = value & 0x0000000F; + if (value < 0xA) { + o << value; + } else if (value == 0xA) { + o << 'A'; + } else if (value == 0xB) { + o << 'B'; + } else if (value == 0xC) { + o << 'C'; + } else if (value == 0xD) { + o << 'D'; + } else if (value == 0xE) { + o << 'E'; + } else if (value == 0xF) { + o << 'F'; + } +} + // Dump the supplied AST_ExprValue to the ostream o. static void dump_expr_val (ACE_OSTREAM_TYPE &o, AST_Expression::AST_ExprValue *ev) @@ -3033,7 +3048,8 @@ 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); + dump_nibble (o, ev->u.wcval); + dump_nibble (o, ev->u.wcval >> 4); break; case AST_Expression::EV_bool: o << (ev->u.bval == true ? "TRUE" : "FALSE"); @@ -3048,6 +3064,7 @@ dump_expr_val (ACE_OSTREAM_TYPE &o, AST_Expression::AST_ExprValue *ev) o << "(null string)"; } break; + case AST_Expression::EV_enum: case AST_Expression::EV_longlong: o << ev->u.llval; break; @@ -3057,7 +3074,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 << reinterpret_cast (ev->u.int8val); + break; + case AST_Expression::EV_uint8: + o << reinterpret_cast (ev->u.uint8val); + break; default: o << "(Can not dump this type)"; } @@ -3368,6 +3390,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/fe/idl.ll b/TAO/TAO_IDL/fe/idl.ll index 3d3844417560c..87209a2681d96 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.ypp b/TAO/TAO_IDL/fe/idl.ypp index 923357f130c26..a7f78f33d008f 100644 --- a/TAO/TAO_IDL/fe/idl.ypp +++ b/TAO/TAO_IDL/fe/idl.ypp @@ -288,6 +288,16 @@ AST_Expression::ExprType t_param_const_type = AST_Expression::EV_none; %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 @@ -2870,6 +2880,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 @@ -2885,6 +2911,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/include/ast_expression.h b/TAO/TAO_IDL/include/ast_expression.h index ec2dfc4eb2234..752116ea4850d 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. @@ -181,6 +185,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::Char int8val; // Signed Byte Sized Integer + ACE_CDR::Octet uint8val; // Unsigned Byte Sized Integer } u; ExprType et; @@ -280,10 +286,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; From c7a62920dbfc44687ea63e28fd9382451751ffe5 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Wed, 20 Feb 2019 21:30:14 -0600 Subject: [PATCH 02/19] Add new limits for new types to Basic_Types.h --- ACE/ace/Basic_Types.h | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/ACE/ace/Basic_Types.h b/ACE/ace/Basic_Types.h index b9feefb5ea493..9e9f1ce037562 100644 --- a/ACE/ace/Basic_Types.h +++ b/ACE/ace/Basic_Types.h @@ -652,18 +652,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. From ce28b30d566a6b6ea6f05f80348ced804d8f5ba3 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Wed, 20 Feb 2019 21:34:42 -0600 Subject: [PATCH 03/19] ast_constant.cpp: Move C++ specific code out of the FE --- TAO/TAO_IDL/ast/ast_constant.cpp | 93 +------------------ TAO/TAO_IDL/ast/ast_template_module.cpp | 11 +-- 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/include/ast_constant.h | 6 -- 6 files changed, 11 insertions(+), 110 deletions(-) diff --git a/TAO/TAO_IDL/ast/ast_constant.cpp b/TAO/TAO_IDL/ast/ast_constant.cpp index f3a51add81e2a..39b698d1af973 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_template_module.cpp b/TAO/TAO_IDL/ast/ast_template_module.cpp index 364040dc4ca64..fe31452da9269 100644 --- a/TAO/TAO_IDL/ast/ast_template_module.cpp +++ b/TAO/TAO_IDL/ast/ast_template_module.cpp @@ -69,18 +69,15 @@ 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) { - AST_Constant *c = - AST_Constant::narrow_from_decl (d); - - s = c->exprtype_to_string (); + AST_Constant *c = AST_Constant::narrow_from_decl (d); + s = AST_Expression::exprtype_to_string (c->et ()); } else { 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 a8100df3ba0b6..d613bb4a5285d 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/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. From d004d8da4fb79a35587aa1d19a91e6df5422a9b7 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Fri, 7 Jun 2019 16:46:18 -0500 Subject: [PATCH 04/19] Adding Files As is For Merge --- TAO/TAO_IDL/ast/ast_expression.cpp | 26 +++++----- TAO/TAO_IDL/ast/ast_union.cpp | 23 ++++++++- TAO/TAO_IDL/be/be_helper.cpp | 8 ++- TAO/TAO_IDL/be/be_union_branch.cpp | 3 ++ .../be/be_visitor_constant/constant.cpp | 50 +++++++++++++++++++ .../be/be_visitor_union/discriminant_ci.cpp | 3 ++ TAO/TAO_IDL/fe/fe_utils.cpp | 8 +++ TAO/TAO_IDL/include/ast_predefined_type.h | 2 + 8 files changed, 107 insertions(+), 16 deletions(-) create mode 100644 TAO/TAO_IDL/be/be_visitor_constant/constant.cpp diff --git a/TAO/TAO_IDL/ast/ast_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp index 138c0fd83642f..bb4acbf9aeca8 100644 --- a/TAO/TAO_IDL/ast/ast_expression.cpp +++ b/TAO/TAO_IDL/ast/ast_expression.cpp @@ -1287,6 +1287,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, default: return 0; } + case AST_Expression::EV_int8: case AST_Expression::EV_char: switch (ev->et) { @@ -1380,6 +1381,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.cval = (char) ev->u.wcval; ev->et = AST_Expression::EV_char; return ev; + case AST_Expression::EV_uint8: case AST_Expression::EV_octet: if (ev->u.oval > (unsigned char) ACE_CHAR_MAX) { @@ -1390,13 +1392,10 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->et = AST_Expression::EV_char; 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; - case AST_Expression::EV_uint8: - ev->u.cval = static_cast (ev->u.uint8val); - ev->et = t; - return ev; default: return 0; } @@ -1502,6 +1501,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, default: return 0; } + case AST_Expression::EV_uint8: case AST_Expression::EV_octet: switch (ev->et) { @@ -1586,6 +1586,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.oval = (unsigned char) ev->u.dval; ev->et = AST_Expression::EV_octet; return ev; + case AST_Expression::EV_int8: case AST_Expression::EV_char: if ((signed char) ev->u.cval < 0) { @@ -1604,12 +1605,9 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->u.oval = (unsigned char) ev->u.wcval; ev->et = AST_Expression::EV_octet; return ev; - case AST_Expression::EV_int8: - ev->u.oval = reinterpret_cast (ev->u.int8val); - ev->et = t; - return ev; case AST_Expression::EV_uint8: - ev->u.oval = ev->u.uint8val; // Same Type + case AST_Expression::EV_octet: + ev->u.oval = ev->u.oval; ev->et = t; return ev; default: @@ -2944,9 +2942,9 @@ AST_Expression::compare (AST_Expression *vc) case EV_enum: return pd_ev->u.eval == vc->ev ()->u.eval; case EV_int8: - return pd_ev->u.int8val = vc->ev ()->u.int8val; + return pd_ev->u.int8val == vc->ev ()->u.int8val; case EV_uint8: - return pd_ev->u.uint8val = vc->ev ()->u.uint8val; + return pd_ev->u.uint8val == vc->ev ()->u.uint8val; default: return false; } @@ -2996,7 +2994,7 @@ dump_unary_expr (ACE_OSTREAM_TYPE &o, e->dump (o); } -void +static void dump_nibble (ACE_OSTREAM_TYPE &o, short value) { value = value & 0x0000000F; @@ -3075,10 +3073,10 @@ dump_expr_val (ACE_OSTREAM_TYPE &o, AST_Expression::AST_ExprValue *ev) o << ev->u.fixedval; break; case AST_Expression::EV_int8: - o << reinterpret_cast (ev->u.int8val); + o << static_cast (ev->u.int8val); break; case AST_Expression::EV_uint8: - o << reinterpret_cast (ev->u.uint8val); + o << static_cast (ev->u.uint8val); break; default: o << "(Can not dump this type)"; diff --git a/TAO/TAO_IDL/ast/ast_union.cpp b/TAO/TAO_IDL/ast/ast_union.cpp index 1d3c906c4836d..86a0afb6665fe 100644 --- a/TAO/TAO_IDL/ast/ast_union.cpp +++ b/TAO/TAO_IDL/ast/ast_union.cpp @@ -155,12 +155,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_char; + 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_char; + break; case AST_PredefinedType::PT_octet: this->pd_udisc_type = AST_Expression::EV_octet; break; @@ -607,7 +613,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; } @@ -682,6 +697,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; @@ -785,6 +803,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_helper.cpp b/TAO/TAO_IDL/be/be_helper.cpp index 09fef320c5a1e..144139085d202 100644 --- a/TAO/TAO_IDL/be/be_helper.cpp +++ b/TAO/TAO_IDL/be/be_helper.cpp @@ -598,7 +598,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%x", ev->u.oval); break; case AST_Expression::EV_bool: this->TAO_OutStream::print ("%s", ev->u.bval ? "true" : "false"); @@ -612,6 +612,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 ("%u", ev->u.uint8val); + break; default: break; } diff --git a/TAO/TAO_IDL/be/be_union_branch.cpp b/TAO/TAO_IDL/be/be_union_branch.cpp index 17dd1156d1676..d3b59af4a5e47 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_constant/constant.cpp b/TAO/TAO_IDL/be/be_visitor_constant/constant.cpp new file mode 100644 index 0000000000000..1c11373df702f --- /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::Octet"; + case AST_Expression::EV_uint8: + return "CORBA::Octet"; + default: + return 0; + } + + return 0; +} 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 1d1f537292171..3ebc32eb1d545 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/fe/fe_utils.cpp b/TAO/TAO_IDL/fe/fe_utils.cpp index 7e4ac13855b4b..96cbe6d4f152a 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/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, From 7549f0b34c18f6629b426d020395352d16b2ab4e Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Fri, 7 Jun 2019 17:21:56 -0500 Subject: [PATCH 05/19] tao_idl: Committing Parser as is --- TAO/TAO_IDL/fe/fe_lookup.cpp | 2 +- TAO/TAO_IDL/fe/idl.tab.cpp | 4331 ++++++++++++++++++---------------- TAO/TAO_IDL/fe/idl.tab.hpp | 24 +- TAO/TAO_IDL/fe/idl.yy.cpp | 1744 ++++++++------ 4 files changed, 3246 insertions(+), 2855 deletions(-) diff --git a/TAO/TAO_IDL/fe/fe_lookup.cpp b/TAO/TAO_IDL/fe/fe_lookup.cpp index 02e266926e752..cab5c866ace38 100644 --- a/TAO/TAO_IDL/fe/fe_lookup.cpp +++ b/TAO/TAO_IDL/fe/fe_lookup.cpp @@ -2,7 +2,7 @@ #include "ace/OS_NS_string.h" /* C++ code produced by gperf version 2.8 (ACE version) */ -/* Command-line: /mnt/arch/data/work/oci/ace_tao/tao_idl_fixes/ACE_TAO/ACE/bin/ace_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/keywords.dat */ +/* Command-line: /home/fred/oci/ace_tao/xtypes/ACE_TAO/ACE/bin/ace_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/keywords.dat */ unsigned int TAO_IDL_CPP_Keyword_Table::hash (const char *str, unsigned int len) { diff --git a/TAO/TAO_IDL/fe/idl.tab.cpp b/TAO/TAO_IDL/fe/idl.tab.cpp index ec67661f4154b..485dc1283e6ba 100644 --- a/TAO/TAO_IDL/fe/idl.tab.cpp +++ b/TAO/TAO_IDL/fe/idl.tab.cpp @@ -265,13 +265,21 @@ extern int tao_yydebug; IDL_FIXED_PT_LITERAL = 333, IDL_TRUETOK = 334, IDL_FALSETOK = 335, - IDL_SCOPE_DELIMITOR = 336, - IDL_LEFT_SHIFT = 337, - IDL_RIGHT_SHIFT = 338, - IDL_WCHAR_LITERAL = 339, - IDL_WSTRING_LITERAL = 340, - IDL_ANNOTATION_DECL = 341, - IDL_ANNOTATION_SYMBOL = 342 + IDL_INT8 = 336, + IDL_UINT8 = 337, + IDL_INT16 = 338, + IDL_UINT16 = 339, + IDL_INT32 = 340, + IDL_UINT32 = 341, + IDL_INT64 = 342, + IDL_UINT64 = 343, + IDL_SCOPE_DELIMITOR = 344, + IDL_LEFT_SHIFT = 345, + IDL_RIGHT_SHIFT = 346, + IDL_WCHAR_LITERAL = 347, + IDL_WSTRING_LITERAL = 348, + IDL_ANNOTATION_DECL = 349, + IDL_ANNOTATION_SYMBOL = 350 }; #endif @@ -325,7 +333,7 @@ union YYSTYPE AST_Decls *decls_val; Decl_Annotations_Pair *decl_annotations_pair_val; -#line 329 "fe/idl.tab.cpp" /* yacc.c:355 */ +#line 337 "fe/idl.tab.cpp" /* yacc.c:355 */ }; typedef union YYSTYPE YYSTYPE; @@ -342,7 +350,7 @@ int tao_yyparse (void); /* Copy the second part of user declarations. */ -#line 346 "fe/idl.tab.cpp" /* yacc.c:358 */ +#line 354 "fe/idl.tab.cpp" /* yacc.c:358 */ #ifdef short # undef short @@ -584,21 +592,21 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 4 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 1537 +#define YYLAST 1865 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 109 +#define YYNTOKENS 117 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 398 /* YYNRULES -- Number of rules. */ -#define YYNRULES 595 +#define YYNRULES 603 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 876 +#define YYNSTATES 884 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 342 +#define YYMAXUTOK 350 #define YYTRANSLATE(YYX) \ ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -610,16 +618,16 @@ static const yytype_uint8 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, @@ -641,73 +649,75 @@ static const yytype_uint8 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 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { - 0, 387, 387, 390, 391, 399, 414, 420, 424, 428, - 436, 435, 445, 444, 454, 453, 463, 462, 472, 471, - 481, 480, 490, 489, 499, 498, 508, 507, 517, 516, - 526, 525, 535, 534, 544, 543, 553, 552, 562, 561, - 575, 574, 586, 625, 629, 585, 645, 653, 667, 677, - 707, 711, 652, 734, 738, 739, 743, 744, 749, 754, - 748, 840, 845, 839, 914, 915, 920, 958, 962, 919, - 978, 977, 989, 1026, 1056, 1089, 1088, 1097, 1104, 1105, - 1106, 1107, 1111, 1115, 1120, 1163, 1167, 1119, 1194, 1237, - 1241, 1192, 1258, 1256, 1296, 1295, 1307, 1311, 1318, 1323, - 1331, 1356, 1382, 1446, 1447, 1451, 1452, 1453, 1458, 1462, - 1469, 1488, 1489, 1494, 1493, 1502, 1501, 1510, 1509, 1518, - 1517, 1526, 1525, 1534, 1533, 1542, 1541, 1550, 1549, 1561, - 1573, 1571, 1596, 1603, 1613, 1612, 1638, 1636, 1661, 1671, - 1682, 1726, 1753, 1783, 1787, 1791, 1795, 1782, 1857, 1858, - 1859, 1860, 1861, 1862, 1863, 1867, 1871, 1939, 1941, 1943, - 1944, 1956, 1957, 1969, 1970, 1982, 1983, 1992, 2004, 2005, - 2014, 2026, 2027, 2036, 2045, 2057, 2058, 2067, 2076, 2088, - 2146, 2147, 2154, 2158, 2163, 2170, 2174, 2178, 2183, 2187, - 2191, 2195, 2202, 2271, 2270, 2297, 2298, 2302, 2303, 2304, - 2306, 2305, 2314, 2315, 2319, 2373, 2377, 2384, 2397, 2407, - 2415, 2414, 2497, 2501, 2508, 2517, 2524, 2532, 2538, 2545, - 2556, 2555, 2564, 2568, 2572, 2576, 2602, 2610, 2609, 2681, - 2682, 2686, 2693, 2694, 2720, 2721, 2722, 2723, 2724, 2725, - 2726, 2727, 2731, 2732, 2733, 2734, 2738, 2739, 2740, 2744, - 2745, 2749, 2761, 2759, 2784, 2791, 2792, 2796, 2808, 2806, - 2831, 2838, 2854, 2872, 2873, 2877, 2881, 2885, 2892, 2896, - 2900, 2907, 2911, 2915, 2922, 2929, 2933, 2940, 2947, 2954, - 2961, 2969, 2968, 2982, 3013, 3017, 2981, 3034, 3037, 3038, - 3042, 3060, 3064, 3059, 3122, 3121, 3134, 3133, 3146, 3150, - 3183, 3187, 3246, 3250, 3145, 3272, 3279, 3292, 3301, 3308, - 3309, 3418, 3421, 3422, 3427, 3431, 3426, 3467, 3466, 3478, - 3488, 3506, 3514, 3513, 3527, 3531, 3526, 3547, 3546, 3597, - 3622, 3646, 3650, 3681, 3685, 3645, 3709, 3714, 3712, 3718, - 3722, 3762, 3766, 3760, 3854, 3925, 3934, 3924, 3948, 3958, - 3962, 3956, 4007, 4033, 4042, 4046, 4040, 4082, 4108, 4116, - 4115, 4162, 4172, 4190, 4198, 4202, 4197, 4262, 4263, 4268, - 4272, 4276, 4280, 4267, 4347, 4351, 4355, 4359, 4346, 4435, - 4439, 4468, 4472, 4434, 4488, 4492, 4558, 4562, 4486, 4597, - 4602, 4607, 4614, 4615, 4626, 4631, 4674, 4625, 4694, 4693, - 4702, 4701, 4712, 4717, 4715, 4721, 4726, 4730, 4725, 4769, - 4768, 4777, 4776, 4787, 4792, 4790, 4796, 4801, 4805, 4800, - 4850, 4857, 4858, 4859, 4966, 4970, 4974, 4982, 4986, 4981, - 4995, 5003, 5007, 5002, 5016, 5024, 5028, 5023, 5037, 5045, - 5049, 5044, 5058, 5065, 5077, 5075, 5098, 5105, 5133, 5170, - 5171, 5175, 5204, 5243, 5247, 5203, 5264, 5268, 5262, 5309, - 5308, 5316, 5323, 5324, 5329, 5328, 5337, 5336, 5345, 5344, - 5353, 5352, 5361, 5360, 5369, 5368, 5377, 5376, 5386, 5476, - 5482, 5507, 5613, 5622, 5626, 5632, 5704, 5776, 5850, 5849, - 5897, 5901, 5905, 5909, 5913, 5917, 5896, 5970, 5969, 5977, - 5984, 5989, 5997, 6001, 5996, 6011, 6012, 6016, 6018, 6017, - 6026, 6025, 6038, 6061, 6036, 6087, 6114, 6085, 6138, 6139, - 6140, 6144, 6145, 6149, 6176, 6206, 6250, 6254, 6204, 6269, - 6278, 6296, 6307, 6306, 6344, 6393, 6397, 6342, 6412, 6416, - 6423, 6427, 6431, 6435, 6439, 6443, 6447, 6451, 6455, 6459, - 6467, 6498, 6511, 6518, 6543, 6561, 6568, 6583, 6590, 6600, - 6604, 6624, 6628, 6599, 6641, 6647, 6650, 6657, 6656, 6663, - 6662, 6669, 6668, 6678, 6747, 6797, 6813, 6826, 6833, 6892, - 6897, 6901, 6896, 6962, 6966, 6961, 6979, 6980, 6985, 6984, - 6993, 6992, 7001, 7000, 7009, 7008 + 0, 397, 397, 400, 401, 409, 424, 430, 434, 438, + 446, 445, 455, 454, 464, 463, 473, 472, 482, 481, + 491, 490, 500, 499, 509, 508, 518, 517, 527, 526, + 536, 535, 545, 544, 554, 553, 563, 562, 572, 571, + 585, 584, 596, 635, 639, 595, 655, 663, 677, 687, + 717, 721, 662, 744, 748, 749, 753, 754, 759, 764, + 758, 850, 855, 849, 924, 925, 930, 968, 972, 929, + 988, 987, 999, 1036, 1066, 1099, 1098, 1107, 1114, 1115, + 1116, 1117, 1121, 1125, 1130, 1173, 1177, 1129, 1204, 1247, + 1251, 1202, 1268, 1266, 1306, 1305, 1317, 1321, 1328, 1333, + 1341, 1366, 1392, 1456, 1457, 1461, 1462, 1463, 1468, 1472, + 1479, 1498, 1499, 1504, 1503, 1512, 1511, 1520, 1519, 1528, + 1527, 1536, 1535, 1544, 1543, 1552, 1551, 1560, 1559, 1571, + 1583, 1581, 1606, 1613, 1623, 1622, 1648, 1646, 1671, 1681, + 1692, 1736, 1763, 1793, 1797, 1801, 1805, 1792, 1867, 1868, + 1869, 1870, 1871, 1872, 1873, 1877, 1881, 1949, 1951, 1953, + 1954, 1966, 1967, 1979, 1980, 1992, 1993, 2002, 2014, 2015, + 2024, 2036, 2037, 2046, 2055, 2067, 2068, 2077, 2086, 2098, + 2156, 2157, 2164, 2168, 2173, 2180, 2184, 2188, 2193, 2197, + 2201, 2205, 2212, 2281, 2280, 2307, 2308, 2312, 2313, 2314, + 2316, 2315, 2324, 2325, 2329, 2383, 2387, 2394, 2407, 2417, + 2425, 2424, 2507, 2511, 2518, 2527, 2534, 2542, 2548, 2555, + 2566, 2565, 2574, 2578, 2582, 2586, 2612, 2620, 2619, 2691, + 2692, 2696, 2703, 2704, 2730, 2731, 2732, 2733, 2734, 2735, + 2736, 2737, 2741, 2742, 2743, 2744, 2748, 2749, 2750, 2754, + 2755, 2759, 2771, 2769, 2794, 2801, 2802, 2806, 2818, 2816, + 2841, 2848, 2864, 2882, 2883, 2887, 2891, 2895, 2899, 2903, + 2907, 2911, 2918, 2922, 2926, 2930, 2934, 2938, 2942, 2949, + 2953, 2957, 2964, 2971, 2975, 2982, 2989, 2996, 3003, 3011, + 3010, 3024, 3055, 3059, 3023, 3076, 3079, 3080, 3084, 3102, + 3106, 3101, 3164, 3163, 3176, 3175, 3188, 3192, 3225, 3229, + 3288, 3292, 3187, 3314, 3321, 3334, 3343, 3350, 3351, 3460, + 3463, 3464, 3469, 3473, 3468, 3509, 3508, 3520, 3530, 3548, + 3556, 3555, 3569, 3573, 3568, 3589, 3588, 3639, 3664, 3688, + 3692, 3723, 3727, 3687, 3751, 3756, 3754, 3760, 3764, 3804, + 3808, 3802, 3896, 3967, 3976, 3966, 3990, 4000, 4004, 3998, + 4049, 4075, 4084, 4088, 4082, 4124, 4150, 4158, 4157, 4204, + 4214, 4232, 4240, 4244, 4239, 4304, 4305, 4310, 4314, 4318, + 4322, 4309, 4389, 4393, 4397, 4401, 4388, 4477, 4481, 4510, + 4514, 4476, 4530, 4534, 4600, 4604, 4528, 4639, 4644, 4649, + 4656, 4657, 4668, 4673, 4716, 4667, 4736, 4735, 4744, 4743, + 4754, 4759, 4757, 4763, 4768, 4772, 4767, 4811, 4810, 4819, + 4818, 4829, 4834, 4832, 4838, 4843, 4847, 4842, 4892, 4899, + 4900, 4901, 5008, 5012, 5016, 5024, 5028, 5023, 5037, 5045, + 5049, 5044, 5058, 5066, 5070, 5065, 5079, 5087, 5091, 5086, + 5100, 5107, 5119, 5117, 5140, 5147, 5175, 5212, 5213, 5217, + 5246, 5285, 5289, 5245, 5306, 5310, 5304, 5351, 5350, 5358, + 5365, 5366, 5371, 5370, 5379, 5378, 5387, 5386, 5395, 5394, + 5403, 5402, 5411, 5410, 5419, 5418, 5428, 5518, 5524, 5549, + 5655, 5664, 5668, 5674, 5746, 5818, 5892, 5891, 5939, 5943, + 5947, 5951, 5955, 5959, 5938, 6012, 6011, 6019, 6026, 6031, + 6039, 6043, 6038, 6053, 6054, 6058, 6060, 6059, 6068, 6067, + 6080, 6103, 6078, 6129, 6156, 6127, 6180, 6181, 6182, 6186, + 6187, 6191, 6218, 6248, 6292, 6296, 6246, 6311, 6320, 6338, + 6349, 6348, 6386, 6435, 6439, 6384, 6454, 6458, 6465, 6469, + 6473, 6477, 6481, 6485, 6489, 6493, 6497, 6501, 6509, 6540, + 6553, 6560, 6585, 6603, 6610, 6625, 6632, 6642, 6646, 6666, + 6670, 6641, 6683, 6689, 6692, 6699, 6698, 6705, 6704, 6711, + 6710, 6720, 6789, 6839, 6855, 6868, 6875, 6934, 6939, 6943, + 6938, 7004, 7008, 7003, 7021, 7022, 7027, 7026, 7035, 7034, + 7043, 7042, 7051, 7050 }; #endif @@ -734,21 +744,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", @@ -839,18 +850,19 @@ static const yytype_uint16 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 -611 +#define YYPACT_NINF -643 #define yypact_value_is_default(Yystate) \ - (!!((Yystate) == (-611))) + (!!((Yystate) == (-643))) -#define YYTABLE_NINF -537 +#define YYTABLE_NINF -545 #define yytable_value_is_error(Yytable_value) \ 0 @@ -859,94 +871,95 @@ static const yytype_uint16 yytoknum[] = STATE-NUM. */ static const yytype_int16 yypact[] = { - -611, 63, 739, -611, -611, -611, -611, -611, -611, -611, - -611, -611, -611, -611, 41, 66, 98, 107, -611, 41, - 41, -611, 38, 38, -611, -611, 41, -611, -611, 7, - -611, 674, 29, 56, -611, -611, 70, -611, -611, -611, - -611, -611, -611, 270, -611, -611, -611, -611, -611, 1312, - 93, -611, -611, 69, -611, 128, -611, -611, -611, -611, - -611, -611, -611, -611, -611, -611, -611, -611, -611, -611, - -611, -611, -611, -611, 110, -611, -611, -611, 110, -611, - -611, 124, 132, 586, 38, 41, 1421, 41, 41, 41, - 41, -611, -611, -611, 71, 41, 112, -611, 118, 41, - -611, 110, 41, 135, 146, 41, -611, -611, 16, -611, - 21, -611, -611, 149, -611, 151, 168, 705, -611, -611, - -611, 181, 228, -611, 188, 204, 217, 166, -611, 159, - -611, -611, -611, -611, -611, -611, 216, -611, -611, -611, - -611, -611, -611, 227, -611, -611, -611, -611, -611, -611, - -611, -611, -611, -611, -611, -611, -611, -611, -611, -611, - -611, 128, -611, -611, -611, 15, -611, -611, 218, -611, - 220, 225, 226, -611, 38, 229, 231, 233, -611, 235, - 236, 237, 239, 241, 240, 246, 243, -611, -611, -611, - 248, 249, -611, -611, -611, -611, 227, -611, -611, -611, - -611, -611, -611, -611, -611, -611, 227, -611, -611, -611, - -611, -611, -611, -611, -611, 250, -611, 251, -611, -611, - 253, -611, 340, -611, -611, -611, 34, 44, -611, -611, - -611, 586, -611, -611, -611, -611, 254, -611, -611, -611, - -611, 341, -611, -611, 49, 255, -611, -611, -611, -611, - -611, -611, -611, -611, 344, -611, 117, 258, 306, -611, - -611, -611, -611, -611, -611, 227, -611, -611, 257, -611, - -611, -611, -611, -611, -611, -611, -611, -611, 306, 265, - 266, -611, -611, -611, 41, 41, 267, 268, -611, -611, - -611, 272, -611, 340, -611, -611, -611, -611, -611, -611, - 357, -611, 276, 275, -611, -611, -611, -611, -611, -611, - -611, -611, -611, -611, 152, 152, 152, 117, 227, -611, - -611, 274, 277, 279, 104, 145, 140, -611, -611, -611, - -611, -611, 38, -611, -611, -611, -611, 281, -611, 38, - -611, 117, 117, 117, 273, -611, -611, -611, -611, -611, - -611, -611, 139, -611, 1, -611, -611, -611, -611, -611, - -611, -611, -611, 38, 306, -611, -611, -611, 290, 253, - 1158, 1181, 294, 288, -611, 705, -611, -611, -611, 280, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 295, 41, -611, 227, 910, 523, 117, -611, -611, -611, - -611, -611, 117, -611, 1261, -611, -611, -611, 428, 622, - -611, -611, -611, -611, 62, 332, 38, 38, -611, -611, - -611, -611, -611, 62, -611, 309, -611, 307, -611, 310, - -611, -611, 945, 227, -611, 38, 306, -611, -611, -611, - -611, 315, -611, -611, 41, -611, -611, 318, 319, 405, - 323, -611, -611, 277, 279, 104, 145, 145, 140, 140, - -611, -611, -611, -611, -611, 324, -611, -611, -611, 327, - -611, -611, -611, -611, -611, -611, 866, -611, -611, -611, - -611, -611, 329, -611, 1402, -611, -611, 333, 328, 1003, - 331, 334, 335, 330, -611, 325, -611, 338, -611, -611, - -611, 339, 345, 252, 38, 38, 38, -611, 346, -611, - -611, -611, -611, -611, -611, -611, 41, 41, -611, 347, - -611, -611, -611, 1029, 826, 393, 1456, -611, 227, 340, - -611, -611, 57, 64, 350, 351, 352, 340, 353, -611, - -611, 3, -611, 48, -611, -611, 359, 360, 227, -611, - 154, 1421, -611, 413, -611, -611, -611, -611, 49, -611, - 355, -611, 367, 369, 376, 378, 380, -611, 227, -611, - -611, -611, -611, -611, 381, 382, -611, -611, -611, -611, - -611, -611, -611, -611, -611, 117, -611, 340, -611, 383, - 41, -611, -611, 464, 227, -611, -611, -611, -611, -611, - -611, 65, 65, 65, 385, -611, 386, 387, 388, 389, - 390, 397, -611, -611, -611, 398, 399, 400, 404, -611, - -611, -611, -611, -611, -611, -611, -611, -611, -611, 117, - -611, -611, -611, 41, -611, 408, 401, 409, -611, 434, - -611, -611, -611, -611, -611, 414, 117, 415, 1287, -611, - 38, -611, -611, -611, -611, -611, -611, -611, -611, -611, - 50, -611, 330, 338, -611, -611, 395, -611, -611, -611, - -611, -611, -611, -611, -611, -611, -611, 403, 403, -611, - -611, -611, -611, 1456, 41, -611, 117, 402, -611, -611, - -611, -611, -611, 417, 422, 424, 425, 154, -611, -611, - -611, 38, -611, -611, -611, -611, 429, 227, 54, -611, - -611, 430, -611, 481, -611, -611, -611, -611, -611, -611, - -611, -611, 38, -611, -611, -611, -611, -611, 227, 431, - 1074, -611, -611, 403, -611, 433, 419, 493, 507, 507, - 41, 492, 457, 444, -611, 227, 467, -611, -611, 454, - -611, -611, -611, -611, 455, -611, -611, -611, -611, -611, - -611, -611, -611, -611, 501, 559, 458, -611, 507, 85, - 1456, -611, 471, 461, 507, 465, 509, 41, 38, -611, - -611, 480, -611, 468, 215, 507, -611, -611, -611, -611, - -611, -611, -611, -611, -611, -611, -611, -611, -611, -611, - -611, -611, 227, -611, 479, -611, -611, -611, -611, 469, - -611, -611, -611, 489, 117, 485, 490, 72, -611, 219, - 41, 493, 38, 38, 474, 41, 559, -611, 487, 1456, - 543, -611, -611, -611, -611, -611, 1376, -611, -611, -611, - 477, 478, -611, -611, -611, -611, -611, -611, -611, 495, - -611, -611, -611, -611, 38, 215, 41, 486, -611, 41, - 497, 499, -611, -611, -611, -611, -611, -611, 517, -611, - 500, 513, -611, -611, 518, -611 + -643, 84, 1344, -643, -643, -643, -643, -643, -643, -643, + -643, -643, -643, -643, 116, 176, 101, 55, -643, 116, + 116, -643, 42, 42, -643, -643, 116, -643, -643, 64, + -643, 252, 59, 112, -643, -643, -2, -643, -643, -643, + -643, -643, -643, 531, -643, -643, -643, -643, -643, 1544, + 104, -643, -643, 117, -643, 196, -643, -643, -643, -643, + -643, -643, -643, -643, -643, -643, -643, -643, -643, -643, + -643, -643, -643, -643, 144, -643, -643, -643, 144, -643, + -643, 158, 150, 1776, 42, 116, 1738, 116, 116, 116, + 116, -643, -643, -643, 5, 116, 63, -643, 71, 116, + -643, 144, 116, 166, 169, 116, -643, -643, 8, -643, + 11, -643, -643, 160, -643, 177, 175, 635, -643, -643, + -643, 181, 230, -643, 186, 188, 189, 109, -643, 157, + -643, -643, -643, -643, -643, -643, 192, -643, -643, -643, + -643, -643, -643, -643, -643, -643, -643, -643, -643, -643, + -643, 199, -643, -643, -643, -643, -643, -643, -643, -643, + -643, -643, -643, -643, -643, -643, -643, -643, -643, 196, + -643, -643, -643, -9, -643, -643, 194, -643, 197, 203, + 204, -643, 42, 190, 207, 195, -643, 208, 210, 211, + 213, 198, 214, 217, 220, -643, -643, -643, 221, 224, + -643, -643, -643, -643, 199, -643, -643, -643, -643, -643, + -643, -643, -643, -643, 199, -643, -643, -643, -643, -643, + -643, -643, -643, 226, -643, 227, -643, -643, 232, -643, + 308, -643, -643, -643, 38, 40, -643, -643, -643, 1776, + -643, -643, -643, -643, 222, -643, -643, -643, -643, 324, + -643, -643, 49, 228, -643, -643, -643, -643, -643, -643, + -643, -643, 322, -643, 127, 235, 288, -643, -643, -643, + -643, -643, -643, 199, -643, -643, 223, -643, -643, -643, + -643, -643, -643, -643, -643, -643, 288, 241, 244, -643, + -643, -643, 116, 116, 245, 246, -643, -643, -643, 243, + -643, 308, -643, -643, -643, -643, -643, -643, 342, -643, + 248, 249, -643, -643, -643, -643, -643, -643, -643, -643, + -643, -643, 174, 174, 174, 127, 199, -643, -643, 242, + 247, 251, 95, 103, 80, -643, -643, -643, -643, -643, + 42, -643, -643, -643, -643, 253, -643, 42, -643, 127, + 127, 127, 237, -643, -643, -643, -643, -643, -643, -643, + 164, -643, -25, -643, -643, -643, -643, -643, -643, -643, + -643, 42, 288, -643, -643, -643, 256, 232, 707, 1458, + 260, 254, -643, 635, -643, -643, -643, 255, 127, 127, + 127, 127, 127, 127, 127, 127, 127, 127, 257, 116, + -643, 199, 1110, 834, 127, -643, -643, -643, -643, -643, + 127, -643, 1408, -643, -643, -643, 229, 1018, -643, -643, + -643, -643, 69, 302, 42, 42, -643, -643, -643, -643, + -643, 69, -643, 264, -643, 262, -643, 261, -643, -643, + 1202, 199, -643, 42, 288, -643, -643, -643, -643, 270, + -643, -643, 116, -643, -643, 271, 273, 365, 276, -643, + -643, 247, 251, 95, 103, 103, 80, 80, -643, -643, + -643, -643, -643, 274, -643, -643, -643, 279, -643, -643, + -643, -643, -643, -643, 491, -643, -643, -643, -643, -643, + 284, -643, 1651, -643, -643, 287, 285, 1632, 286, 291, + 292, 290, -643, 280, -643, 296, -643, -643, -643, 289, + 309, 1070, 42, 42, 42, -643, 312, -643, -643, -643, + -643, -643, -643, -643, 116, 116, -643, 316, -643, -643, + -643, 1294, 926, 357, 1757, -643, 199, 308, -643, -643, + 56, 57, 320, 321, 326, 308, 327, -643, -643, -13, + -643, 41, -643, -643, 328, 329, 199, -643, 149, 1738, + -643, 391, -643, -643, -643, -643, 49, -643, 332, -643, + 333, 334, 335, 336, 337, -643, 199, -643, -643, -643, + -643, -643, 338, 339, -643, -643, -643, -643, -643, -643, + -643, -643, -643, 127, -643, 308, -643, 341, 116, -643, + -643, 416, 199, -643, -643, -643, -643, -643, -643, 60, + 60, 60, 343, -643, 344, 347, 348, 349, 350, 351, + -643, -643, -643, 353, 354, 355, 359, -643, -643, -643, + -643, -643, -643, -643, -643, -643, -643, 127, -643, -643, + -643, 116, -643, 360, 361, 367, -643, 385, -643, -643, + -643, -643, -643, 370, 127, 371, 1519, -643, 42, -643, + -643, -643, -643, -643, -643, -643, -643, -643, 44, -643, + 290, 296, -643, -643, 358, -643, -643, -643, -643, -643, + -643, -643, -643, -643, -643, 363, 363, -643, -643, -643, + -643, 1757, 116, -643, 127, 362, -643, -643, -643, -643, + -643, 378, 382, 383, 384, 149, -643, -643, -643, 42, + -643, -643, -643, -643, 387, 199, 48, -643, -643, 388, + -643, 445, -643, -643, -643, -643, -643, -643, -643, -643, + 42, -643, -643, -643, -643, -643, 199, 389, 581, -643, + -643, 363, -643, 396, 372, 446, 447, 447, 116, 433, + 393, 380, -643, 199, 412, -643, -643, 400, -643, -643, + -643, -643, 404, -643, -643, -643, -643, -643, -643, -643, + -643, -643, 461, 520, 410, -643, 447, 86, 1757, -643, + 424, 417, 447, 418, 470, 116, 42, -643, -643, 435, + -643, 419, 161, 447, -643, -643, -643, -643, -643, -643, + -643, -643, -643, -643, -643, -643, -643, -643, -643, -643, + 199, -643, 434, -643, -643, -643, -643, 439, -643, -643, + -643, 442, 127, 457, 462, 39, -643, 193, 116, 446, + 42, 42, 448, 116, 520, -643, 460, 1757, 524, -643, + -643, -643, -643, -643, 1608, -643, -643, -643, 450, 451, + -643, -643, -643, -643, -643, -643, -643, 458, -643, -643, + -643, -643, 42, 161, 116, 453, -643, 116, 471, 454, + -643, -643, -643, -643, -643, -643, 494, -643, 456, 469, + -643, -643, 506, -643 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -955,183 +968,184 @@ static const yytype_int16 yypact[] = static const yytype_uint16 yydefact[] = { 4, 0, 0, 3, 1, 38, 143, 40, 70, 220, - 281, 296, 331, 379, 0, 0, 0, 0, 94, 0, - 0, 490, 0, 0, 559, 580, 0, 6, 7, 42, + 289, 304, 339, 387, 0, 0, 0, 0, 94, 0, + 0, 498, 0, 0, 567, 588, 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, 226, 283, 222, 330, 223, 249, 250, 224, - 20, 14, 16, 28, 450, 449, 452, 30, 488, 32, - 520, 522, 521, 519, 77, 538, 539, 518, 77, 34, + 0, 12, 226, 291, 222, 338, 223, 249, 250, 224, + 20, 14, 16, 28, 458, 457, 460, 30, 496, 32, + 528, 530, 529, 527, 77, 546, 547, 526, 77, 34, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 261, 225, 77, 0, 77, 88, 77, 0, - 82, 77, 0, 456, 531, 0, 138, 134, 0, 133, + 82, 77, 0, 464, 539, 0, 138, 134, 0, 133, 0, 209, 209, 0, 46, 0, 0, 0, 209, 8, 9, 0, 97, 72, 0, 0, 0, 265, 267, 0, - 271, 272, 275, 276, 277, 278, 274, 279, 280, 345, - 353, 358, 92, 233, 102, 229, 231, 232, 230, 234, - 263, 264, 235, 239, 236, 238, 237, 240, 241, 283, - 246, 0, 247, 248, 242, 0, 245, 243, 352, 244, - 357, 0, 0, 5, 0, 207, 0, 0, 298, 0, - 0, 0, 0, 0, 0, 0, 0, 532, 525, 534, - 0, 0, 583, 579, 39, 274, 156, 144, 148, 152, - 153, 149, 150, 151, 154, 155, 41, 71, 221, 227, - 282, 297, 332, 380, 73, 529, 74, 0, 530, 95, - 461, 491, 0, 447, 136, 448, 0, 0, 193, 43, - 25, 0, 545, 541, 542, 547, 544, 548, 546, 543, - 540, 0, 48, 552, 0, 0, 23, 96, 75, 67, - 27, 85, 266, 273, 268, 270, 0, 0, 99, 344, - 341, 349, 354, 19, 11, 210, 13, 284, 0, 21, - 15, 17, 29, 453, 31, 502, 489, 33, 99, 0, - 0, 35, 37, 587, 0, 0, 0, 0, 89, 459, - 457, 499, 135, 0, 560, 208, 581, 196, 4, 549, - 0, 553, 0, 550, 182, 183, 184, 186, 189, 188, - 190, 191, 187, 185, 0, 0, 0, 0, 179, 578, - 157, 158, 159, 161, 163, 165, 168, 171, 175, 180, - 577, 62, 0, 112, 104, 269, 192, 0, 346, 0, - 93, 0, 0, 0, 213, 209, 299, 463, 506, 533, - 526, 535, 584, 145, 261, 228, 254, 255, 256, 262, - 333, 381, 112, 0, 99, 497, 492, 137, 0, 461, - 0, 0, 3, 0, 49, 0, 176, 177, 178, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 575, 0, 76, 132, 0, 0, 0, 209, 98, 342, - 350, 355, 0, 211, 0, 285, 289, 209, 454, 0, - 112, 104, 369, 374, 0, 484, 0, 0, 592, 367, - 368, 588, 590, 0, 594, 0, 586, 0, 209, 251, - 209, 289, 0, 460, 458, 0, 99, 561, 582, 200, - 194, 0, 202, 195, 0, 197, 203, 0, 0, 0, - 0, 551, 181, 160, 162, 164, 166, 167, 169, 170, - 172, 173, 174, 209, 63, 129, 127, 389, 390, 0, - 111, 119, 113, 123, 121, 125, 0, 115, 117, 394, - 109, 108, 0, 103, 0, 105, 106, 0, 0, 0, - 0, 0, 0, 133, 214, 0, 215, 218, 294, 291, - 290, 0, 209, 0, 0, 0, 0, 474, 0, 462, - 464, 466, 468, 470, 472, 476, 0, 0, 507, 0, - 505, 508, 510, 0, 0, 0, 0, 480, 479, 0, - 483, 482, 0, 0, 0, 0, 0, 0, 0, 585, - 146, 0, 252, 0, 334, 339, 209, 0, 498, 493, - 0, 0, 198, 206, 199, 45, 554, 50, 0, 130, - 0, 69, 0, 0, 0, 0, 0, 393, 423, 420, - 421, 422, 384, 392, 0, 0, 209, 87, 110, 107, - 348, 347, 343, 351, 356, 0, 212, 0, 216, 0, - 0, 286, 288, 265, 310, 305, 306, 307, 308, 300, - 309, 0, 0, 0, 0, 455, 0, 0, 0, 0, - 0, 0, 512, 515, 504, 0, 0, 0, 0, 370, - 375, 478, 573, 574, 593, 589, 591, 481, 595, 0, - 364, 360, 363, 0, 340, 0, 336, 0, 91, 0, - 571, 567, 569, 562, 566, 0, 0, 0, 0, 576, - 0, 128, 120, 114, 124, 122, 126, 209, 116, 118, - 0, 219, 0, 218, 295, 292, 0, 487, 485, 486, - 475, 465, 467, 469, 471, 473, 477, 0, 0, 509, - 511, 528, 537, 0, 0, 147, 0, 361, 253, 335, - 337, 383, 494, 0, 0, 0, 0, 564, 201, 205, - 204, 0, 56, 42, 51, 55, 0, 131, 0, 395, - 217, 0, 301, 398, 513, 516, 371, 376, 260, 365, - 362, 209, 0, 572, 568, 570, 563, 565, 58, 0, - 0, 57, 385, 0, 293, 0, 0, 0, 430, 430, - 0, 434, 257, 0, 338, 495, 0, 52, 54, 0, - 396, 302, 399, 406, 0, 405, 427, 514, 517, 372, - 431, 377, 258, 366, 501, 0, 411, 386, 430, 0, - 0, 401, 402, 0, 430, 0, 438, 0, 0, 496, - 558, 0, 557, 0, 0, 430, 397, 317, 324, 322, - 303, 313, 314, 321, 407, 403, 428, 373, 432, 435, - 378, 259, 500, 59, 555, 410, 424, 425, 426, 0, - 416, 417, 387, 0, 0, 0, 0, 0, 209, 319, - 0, 0, 0, 0, 0, 0, 0, 412, 413, 0, - 442, 318, 325, 323, 304, 312, 0, 320, 408, 404, - 0, 0, 436, 60, 556, 414, 418, 439, 388, 0, - 327, 315, 429, 433, 0, 0, 0, 0, 326, 0, - 0, 0, 415, 419, 440, 328, 316, 437, 0, 446, - 0, 443, 441, 444, 0, 445 + 279, 280, 283, 284, 285, 286, 282, 287, 288, 353, + 361, 366, 268, 275, 269, 276, 270, 277, 271, 278, + 92, 233, 102, 229, 231, 232, 230, 234, 263, 264, + 235, 239, 236, 238, 237, 240, 241, 291, 246, 0, + 247, 248, 242, 0, 245, 243, 360, 244, 365, 0, + 0, 5, 0, 207, 0, 0, 306, 0, 0, 0, + 0, 0, 0, 0, 0, 540, 533, 542, 0, 0, + 591, 587, 39, 282, 156, 144, 148, 152, 153, 149, + 150, 151, 154, 155, 41, 71, 221, 227, 290, 305, + 340, 388, 73, 537, 74, 0, 538, 95, 469, 499, + 0, 455, 136, 456, 0, 0, 193, 43, 25, 0, + 553, 549, 550, 555, 552, 556, 554, 551, 548, 0, + 48, 560, 0, 0, 23, 96, 75, 67, 27, 85, + 266, 281, 272, 274, 0, 0, 99, 352, 349, 357, + 362, 19, 11, 210, 13, 292, 0, 21, 15, 17, + 29, 461, 31, 510, 497, 33, 99, 0, 0, 35, + 37, 595, 0, 0, 0, 0, 89, 467, 465, 507, + 135, 0, 568, 208, 589, 196, 4, 557, 0, 561, + 0, 558, 182, 183, 184, 186, 189, 188, 190, 191, + 187, 185, 0, 0, 0, 0, 179, 586, 157, 158, + 159, 161, 163, 165, 168, 171, 175, 180, 585, 62, + 0, 112, 104, 273, 192, 0, 354, 0, 93, 0, + 0, 0, 213, 209, 307, 471, 514, 541, 534, 543, + 592, 145, 261, 228, 254, 255, 256, 262, 341, 389, + 112, 0, 99, 505, 500, 137, 0, 469, 0, 0, + 3, 0, 49, 0, 176, 177, 178, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 583, 0, + 76, 132, 0, 0, 0, 209, 98, 350, 358, 363, + 0, 211, 0, 293, 297, 209, 462, 0, 112, 104, + 377, 382, 0, 492, 0, 0, 600, 375, 376, 596, + 598, 0, 602, 0, 594, 0, 209, 251, 209, 297, + 0, 468, 466, 0, 99, 569, 590, 200, 194, 0, + 202, 195, 0, 197, 203, 0, 0, 0, 0, 559, + 181, 160, 162, 164, 166, 167, 169, 170, 172, 173, + 174, 209, 63, 129, 127, 397, 398, 0, 111, 119, + 113, 123, 121, 125, 0, 115, 117, 402, 109, 108, + 0, 103, 0, 105, 106, 0, 0, 0, 0, 0, + 0, 133, 214, 0, 215, 218, 302, 299, 298, 0, + 209, 0, 0, 0, 0, 482, 0, 470, 472, 474, + 476, 478, 480, 484, 0, 0, 515, 0, 513, 516, + 518, 0, 0, 0, 0, 488, 487, 0, 491, 490, + 0, 0, 0, 0, 0, 0, 0, 593, 146, 0, + 252, 0, 342, 347, 209, 0, 506, 501, 0, 0, + 198, 206, 199, 45, 562, 50, 0, 130, 0, 69, + 0, 0, 0, 0, 0, 401, 431, 428, 429, 430, + 392, 400, 0, 0, 209, 87, 110, 107, 356, 355, + 351, 359, 364, 0, 212, 0, 216, 0, 0, 294, + 296, 265, 318, 313, 314, 315, 316, 308, 317, 0, + 0, 0, 0, 463, 0, 0, 0, 0, 0, 0, + 520, 523, 512, 0, 0, 0, 0, 378, 383, 486, + 581, 582, 601, 597, 599, 489, 603, 0, 372, 368, + 371, 0, 348, 0, 344, 0, 91, 0, 579, 575, + 577, 570, 574, 0, 0, 0, 0, 584, 0, 128, + 120, 114, 124, 122, 126, 209, 116, 118, 0, 219, + 0, 218, 303, 300, 0, 495, 493, 494, 483, 473, + 475, 477, 479, 481, 485, 0, 0, 517, 519, 536, + 545, 0, 0, 147, 0, 369, 253, 343, 345, 391, + 502, 0, 0, 0, 0, 572, 201, 205, 204, 0, + 56, 42, 51, 55, 0, 131, 0, 403, 217, 0, + 309, 406, 521, 524, 379, 384, 260, 373, 370, 209, + 0, 580, 576, 578, 571, 573, 58, 0, 0, 57, + 393, 0, 301, 0, 0, 0, 438, 438, 0, 442, + 257, 0, 346, 503, 0, 52, 54, 0, 404, 310, + 407, 414, 0, 413, 435, 522, 525, 380, 439, 385, + 258, 374, 509, 0, 419, 394, 438, 0, 0, 409, + 410, 0, 438, 0, 446, 0, 0, 504, 566, 0, + 565, 0, 0, 438, 405, 325, 332, 330, 311, 321, + 322, 329, 415, 411, 436, 381, 440, 443, 386, 259, + 508, 59, 563, 418, 432, 433, 434, 0, 424, 425, + 395, 0, 0, 0, 0, 0, 209, 327, 0, 0, + 0, 0, 0, 0, 0, 420, 421, 0, 450, 326, + 333, 331, 312, 320, 0, 328, 416, 412, 0, 0, + 444, 60, 564, 422, 426, 447, 396, 0, 335, 323, + 437, 441, 0, 0, 0, 0, 334, 0, 0, 0, + 423, 427, 448, 336, 324, 445, 0, 454, 0, 451, + 449, 452, 0, 453 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -611, -611, 311, 312, 565, -598, -611, -611, -611, -611, - -611, -611, -611, -611, -611, -611, -611, -611, -611, -611, - -611, -590, -611, -611, -611, -611, -611, -611, -611, -611, - -611, -611, -611, -611, -611, -611, -122, -611, -611, -611, - -611, -611, -611, -611, -611, -611, -611, -611, 238, -611, - -611, 9, -611, -611, -611, 598, -611, -611, -611, -611, - -611, -611, -611, 600, -611, 242, -611, -611, -248, -611, - -611, 208, -611, -611, -611, -268, -353, -611, -611, -611, - -611, -611, -611, -611, -611, -331, -611, -611, -22, -611, - -611, -187, -10, -611, 17, -611, -611, -611, -611, -195, - -9, -224, -611, 244, 263, 245, -120, -114, -90, -13, - -611, -303, -611, -611, -611, -611, -611, -611, -611, -611, - -611, 0, 571, -611, -611, -611, -611, -41, 59, 20, - -611, 99, -611, -28, 162, -444, -611, -611, -611, 68, - -611, -611, -610, -81, -611, -611, -7, -611, -70, -611, - -611, -50, -49, -58, -55, -52, 293, -611, -40, -611, - -37, -611, -611, -611, -611, 256, 326, 176, -611, -611, - -611, -32, -611, -31, -611, -611, -611, -611, -611, -611, - -611, -611, -611, -153, -611, -611, -611, -611, -611, -150, - -611, -611, -611, -611, -611, -611, -611, -38, -611, -611, - -611, -611, -611, -611, -611, -39, -611, -611, -611, -611, - -611, -611, -611, -66, -611, -611, -611, -65, -611, -611, - -611, -611, -611, -611, -611, -15, -611, -611, -338, -611, - -611, -611, -611, -611, -611, -611, -611, -611, -611, 22, - -611, -611, -611, -611, -611, -611, -611, -611, -611, -611, - -611, -611, -611, -611, -611, -594, -611, -611, -611, -611, - -611, -140, -611, -611, -611, -611, -611, -611, -611, -611, - -172, -611, -611, -500, -611, -550, -611, -611, -611, -611, - -611, -611, -611, -611, -611, -611, -611, -611, -611, -611, - 25, 27, -611, -611, -611, -611, -611, -611, -611, -611, - -611, 320, -611, -611, -611, -611, -611, -611, -611, -611, - -611, -611, -309, 261, -293, -611, -611, -611, -611, -611, - -611, -611, -611, -611, -611, -611, -611, -611, -611, -611, - -611, -611, -611, -611, -611, -611, -611, -611, -611, -611, - -611, -611, -611, -611, -611, -611, -611, -611, -611, -611, - -611, -611, -611, -611, -611, -611, 610, -611, -611, -611, - -611, -611, -611, -611, -611, -611, 316, -611, -611, -136, - -611, -611, -611, -611, -611, -611, -611, -5, -611, -611, - -611, 285, -611, -611, 138, -611, -611, -611, -611, -611, - -611, -611, -611, -611, -611, -611, -611, -611 + -643, -643, 277, 283, 541, -606, -643, -643, -643, -643, + -643, -643, -643, -643, -643, -643, -643, -643, -643, -643, + -643, -591, -643, -643, -643, -643, -643, -643, -643, -643, + -643, -643, -643, -643, -643, -643, -147, -643, -643, -643, + -643, -643, -643, -643, -643, -643, -643, -643, 215, -643, + -643, 74, -643, -643, -643, 575, -643, -643, -643, -643, + -643, -643, -643, 578, -643, 225, -643, -643, -256, -643, + -643, 178, -643, -643, -643, -297, -361, -643, -643, -643, + -643, -643, -643, -643, -643, -333, -643, -643, -22, -643, + -643, -198, -10, -643, 17, -643, -643, -643, -643, -200, + -42, -229, -643, 212, 209, 206, -148, -125, -169, -86, + -643, -316, -643, -643, -643, -643, -643, -643, -643, -643, + -643, 0, 549, -643, -643, -643, -643, -68, 10, 20, + -643, 47, -643, -28, 110, -476, -643, -643, -643, 12, + -643, -643, -603, -139, -643, -643, -7, -643, -70, -643, + -643, -47, -46, -63, -55, -52, 233, -643, -40, -643, + -37, -643, -643, -643, -643, 201, 275, 137, -643, -643, + -643, -32, -643, -31, -643, -643, -643, -643, -643, -643, + -643, -643, -643, -192, -643, -643, -643, -643, -643, -189, + -643, -643, -643, -643, -643, -643, -643, -38, -643, -643, + -643, -643, -643, -643, -643, -94, -643, -643, -643, -643, + -643, -643, -643, -66, -643, -643, -643, -65, -643, -643, + -643, -643, -643, -643, -643, -53, -643, -643, -335, -643, + -643, -643, -643, -643, -643, -643, -643, -643, -643, 22, + -643, -643, -643, -643, -643, -643, -643, -643, -643, -643, + -643, -643, -643, -643, -643, -588, -643, -643, -643, -643, + -643, -186, -643, -643, -643, -643, -643, -643, -643, -643, + -217, -643, -643, -508, -643, -642, -643, -643, -643, -643, + -643, -643, -643, -643, -643, -643, -643, -643, -643, -643, + 25, 27, -643, -643, -643, -643, -643, -643, -643, -643, + -643, 272, -643, -643, -643, -643, -643, -643, -643, -643, + -643, -643, -307, 216, -303, -643, -643, -643, -643, -643, + -643, -643, -643, -643, -643, -643, -643, -643, -643, -643, + -643, -643, -643, -643, -643, -643, -643, -643, -643, -643, + -643, -643, -643, -643, -643, -643, -643, -643, -643, -643, + -643, -643, -643, -643, -643, -643, 570, -643, -643, -643, + -643, -643, -643, -643, -643, -643, 267, -643, -643, -180, + -643, -643, -643, -643, -643, -643, -643, -48, -643, -643, + -643, 250, -643, -643, 94, -643, -643, -643, -643, -643, + -643, -643, -643, -643, -643, -643, -643, -643 }; /* 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, 448, 31, 32, 117, - 302, 450, 648, 729, 704, 730, 705, 706, 746, 825, - 33, 118, 391, 34, 35, 124, 333, 469, 36, 85, - 37, 142, 332, 38, 39, 40, 126, 334, 482, 41, - 217, 362, 547, 42, 258, 43, 102, 248, 340, 44, - 45, 395, 483, 484, 485, 394, 470, 563, 574, 575, - 562, 565, 564, 566, 560, 392, 465, 650, 318, 222, - 293, 109, 354, 46, 471, 83, 284, 427, 629, 197, - 319, 336, 321, 322, 323, 324, 325, 326, 327, 328, - 329, 337, 48, 297, 370, 443, 551, 444, 445, 647, - 49, 404, 295, 344, 403, 495, 496, 588, 497, 472, - 86, 208, 285, 209, 145, 146, 147, 148, 52, 355, - 429, 633, 356, 717, 742, 777, 357, 358, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 53, 87, - 54, 177, 345, 501, 405, 502, 592, 500, 590, 711, - 589, 55, 88, 56, 268, 407, 666, 735, 769, 816, - 599, 790, 817, 791, 818, 860, 813, 792, 819, 793, - 815, 814, 849, 851, 859, 57, 58, 59, 89, 286, - 430, 635, 544, 636, 721, 545, 164, 341, 490, 165, - 257, 397, 166, 167, 342, 491, 168, 169, 343, 492, - 170, 359, 428, 631, 687, 632, 686, 743, 473, 419, - 525, 683, 740, 774, 420, 526, 684, 741, 776, 474, - 90, 287, 431, 637, 475, 657, 749, 785, 830, 476, - 572, 487, 576, 733, 768, 714, 736, 737, 754, 772, - 821, 755, 770, 820, 767, 783, 784, 809, 828, 855, - 810, 829, 856, 573, 811, 757, 773, 822, 761, 775, - 823, 800, 824, 854, 848, 857, 868, 870, 871, 874, - 477, 478, 63, 64, 65, 183, 347, 508, 66, 220, - 364, 290, 363, 408, 509, 606, 607, 608, 609, 610, - 604, 611, 641, 529, 642, 423, 531, 512, 513, 514, - 67, 185, 68, 105, 291, 436, 639, 722, 764, 366, - 435, 779, 276, 348, 519, 409, 520, 615, 616, 521, - 677, 738, 522, 678, 739, 69, 70, 71, 72, 73, - 279, 410, 617, 74, 75, 76, 188, 278, 77, 280, - 411, 618, 78, 241, 242, 303, 243, 781, 804, 782, - 79, 111, 368, 550, 696, 643, 697, 644, 694, 695, - 693, 424, 245, 390, 330, 80, 81, 112, 369, 193, - 283, 425, 352, 426, 535, 536, 534, 538 + -1, 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, 456, 31, 32, 117, + 310, 458, 656, 737, 712, 738, 713, 714, 754, 833, + 33, 118, 399, 34, 35, 124, 341, 477, 36, 85, + 37, 150, 340, 38, 39, 40, 126, 342, 490, 41, + 225, 370, 555, 42, 266, 43, 102, 256, 348, 44, + 45, 403, 491, 492, 493, 402, 478, 571, 582, 583, + 570, 573, 572, 574, 568, 400, 473, 658, 326, 230, + 301, 109, 362, 46, 479, 83, 292, 435, 637, 205, + 327, 344, 329, 330, 331, 332, 333, 334, 335, 336, + 337, 345, 48, 305, 378, 451, 559, 452, 453, 655, + 49, 412, 303, 352, 411, 503, 504, 596, 505, 480, + 86, 216, 293, 217, 153, 154, 155, 156, 52, 363, + 437, 641, 364, 725, 750, 785, 365, 366, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 53, 87, + 54, 185, 353, 509, 413, 510, 600, 508, 598, 719, + 597, 55, 88, 56, 276, 415, 674, 743, 777, 824, + 607, 798, 825, 799, 826, 868, 821, 800, 827, 801, + 823, 822, 857, 859, 867, 57, 58, 59, 89, 294, + 438, 643, 552, 644, 729, 553, 172, 349, 498, 173, + 265, 405, 174, 175, 350, 499, 176, 177, 351, 500, + 178, 367, 436, 639, 695, 640, 694, 751, 481, 427, + 533, 691, 748, 782, 428, 534, 692, 749, 784, 482, + 90, 295, 439, 645, 483, 665, 757, 793, 838, 484, + 580, 495, 584, 741, 776, 722, 744, 745, 762, 780, + 829, 763, 778, 828, 775, 791, 792, 817, 836, 863, + 818, 837, 864, 581, 819, 765, 781, 830, 769, 783, + 831, 808, 832, 862, 856, 865, 876, 878, 879, 882, + 485, 486, 63, 64, 65, 191, 355, 516, 66, 228, + 372, 298, 371, 416, 517, 614, 615, 616, 617, 618, + 612, 619, 649, 537, 650, 431, 539, 520, 521, 522, + 67, 193, 68, 105, 299, 444, 647, 730, 772, 374, + 443, 787, 284, 356, 527, 417, 528, 623, 624, 529, + 685, 746, 530, 686, 747, 69, 70, 71, 72, 73, + 287, 418, 625, 74, 75, 76, 196, 286, 77, 288, + 419, 626, 78, 249, 250, 311, 251, 789, 812, 790, + 79, 111, 376, 558, 704, 651, 705, 652, 702, 703, + 701, 432, 253, 398, 338, 80, 81, 112, 377, 201, + 291, 433, 360, 434, 543, 544, 542, 546 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -1139,477 +1153,545 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 108, 110, 50, 159, 92, 163, 160, 93, 398, 103, - 104, 161, 162, 198, 418, 144, 113, 204, 205, 47, - 320, 143, 51, 688, 60, 201, 620, 61, 202, 62, - 349, 203, 569, 199, 200, 292, 299, 294, 399, 400, - 401, 106, 486, 421, 91, 123, 159, 296, 163, 160, - 702, 634, 106, 709, 161, 162, 518, 732, 703, 422, - 622, 196, 206, 4, 143, 106, 47, 623, 106, 51, - 507, 60, 8, 787, 61, 207, 62, 210, 211, 212, - 213, 527, 569, 187, 715, 215, 787, 187, -359, 218, - 174, 223, 219, 379, 432, 221, 225, 224, 114, 510, - 788, 789, 224, 214, 8, 216, 367, 259, -359, 260, - 630, 226, 227, 788, 789, 511, 434, 119, 244, 107, - 106, 174, 304, 305, 306, 307, 308, 309, 310, 311, - 107, 174, 702, 312, 313, 174, 174, 174, 224, 750, - 703, 174, 523, 107, 120, 224, 224, 18, 314, 315, - 178, 95, 265, 316, 317, 106, 18, -329, -140, -141, - 99, 198, -311, 122, 122, 204, 205, 254, 255, 412, - 413, 486, 488, 201, 252, 442, 202, 253, 494, 203, - 174, 199, 200, 716, 412, 413, 383, 384, 549, 758, - 304, 305, 306, 307, 308, 309, 310, 311, 107, 414, - -142, 312, 313, 122, 415, 122, -100, 416, 417, 196, - 838, 122, 640, 192, 414, 493, 314, 315, 786, 415, - 194, 316, 317, -451, 797, 304, 305, 306, 307, 308, - 309, 310, 311, 107, -523, 812, 312, 313, 228, 569, - 229, 387, 388, 389, 385, 386, 863, 788, 789, 865, - 806, 807, 808, 94, 96, 106, 230, 317, 98, 101, - 593, 128, 129, 456, 457, 132, 133, 134, 135, 246, - 794, 458, 459, 106, 353, 12, 247, 249, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 10, 11, 250, 12, 139, 140, 141, 460, 461, 462, - 198, 376, 377, 378, 204, 205, 251, 256, 224, 261, - 393, 262, 201, 263, 264, 202, -208, 393, 203, 266, - 199, 200, 267, 269, 270, 271, 569, 272, 274, 846, - 273, 277, 447, 107, 320, 275, 281, 282, -524, 174, - 288, 433, 621, 106, 301, 300, 289, 331, 196, 338, - 627, 107, 335, 339, 350, 351, 360, 361, -101, 640, - 373, 661, 346, 122, 159, 365, 163, 160, 374, 375, - 380, 50, 161, 162, 381, 396, 499, 382, 402, 437, - 449, 464, 143, 719, -44, 569, 452, 441, 47, 463, - 530, 51, 528, 60, 532, 533, 61, 489, 62, 539, - 662, 528, 540, 552, 542, 320, 554, 503, 556, 555, - 570, 571, 557, 548, 667, 668, 669, 561, 559, 577, - 580, 579, 699, 582, 619, 585, 583, 584, 541, 591, - 543, 586, 587, 595, 553, -287, 605, 614, 624, 625, - 626, 628, 646, 651, 159, 596, 163, 160, 597, -382, - 638, 598, 161, 162, 568, 652, 499, 653, 412, 413, - 570, 571, 143, 558, 654, 600, 655, 143, 656, 658, - 659, 664, 252, 670, 671, 672, 673, 674, 675, 504, - 505, 594, 601, 602, 603, 676, 679, 680, 414, 506, - 681, 840, 841, 415, 682, 690, 416, 417, 689, 691, - 692, 712, 698, 700, 568, 723, 612, 613, 713, 630, - 724, 159, 725, 163, 160, 726, -400, 731, 734, 161, - 162, 747, 751, 861, 466, 752, -391, 6, 753, 143, - 9, -391, -391, -391, -391, -391, -391, -391, -391, -391, - -391, -391, -391, 10, 11, 756, 12, 760, -391, -391, - 13, 762, 763, 412, 413, 467, 468, -391, 765, 766, - 778, 771, 780, 14, -409, 795, 796, 479, 480, 481, - 798, 799, 803, 826, 805, 827, 660, 831, 833, 842, - 834, 845, 847, 852, 853, 866, 22, 23, 858, 106, - 832, 864, 869, 875, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 195, -391, 867, 872, 873, 748, 371, - 372, 140, 141, -86, 173, 100, 97, 570, 571, 524, - 685, 175, 710, 466, 453, -391, 6, 455, 707, 9, - -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, - -391, -391, 10, 11, 454, 12, 663, -391, -391, 13, - 645, 581, 412, 413, 467, 468, -391, 708, 665, 759, - 578, 568, 14, 446, 835, 47, 516, 107, 51, 837, - 60, 406, 720, 61, 92, 62, 517, 718, -47, 728, - -47, 839, 744, 862, 537, 22, 23, 546, 189, 438, - 844, 451, 727, 515, -47, -47, 649, -47, -47, 0, - 745, -47, 0, -391, 570, 571, 0, 0, 0, 231, - 0, 232, -503, 0, 0, 0, 0, 0, 0, 0, - 0, 543, 0, -47, 0, 233, 234, -47, 235, 236, - 92, 0, 237, 718, 0, 0, 0, 0, 0, -2, - 5, -47, 0, 6, 7, 8, 9, 47, 568, 0, - 51, 0, 60, 0, 238, 61, 802, 62, 239, 10, - 11, 0, 12, 570, 571, 0, 13, 92, 0, 0, - 801, 0, 240, 0, 0, 0, 0, 0, 0, 14, - 15, 16, 17, 0, 0, 0, 0, 0, 18, 19, - 0, 0, 20, 0, 0, 21, 159, 0, 163, 160, - 393, 393, 22, 23, 161, 162, 0, 568, 850, 24, - 25, 0, 0, 0, 143, 843, 0, 0, 836, 0, - 0, 0, 0, 0, 0, 26, -209, 466, 0, -391, - 6, 0, 393, 9, -391, -391, -391, -391, -391, -391, - -391, -391, -391, -391, -391, -391, 10, 11, 0, 12, - 0, -391, -391, 13, 0, 0, 412, 413, 467, 468, - -391, 0, 0, 0, 0, 0, 14, 0, 0, 106, - 479, 480, 481, 0, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 195, 137, 138, 0, 0, 0, 22, - 23, 140, 141, 0, 0, 0, 0, 0, 0, 0, - 567, 0, 0, 0, 0, 0, 0, -391, 0, 0, - 0, 466, 0, -391, 6, 0, -536, 9, -391, -391, - -391, -391, -391, -391, -391, -391, -391, -391, -391, -391, - 10, 11, 0, 12, 0, -391, -391, 13, 0, 0, - 412, 413, 467, 468, -391, 0, 466, 107, -391, 6, - 14, 0, 9, -391, -391, -391, -391, -391, -391, -391, - -391, -391, -391, -391, -391, 10, 11, 0, 12, 0, - -391, -391, 13, 22, 23, 412, 413, 467, 468, -391, - 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, - 0, -391, 0, 0, 0, 0, 0, 0, 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, -391, 139, 140, 141, - 466, 0, -391, 6, 0, -90, 9, -391, -391, -391, - -391, -391, -391, -391, -391, -391, -391, -391, -391, 10, - 11, 0, 12, 0, -391, -391, 13, 0, 0, 412, - 413, 467, 468, -391, 0, 0, 0, 0, 0, 14, - 0, 0, 0, 0, 0, 5, 0, 0, 6, 7, - 8, 9, 0, 0, 107, 0, 0, 0, 0, 0, - 174, 0, 22, 23, 10, 11, 0, 12, 0, 0, - 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, - -391, 0, 0, 0, 14, 15, 16, 17, 0, -527, - 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, 701, 0, 0, 0, + 108, 110, 50, 167, 92, 171, 168, 93, 577, 103, + 104, 169, 170, 206, 406, 152, 113, 212, 213, 47, + 209, 151, 51, 328, 60, 426, 628, 61, 210, 62, + 357, 211, 300, 407, 408, 409, 207, 208, 696, 307, + 795, 302, 494, 304, 642, 106, 167, 717, 171, 168, + 710, 740, 106, 429, 169, 170, 526, 430, 577, 630, + 631, 204, 214, 106, 151, 711, 47, 796, 797, 51, + -367, 60, 106, 440, 61, 215, 62, 218, 219, 220, + 221, 515, 182, 231, 4, 223, 233, 795, 535, 226, + -367, 267, 227, 268, -140, 229, 387, 232, 723, 122, + 232, -141, 638, 375, 18, 766, 122, 8, 99, 518, + 123, 234, 235, 519, 796, 797, 442, 260, 252, 91, + 261, 531, 312, 313, 314, 315, 316, 317, 318, 319, + 106, 107, 710, 182, 794, 182, 182, -319, 107, 182, + 805, 320, 321, 182, 182, 232, 232, 711, 195, 232, + 18, 820, 195, 758, 95, 119, 322, 323, 107, -142, + 273, 324, 325, 114, 122, 262, 263, -100, 222, 206, + 224, 494, 122, 212, 213, 496, 209, 106, 450, 420, + 421, 502, 8, 724, 210, 391, 392, 211, 557, 395, + 396, 397, 207, 208, 420, 421, 814, 815, 816, 182, + 312, 313, 314, 315, 316, 317, 318, 319, 120, 422, + 393, 394, 501, -337, 423, 577, 107, 204, 186, 320, + 321, 796, 797, 648, 422, 846, 468, 469, 470, 423, + 94, 96, 424, 425, 322, 323, 384, 385, 386, 324, + 325, 98, 101, 464, 465, 122, 202, 312, 313, 314, + 315, 316, 317, 318, 319, 200, -47, 236, -47, 420, + 421, 871, -459, 107, 873, -531, 320, 321, 466, 467, + 802, 238, -47, -47, 237, -47, -47, 254, 255, -47, + 512, 513, 361, 257, 258, -208, 259, 325, 232, 422, + 514, 264, 275, 269, 423, 281, 270, 424, 425, 271, + 272, -47, 577, 274, 277, -47, 278, 279, 206, 280, + 282, 106, 212, 213, 283, 209, 285, 289, 401, -47, + 290, 308, -532, 210, 296, 401, 211, 309, 339, 854, + 343, 207, 208, 297, 346, 347, 354, 328, 358, 629, + 455, 359, 368, 369, 373, 381, 388, 635, 382, 441, + 410, 383, 389, 445, 457, 404, 204, 390, -44, 471, + 538, 577, 547, 550, 669, 548, 560, 562, 564, 460, + 648, 563, 167, 565, 171, 168, 567, 569, 727, 50, + 169, 170, 585, 587, 507, 588, 590, 599, 627, 472, + 151, 591, 592, 593, 594, 449, 47, 670, 595, 51, + 536, 60, 540, 541, 61, 497, 62, -295, 328, 536, + 613, 675, 676, 677, 622, 511, 632, 633, 578, 579, + 654, 556, 634, 636, 260, 707, -390, 646, 659, 660, + 661, 662, 663, 664, 666, 667, 549, 672, 551, 678, + 679, 603, 561, 680, 681, 682, 683, 684, 604, 687, + 688, 700, 167, 689, 171, 168, 605, 690, 697, 606, + 169, 170, 576, 698, 507, 699, 706, 708, 578, 579, + 151, 566, 720, 608, 731, 151, 721, 638, 732, 733, + -408, 761, 734, 739, 742, 764, 760, 755, 768, 602, + 609, 610, 611, 759, 106, 770, 771, 848, 849, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 203, 137, + 138, 773, 576, 774, 620, 621, 140, 141, 779, 167, + 786, 171, 168, 788, -417, 575, 803, 169, 170, 869, + 804, 806, 807, 813, 106, 811, 834, 151, 839, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 10, 11, 835, 12, 139, 140, 141, 841, 866, + 842, 850, 853, 855, 860, 861, 872, 874, 875, 877, + 880, 881, 142, 143, 144, 145, 146, 147, 148, 149, + 107, 883, 5, 379, 668, 6, 7, 8, 9, 380, + 181, 756, 100, 840, 97, 693, 463, 532, 462, 183, + 461, 10, 11, 718, 12, 671, 653, 589, 13, 767, + 673, 454, 142, 143, 144, 145, 146, 147, 148, 149, + 107, 14, 15, 16, 17, 578, 579, -101, 414, 586, + 18, 19, 122, 843, 20, 752, 715, 21, 845, 239, + 554, 240, 728, 847, 22, 23, 870, 545, 197, 446, + 459, 24, 25, 709, 852, 241, 242, 735, 243, 244, + 657, 0, 245, 0, 0, 716, 523, 0, 0, 576, + 0, 0, 0, 47, 0, 26, 51, 0, 60, -53, + 0, 61, 92, 62, 246, 726, 0, 736, 247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 26, 106, 6, 0, -53, 439, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 195, 137, 0, 0, 0, - 0, 12, 5, 140, 141, 6, 7, 8, 9, 0, + 0, 0, 248, 0, 0, 0, 0, 0, 753, 0, + 106, 6, 578, 579, 447, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 203, 137, 0, 0, 0, 551, + 12, 0, 140, 141, 0, 0, 0, 0, 92, 0, + 0, 726, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 47, 576, 0, 51, 0, + 60, 0, 0, 61, 810, 62, 0, 0, 0, 0, + 0, 578, 579, 0, 0, 92, 0, 0, 809, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 142, 143, + 144, 145, 146, 147, 148, 149, 107, 0, 0, 0, + 0, 0, 0, 0, 167, 448, 171, 168, 401, 401, + 0, 0, 169, 170, 0, 576, 858, 0, 0, 0, + 0, 0, 151, 851, 0, 0, 844, 0, 0, 0, + 0, 0, 0, 0, 0, 474, 0, -399, 6, 0, + 401, 9, -399, -399, -399, -399, -399, -399, -399, -399, + -399, -399, -399, -399, 10, 11, 0, 12, 0, -399, + -399, 13, 0, 0, 420, 421, 475, 476, -399, 0, + 0, 0, 0, 0, 14, 0, 0, 0, 487, 488, + 489, 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, 10, 11, 0, 12, 0, 0, 0, 13, 0, + 0, 0, 0, 0, 0, -399, -399, -399, -399, -399, + -399, -399, -399, -399, 0, 0, 0, 474, 0, -399, + 6, 0, -86, 9, -399, -399, -399, -399, -399, -399, + -399, -399, -399, -399, -399, -399, 10, 11, 0, 12, + 0, -399, -399, 13, 0, 0, 420, 421, 475, 476, + -399, 0, 0, 0, 0, 0, 14, 0, 0, 0, + 487, 488, 489, 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, -399, -399, -399, + -399, -399, -399, -399, -399, -399, 0, 0, 0, 474, + 0, -399, 6, 0, -544, 9, -399, -399, -399, -399, + -399, -399, -399, -399, -399, -399, -399, -399, 10, 11, + 0, 12, 0, -399, -399, 13, 0, 0, 420, 421, + 475, 476, -399, 0, 0, 0, 0, 0, 14, 0, + 0, 0, 524, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 525, 106, 0, 0, 0, 0, 601, 128, + 129, 22, 23, 132, 133, 134, 135, 0, 0, 0, + 0, 0, 0, 12, 0, 0, 0, 0, 0, -399, + -399, -399, -399, -399, -399, -399, -399, -399, 0, 0, + 0, 474, 0, -399, 6, 0, -511, 9, -399, -399, + -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, + 10, 11, 0, 12, 0, -399, -399, 13, 0, 0, + 420, 421, 475, 476, -399, 0, 0, 0, 0, 0, + 14, 142, 143, 144, 145, 146, 147, 148, 149, 107, + 0, 0, 0, 0, 0, 182, 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, 14, 15, 16, 17, 0, 0, 0, 0, 0, - 18, 19, 0, 0, 20, 0, 0, 21, 0, 107, - 0, 0, 0, 0, 22, 23, 0, 0, 440, 0, - 0, 24, 25, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 498, 0, 106, 0, 0, 26, -209, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 10, 11, 0, 12, 139, 140, 141, 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, 5, 13, 0, 6, 7, 8, 9, - 0, 0, 0, 0, 0, 0, 0, 14, 15, 16, - 17, 0, 10, 11, 0, 12, 18, 19, 0, 13, - 20, 0, 107, 21, 0, 0, 0, 0, 174, 0, - 22, 23, 14, 15, 16, 17, 0, 24, 25, 701, - 0, 18, 19, 0, 0, 20, 0, 0, 21, 0, - 0, 0, 0, 26, 0, 22, 23, 0, 0, 106, - 0, 0, 24, 25, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 10, 11, 26, 12, - 139, 140, 141, 498, 0, 106, 0, 0, 0, 0, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 10, 11, 106, 12, 139, 140, 141, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 10, 11, 0, 12, 139, 140, 141, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 107, 0, 106, - 0, 0, 0, 174, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 195, 137, 138, 0, 0, 0, 0, - 0, 140, 141, 107, 0, 0, 0, 0, 0, 0, + 0, -399, -399, -399, -399, -399, -399, -399, -399, -399, + 0, 0, 0, 474, 0, -399, 6, 0, -68, 9, + -399, -399, -399, -399, -399, -399, -399, -399, -399, -399, + -399, -399, 10, 11, 0, 12, 0, -399, -399, 13, + 0, 0, 420, 421, 475, 476, -399, 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, 107, 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, -399, -399, -399, -399, -399, -399, -399, + -399, -399, 0, 0, 0, 474, 0, -399, 6, 0, + -90, 9, -399, -399, -399, -399, -399, -399, -399, -399, + -399, -399, -399, -399, 10, 11, 0, 12, 0, -399, + -399, 13, 0, 0, 420, 421, 475, 476, -399, 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, -399, -399, -399, -399, -399, + -399, -399, -399, -399, 14, 15, 16, 17, 0, 0, + 0, 0, -535, 18, 19, 0, 0, 20, 0, 0, + 21, 0, 0, 0, 0, 0, 0, 22, 23, 506, + 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, -209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 107 + 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, -209, 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, 709, 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, 506, 0, 106, 0, 139, 140, 141, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 10, 11, 0, 12, 139, 140, 141, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, + 143, 144, 145, 146, 147, 148, 149, 107, 0, 0, + 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 142, 143, 144, 145, 146, 147, 148, + 149, 107, 0, 0, 0, 0, 0, 182, 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, 136, 137, 138, 10, 11, + 106, 12, 139, 140, 141, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 203, 137, 138, 0, 0, 106, + 0, 0, 140, 141, 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, 0, 0, 0, 0, 142, + 143, 144, 145, 146, 147, 148, 149, 107, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 142, 143, + 144, 145, 146, 147, 148, 149, 107, 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, 2, 43, 14, 43, 43, 14, 339, 19, - 20, 43, 43, 83, 352, 43, 26, 83, 83, 2, - 244, 43, 2, 633, 2, 83, 526, 2, 83, 2, - 278, 83, 476, 83, 83, 222, 231, 3, 341, 342, - 343, 3, 395, 352, 3, 36, 86, 3, 86, 86, - 648, 3, 3, 3, 86, 86, 409, 3, 648, 352, - 3, 83, 84, 0, 86, 3, 49, 3, 3, 49, - 408, 49, 6, 1, 49, 85, 49, 87, 88, 89, - 90, 19, 526, 74, 678, 95, 1, 78, 87, 99, - 87, 75, 102, 317, 362, 105, 75, 81, 91, 408, - 28, 29, 81, 94, 6, 96, 293, 92, 107, 94, - 107, 111, 112, 28, 29, 408, 364, 88, 118, 81, - 3, 87, 73, 74, 75, 76, 77, 78, 79, 80, - 81, 87, 730, 84, 85, 87, 87, 87, 81, 733, - 730, 87, 410, 81, 88, 81, 81, 49, 99, 100, - 22, 53, 174, 104, 105, 3, 49, 88, 88, 88, - 53, 231, 90, 93, 93, 231, 231, 8, 9, 30, - 31, 524, 396, 231, 8, 370, 231, 11, 402, 231, - 87, 231, 231, 683, 30, 31, 82, 83, 436, 739, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 60, - 88, 84, 85, 93, 65, 93, 88, 68, 69, 231, - 820, 93, 550, 89, 60, 402, 99, 100, 768, 65, - 88, 104, 105, 88, 774, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 88, 785, 84, 85, 89, 683, - 89, 101, 102, 103, 99, 100, 856, 28, 29, 859, - 35, 36, 37, 15, 16, 3, 88, 105, 16, 17, - 8, 9, 10, 383, 384, 13, 14, 15, 16, 88, - 770, 385, 386, 3, 284, 23, 48, 89, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 88, 23, 24, 25, 26, 387, 388, 389, - 370, 314, 315, 316, 370, 370, 89, 91, 81, 91, - 332, 91, 370, 88, 88, 370, 87, 339, 370, 88, - 370, 370, 89, 88, 88, 88, 770, 88, 88, 829, - 89, 88, 370, 81, 558, 89, 88, 88, 88, 87, - 89, 363, 529, 3, 3, 91, 93, 92, 370, 91, - 537, 81, 8, 47, 89, 89, 89, 89, 88, 697, - 3, 585, 105, 93, 404, 93, 404, 404, 92, 94, - 96, 371, 404, 404, 97, 94, 404, 98, 105, 89, - 92, 391, 404, 686, 90, 829, 106, 370, 371, 94, - 58, 371, 414, 371, 416, 417, 371, 397, 371, 90, - 587, 423, 95, 88, 94, 629, 88, 407, 3, 90, - 476, 476, 89, 435, 601, 602, 603, 90, 94, 90, - 92, 88, 646, 92, 31, 95, 92, 92, 428, 90, - 430, 106, 94, 503, 444, 90, 90, 90, 88, 88, - 88, 88, 29, 88, 484, 503, 484, 484, 503, 90, - 90, 503, 484, 484, 476, 88, 484, 88, 30, 31, - 526, 526, 484, 463, 88, 503, 88, 489, 88, 88, - 88, 88, 8, 88, 88, 88, 88, 88, 88, 51, - 52, 503, 504, 505, 506, 88, 88, 88, 60, 61, - 90, 822, 823, 65, 90, 94, 68, 69, 90, 90, - 66, 106, 88, 88, 526, 88, 516, 517, 105, 107, - 88, 551, 88, 551, 551, 90, 35, 88, 88, 551, - 551, 90, 89, 854, 1, 106, 3, 4, 35, 551, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 38, 23, 55, 25, 26, - 27, 94, 108, 30, 31, 32, 33, 34, 91, 105, - 59, 106, 3, 40, 106, 94, 105, 44, 45, 46, - 105, 62, 92, 94, 106, 106, 576, 88, 93, 105, - 90, 94, 39, 106, 106, 88, 63, 64, 93, 3, - 814, 105, 75, 75, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 81, 106, 106, 94, 730, 298, - 298, 25, 26, 90, 49, 17, 16, 683, 683, 411, - 629, 50, 663, 1, 380, 3, 4, 382, 650, 7, - 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 21, 381, 23, 587, 25, 26, 27, - 551, 489, 30, 31, 32, 33, 34, 657, 590, 740, - 484, 683, 40, 370, 817, 648, 44, 81, 648, 819, - 648, 345, 687, 648, 684, 648, 54, 684, 4, 701, - 6, 821, 721, 855, 423, 63, 64, 431, 78, 369, - 826, 375, 697, 408, 20, 21, 558, 23, 24, -1, - 722, 27, -1, 81, 770, 770, -1, -1, -1, 4, - -1, 6, 90, -1, -1, -1, -1, -1, -1, -1, - -1, 721, -1, 49, -1, 20, 21, 53, 23, 24, - 740, -1, 27, 740, -1, -1, -1, -1, -1, 0, - 1, 67, -1, 4, 5, 6, 7, 730, 770, -1, - 730, -1, 730, -1, 49, 730, 778, 730, 53, 20, - 21, -1, 23, 829, 829, -1, 27, 777, -1, -1, - 777, -1, 67, -1, -1, -1, -1, -1, -1, 40, - 41, 42, 43, -1, -1, -1, -1, -1, 49, 50, - -1, -1, 53, -1, -1, 56, 836, -1, 836, 836, - 822, 823, 63, 64, 836, 836, -1, 829, 836, 70, - 71, -1, -1, -1, 836, 825, -1, -1, 818, -1, - -1, -1, -1, -1, -1, 86, 87, 1, -1, 3, - 4, -1, 854, 7, 8, 9, 10, 11, 12, 13, + 22, 23, 2, 43, 14, 43, 43, 14, 484, 19, + 20, 43, 43, 83, 347, 43, 26, 83, 83, 2, + 83, 43, 2, 252, 2, 360, 534, 2, 83, 2, + 286, 83, 230, 349, 350, 351, 83, 83, 641, 239, + 1, 3, 403, 3, 3, 3, 86, 3, 86, 86, + 656, 3, 3, 360, 86, 86, 417, 360, 534, 3, + 3, 83, 84, 3, 86, 656, 49, 28, 29, 49, + 95, 49, 3, 370, 49, 85, 49, 87, 88, 89, + 90, 416, 95, 75, 0, 95, 75, 1, 19, 99, + 115, 100, 102, 102, 96, 105, 325, 89, 686, 101, + 89, 96, 115, 301, 49, 747, 101, 6, 53, 416, + 36, 111, 112, 416, 28, 29, 372, 8, 118, 3, + 11, 418, 73, 74, 75, 76, 77, 78, 79, 80, + 3, 89, 738, 95, 776, 95, 95, 98, 89, 95, + 782, 92, 93, 95, 95, 89, 89, 738, 74, 89, + 49, 793, 78, 741, 53, 96, 107, 108, 89, 96, + 182, 112, 113, 99, 101, 8, 9, 96, 94, 239, + 96, 532, 101, 239, 239, 404, 239, 3, 378, 30, + 31, 410, 6, 691, 239, 90, 91, 239, 444, 109, + 110, 111, 239, 239, 30, 31, 35, 36, 37, 95, + 73, 74, 75, 76, 77, 78, 79, 80, 96, 60, + 107, 108, 410, 96, 65, 691, 89, 239, 22, 92, + 93, 28, 29, 558, 60, 828, 395, 396, 397, 65, + 15, 16, 68, 69, 107, 108, 322, 323, 324, 112, + 113, 16, 17, 391, 392, 101, 96, 73, 74, 75, + 76, 77, 78, 79, 80, 97, 4, 97, 6, 30, + 31, 864, 96, 89, 867, 96, 92, 93, 393, 394, + 778, 96, 20, 21, 97, 23, 24, 96, 48, 27, + 51, 52, 292, 97, 96, 95, 97, 113, 89, 60, + 61, 99, 97, 99, 65, 97, 99, 68, 69, 96, + 96, 49, 778, 96, 96, 53, 96, 96, 378, 96, + 96, 3, 378, 378, 97, 378, 96, 96, 340, 67, + 96, 99, 96, 378, 97, 347, 378, 3, 100, 837, + 8, 378, 378, 101, 99, 47, 113, 566, 97, 537, + 378, 97, 97, 97, 101, 3, 104, 545, 100, 371, + 113, 102, 105, 97, 100, 102, 378, 106, 98, 102, + 58, 837, 98, 102, 593, 103, 96, 96, 3, 114, + 705, 98, 412, 97, 412, 412, 102, 98, 694, 379, + 412, 412, 98, 96, 412, 100, 100, 98, 31, 399, + 412, 100, 100, 103, 114, 378, 379, 595, 102, 379, + 422, 379, 424, 425, 379, 405, 379, 98, 637, 431, + 98, 609, 610, 611, 98, 415, 96, 96, 484, 484, + 29, 443, 96, 96, 8, 654, 98, 98, 96, 96, + 96, 96, 96, 96, 96, 96, 436, 96, 438, 96, + 96, 511, 452, 96, 96, 96, 96, 96, 511, 96, + 96, 66, 492, 98, 492, 492, 511, 98, 98, 511, + 492, 492, 484, 102, 492, 98, 96, 96, 534, 534, + 492, 471, 114, 511, 96, 497, 113, 115, 96, 96, + 35, 35, 98, 96, 96, 38, 114, 98, 55, 511, + 512, 513, 514, 97, 3, 102, 116, 830, 831, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 99, 534, 113, 524, 525, 25, 26, 114, 559, + 59, 559, 559, 3, 114, 34, 102, 559, 559, 862, + 113, 113, 62, 114, 3, 100, 102, 559, 96, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 114, 23, 24, 25, 26, 101, 101, + 98, 113, 102, 39, 114, 114, 113, 96, 114, 75, + 114, 102, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 75, 1, 306, 584, 4, 5, 6, 7, 306, + 49, 738, 17, 822, 16, 637, 390, 419, 389, 50, + 388, 20, 21, 671, 23, 595, 559, 497, 27, 748, + 598, 378, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 40, 41, 42, 43, 691, 691, 96, 353, 492, + 49, 50, 101, 825, 53, 729, 658, 56, 827, 4, + 439, 6, 695, 829, 63, 64, 863, 431, 78, 377, + 383, 70, 71, 72, 834, 20, 21, 705, 23, 24, + 566, -1, 27, -1, -1, 665, 416, -1, -1, 691, + -1, -1, -1, 656, -1, 94, 656, -1, 656, 98, + -1, 656, 692, 656, 49, 692, -1, 709, 53, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 67, -1, -1, -1, -1, -1, 730, -1, + 3, 4, 778, 778, 7, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, -1, -1, -1, 729, + 23, -1, 25, 26, -1, -1, -1, -1, 748, -1, + -1, 748, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 738, 778, -1, 738, -1, + 738, -1, -1, 738, 786, 738, -1, -1, -1, -1, + -1, 837, 837, -1, -1, 785, -1, -1, 785, -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, 844, 98, 844, 844, 830, 831, + -1, -1, 844, 844, -1, 837, 844, -1, -1, -1, + -1, -1, 844, 833, -1, -1, 826, -1, -1, -1, + -1, -1, -1, -1, -1, 1, -1, 3, 4, -1, + 862, 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, -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, 3, - 44, 45, 46, -1, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, -1, -1, -1, 63, - 64, 25, 26, -1, -1, -1, -1, -1, -1, -1, - 34, -1, -1, -1, -1, -1, -1, 81, -1, -1, - -1, 1, -1, 3, 4, -1, 90, 7, 8, 9, + 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, 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, 44, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 54, 3, -1, -1, -1, -1, 8, 9, + 10, 63, 64, 13, 14, 15, 16, -1, -1, -1, + -1, -1, -1, 23, -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, 81, 3, 4, - 40, -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, -1, -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, 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, -1, -1, 40, - -1, -1, -1, -1, -1, 1, -1, -1, 4, 5, - 6, 7, -1, -1, 81, -1, -1, -1, -1, -1, - 87, -1, 63, 64, 20, 21, -1, 23, -1, -1, - -1, 27, -1, -1, -1, -1, -1, -1, -1, -1, - 81, -1, -1, -1, 40, 41, 42, 43, -1, 90, - -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, 72, -1, -1, -1, + 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, + 40, 81, 82, 83, 84, 85, 86, 87, 88, 89, + -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, + -1, -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 86, 3, 4, -1, 90, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, -1, -1, -1, - -1, 23, 1, 25, 26, 4, 5, 6, 7, -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, 20, 21, -1, 23, -1, -1, -1, 27, -1, + -1, -1, -1, -1, -1, 63, 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 40, 41, 42, 43, -1, -1, -1, -1, -1, - 49, 50, -1, -1, 53, -1, -1, 56, -1, 81, - -1, -1, -1, -1, 63, 64, -1, -1, 90, -1, - -1, 70, 71, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1, -1, 3, -1, -1, 86, 87, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 21, -1, 23, 24, 25, 26, 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, 4, 5, 6, 7, - -1, -1, -1, -1, -1, -1, -1, 40, 41, 42, - 43, -1, 20, 21, -1, 23, 49, 50, -1, 27, - 53, -1, 81, 56, -1, -1, -1, -1, 87, -1, - 63, 64, 40, 41, 42, 43, -1, 70, 71, 72, - -1, 49, 50, -1, -1, 53, -1, -1, 56, -1, - -1, -1, -1, 86, -1, 63, 64, -1, -1, 3, - -1, -1, 70, 71, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 86, 23, - 24, 25, 26, 1, -1, 3, -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, 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, -1, + -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, 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, 20, 21, 3, 23, 24, 25, 26, 8, + 18, 19, 1, -1, 3, -1, 24, 25, 26, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, -1, 23, 24, 25, 26, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 81, -1, 3, - -1, -1, -1, 87, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, -1, -1, -1, -1, - -1, 25, 26, 81, -1, -1, -1, -1, -1, -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, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 81 + -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, + 82, 83, 84, 85, 86, 87, 88, 89, -1, -1, + -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 81, 82, 83, 84, 85, 86, 87, + 88, 89, -1, -1, -1, -1, -1, 95, -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, + 3, 23, 24, 25, 26, 8, 9, 10, 11, 12, + 13, 14, 15, 16, 17, 18, 19, -1, -1, 3, + -1, -1, 25, 26, 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, -1, 81, + 82, 83, 84, 85, 86, 87, 88, 89, -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, 81, 82, 83, + 84, 85, 86, 87, 88, 89 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint16 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, 202, 203, 221, 229, - 230, 238, 247, 267, 269, 280, 282, 304, 305, 306, - 348, 399, 400, 401, 402, 403, 407, 429, 431, 454, - 455, 456, 457, 458, 462, 463, 464, 467, 471, 479, - 494, 495, 129, 204, 131, 158, 239, 268, 281, 307, - 349, 3, 201, 255, 157, 53, 157, 172, 174, 53, - 164, 174, 175, 201, 201, 432, 3, 81, 197, 200, - 197, 480, 496, 201, 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, 210, 211, 229, 237, + 238, 246, 255, 275, 277, 288, 290, 312, 313, 314, + 356, 407, 408, 409, 410, 411, 415, 437, 439, 462, + 463, 464, 465, 466, 470, 471, 472, 475, 479, 487, + 502, 503, 137, 212, 139, 166, 247, 276, 289, 315, + 357, 3, 209, 263, 165, 53, 165, 180, 182, 53, + 172, 182, 183, 209, 209, 440, 3, 89, 205, 208, + 205, 488, 504, 209, 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, 197, 242, 243, 244, 245, 246, 257, - 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, - 269, 280, 282, 306, 315, 318, 321, 322, 325, 326, - 329, 119, 115, 113, 87, 231, 116, 270, 22, 120, - 117, 118, 124, 404, 125, 430, 126, 160, 465, 465, - 127, 128, 89, 498, 88, 17, 197, 208, 257, 260, - 261, 262, 263, 264, 322, 326, 197, 201, 240, 242, - 201, 201, 201, 201, 160, 201, 160, 169, 201, 201, - 408, 201, 198, 75, 81, 75, 230, 230, 89, 89, - 88, 4, 6, 20, 21, 23, 24, 27, 49, 53, - 67, 472, 473, 475, 230, 491, 88, 48, 176, 89, - 88, 89, 8, 11, 8, 9, 91, 319, 173, 92, - 94, 91, 91, 88, 88, 197, 88, 89, 283, 88, - 88, 88, 88, 89, 88, 89, 441, 88, 466, 459, - 468, 88, 88, 499, 205, 241, 308, 350, 89, 93, - 410, 433, 200, 199, 3, 231, 3, 222, 134, 208, - 91, 3, 139, 474, 73, 74, 75, 76, 77, 78, - 79, 80, 84, 85, 99, 100, 104, 105, 197, 209, - 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, - 493, 92, 161, 155, 166, 8, 210, 220, 91, 47, - 177, 316, 323, 327, 232, 271, 105, 405, 442, 177, - 89, 89, 501, 201, 201, 248, 251, 255, 256, 330, - 89, 89, 170, 411, 409, 93, 438, 200, 481, 497, - 223, 111, 112, 3, 92, 94, 218, 218, 218, 210, - 96, 97, 98, 82, 83, 99, 100, 101, 102, 103, - 492, 151, 194, 197, 184, 180, 94, 320, 194, 220, - 220, 220, 105, 233, 230, 273, 275, 284, 412, 444, - 460, 469, 30, 31, 60, 65, 68, 69, 337, 338, - 343, 421, 423, 424, 490, 500, 502, 206, 331, 249, - 309, 351, 184, 197, 177, 439, 434, 89, 410, 7, - 90, 203, 208, 224, 226, 227, 265, 306, 135, 92, - 140, 475, 106, 212, 213, 214, 215, 215, 216, 216, - 217, 217, 217, 94, 201, 195, 1, 32, 33, 156, - 185, 203, 238, 337, 348, 353, 358, 399, 400, 44, - 45, 46, 167, 181, 182, 183, 185, 360, 210, 230, - 317, 324, 328, 200, 210, 234, 235, 237, 1, 242, - 276, 272, 274, 230, 51, 52, 61, 337, 406, 413, - 421, 423, 426, 427, 428, 490, 44, 54, 185, 443, - 445, 448, 451, 184, 180, 339, 344, 19, 197, 422, - 58, 425, 197, 197, 505, 503, 504, 422, 506, 90, - 95, 230, 94, 230, 311, 314, 274, 171, 197, 177, - 482, 225, 88, 201, 88, 90, 3, 89, 230, 94, - 193, 90, 189, 186, 191, 190, 192, 34, 197, 244, - 322, 326, 359, 382, 187, 188, 361, 90, 276, 88, - 92, 243, 92, 92, 92, 95, 106, 94, 236, 279, - 277, 90, 275, 8, 197, 257, 262, 263, 264, 289, - 306, 197, 197, 197, 419, 90, 414, 415, 416, 417, - 418, 420, 201, 201, 90, 446, 447, 461, 470, 31, - 382, 200, 3, 3, 88, 88, 88, 200, 88, 207, - 107, 332, 334, 250, 3, 310, 312, 352, 90, 435, - 337, 421, 423, 484, 486, 240, 29, 228, 141, 493, - 196, 88, 88, 88, 88, 88, 88, 354, 88, 88, - 230, 210, 200, 237, 88, 248, 285, 200, 200, 200, - 88, 88, 88, 88, 88, 88, 88, 449, 452, 88, - 88, 90, 90, 340, 345, 209, 335, 333, 251, 90, - 94, 90, 66, 489, 487, 488, 483, 485, 88, 210, - 88, 72, 114, 130, 143, 145, 146, 197, 230, 3, - 236, 278, 106, 105, 364, 364, 382, 252, 255, 220, - 334, 313, 436, 88, 88, 88, 90, 486, 197, 142, - 144, 88, 3, 362, 88, 286, 365, 366, 450, 453, - 341, 346, 253, 336, 314, 197, 147, 90, 145, 355, - 364, 89, 106, 35, 367, 370, 38, 384, 384, 252, - 55, 387, 94, 108, 437, 91, 105, 373, 363, 287, - 371, 106, 368, 385, 342, 388, 347, 254, 59, 440, - 3, 476, 478, 374, 375, 356, 384, 1, 28, 29, - 290, 292, 296, 298, 382, 94, 105, 384, 105, 62, - 390, 255, 197, 92, 477, 106, 35, 36, 37, 376, - 379, 383, 384, 295, 300, 299, 288, 291, 293, 297, - 372, 369, 386, 389, 391, 148, 94, 106, 377, 380, - 357, 88, 210, 93, 90, 292, 230, 298, 251, 370, - 194, 194, 105, 201, 478, 94, 382, 39, 393, 301, - 242, 302, 106, 106, 392, 378, 381, 394, 93, 303, - 294, 194, 379, 251, 105, 251, 88, 106, 395, 75, - 396, 397, 106, 94, 398, 75 + 25, 26, 81, 82, 83, 84, 85, 86, 87, 88, + 168, 205, 250, 251, 252, 253, 254, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 277, 288, + 290, 314, 323, 326, 329, 330, 333, 334, 337, 127, + 123, 121, 95, 239, 124, 278, 22, 128, 125, 126, + 132, 412, 133, 438, 134, 168, 473, 473, 135, 136, + 97, 506, 96, 17, 205, 216, 265, 268, 269, 270, + 271, 272, 330, 334, 205, 209, 248, 250, 209, 209, + 209, 209, 168, 209, 168, 177, 209, 209, 416, 209, + 206, 75, 89, 75, 238, 238, 97, 97, 96, 4, + 6, 20, 21, 23, 24, 27, 49, 53, 67, 480, + 481, 483, 238, 499, 96, 48, 184, 97, 96, 97, + 8, 11, 8, 9, 99, 327, 181, 100, 102, 99, + 99, 96, 96, 205, 96, 97, 291, 96, 96, 96, + 96, 97, 96, 97, 449, 96, 474, 467, 476, 96, + 96, 507, 213, 249, 316, 358, 97, 101, 418, 441, + 208, 207, 3, 239, 3, 230, 142, 216, 99, 3, + 147, 482, 73, 74, 75, 76, 77, 78, 79, 80, + 92, 93, 107, 108, 112, 113, 205, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 501, 100, + 169, 163, 174, 8, 218, 228, 99, 47, 185, 324, + 331, 335, 240, 279, 113, 413, 450, 185, 97, 97, + 509, 209, 209, 256, 259, 263, 264, 338, 97, 97, + 178, 419, 417, 101, 446, 208, 489, 505, 231, 119, + 120, 3, 100, 102, 226, 226, 226, 218, 104, 105, + 106, 90, 91, 107, 108, 109, 110, 111, 500, 159, + 202, 205, 192, 188, 102, 328, 202, 228, 228, 228, + 113, 241, 238, 281, 283, 292, 420, 452, 468, 477, + 30, 31, 60, 65, 68, 69, 345, 346, 351, 429, + 431, 432, 498, 508, 510, 214, 339, 257, 317, 359, + 192, 205, 185, 447, 442, 97, 418, 7, 98, 211, + 216, 232, 234, 235, 273, 314, 143, 100, 148, 483, + 114, 220, 221, 222, 223, 223, 224, 224, 225, 225, + 225, 102, 209, 203, 1, 32, 33, 164, 193, 211, + 246, 345, 356, 361, 366, 407, 408, 44, 45, 46, + 175, 189, 190, 191, 193, 368, 218, 238, 325, 332, + 336, 208, 218, 242, 243, 245, 1, 250, 284, 280, + 282, 238, 51, 52, 61, 345, 414, 421, 429, 431, + 434, 435, 436, 498, 44, 54, 193, 451, 453, 456, + 459, 192, 188, 347, 352, 19, 205, 430, 58, 433, + 205, 205, 513, 511, 512, 430, 514, 98, 103, 238, + 102, 238, 319, 322, 282, 179, 205, 185, 490, 233, + 96, 209, 96, 98, 3, 97, 238, 102, 201, 98, + 197, 194, 199, 198, 200, 34, 205, 252, 330, 334, + 367, 390, 195, 196, 369, 98, 284, 96, 100, 251, + 100, 100, 100, 103, 114, 102, 244, 287, 285, 98, + 283, 8, 205, 265, 270, 271, 272, 297, 314, 205, + 205, 205, 427, 98, 422, 423, 424, 425, 426, 428, + 209, 209, 98, 454, 455, 469, 478, 31, 390, 208, + 3, 3, 96, 96, 96, 208, 96, 215, 115, 340, + 342, 258, 3, 318, 320, 360, 98, 443, 345, 429, + 431, 492, 494, 248, 29, 236, 149, 501, 204, 96, + 96, 96, 96, 96, 96, 362, 96, 96, 238, 218, + 208, 245, 96, 256, 293, 208, 208, 208, 96, 96, + 96, 96, 96, 96, 96, 457, 460, 96, 96, 98, + 98, 348, 353, 217, 343, 341, 259, 98, 102, 98, + 66, 497, 495, 496, 491, 493, 96, 218, 96, 72, + 122, 138, 151, 153, 154, 205, 238, 3, 244, 286, + 114, 113, 372, 372, 390, 260, 263, 228, 342, 321, + 444, 96, 96, 96, 98, 494, 205, 150, 152, 96, + 3, 370, 96, 294, 373, 374, 458, 461, 349, 354, + 261, 344, 322, 205, 155, 98, 153, 363, 372, 97, + 114, 35, 375, 378, 38, 392, 392, 260, 55, 395, + 102, 116, 445, 99, 113, 381, 371, 295, 379, 114, + 376, 393, 350, 396, 355, 262, 59, 448, 3, 484, + 486, 382, 383, 364, 392, 1, 28, 29, 298, 300, + 304, 306, 390, 102, 113, 392, 113, 62, 398, 263, + 205, 100, 485, 114, 35, 36, 37, 384, 387, 391, + 392, 303, 308, 307, 296, 299, 301, 305, 380, 377, + 394, 397, 399, 156, 102, 114, 385, 388, 365, 96, + 218, 101, 98, 300, 238, 306, 259, 378, 202, 202, + 113, 209, 486, 102, 390, 39, 401, 309, 250, 310, + 114, 114, 400, 386, 389, 402, 101, 311, 302, 202, + 387, 259, 113, 259, 96, 114, 403, 75, 404, 405, + 114, 102, 406, 75 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint16 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, 181, 181, 181, 182, 182, - 183, 184, 184, 186, 185, 187, 185, 188, 185, 189, - 185, 190, 185, 191, 185, 192, 185, 193, 185, 194, - 196, 195, 195, 197, 198, 197, 199, 197, 200, 201, - 202, 202, 202, 204, 205, 206, 207, 203, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 209, 210, 211, - 211, 212, 212, 213, 213, 214, 214, 214, 215, 215, - 215, 216, 216, 216, 216, 217, 217, 217, 217, 218, - 218, 218, 219, 219, 219, 219, 219, 219, 219, 219, - 219, 219, 220, 222, 221, 223, 223, 224, 224, 224, - 225, 224, 226, 226, 227, 228, 228, 229, 230, 230, - 232, 231, 233, 233, 234, 234, 235, 236, 236, 237, - 239, 238, 238, 238, 238, 238, 238, 241, 240, 242, - 242, 243, 243, 243, 244, 244, 244, 244, 244, 244, - 244, 244, 245, 245, 245, 245, 246, 246, 246, 247, - 247, 248, 250, 249, 249, 251, 251, 252, 254, 253, - 253, 255, 256, 257, 257, 258, 258, 258, 259, 259, - 259, 260, 260, 260, 261, 262, 262, 263, 264, 265, - 266, 268, 267, 270, 271, 272, 269, 273, 274, 274, - 275, 277, 278, 276, 279, 276, 281, 280, 283, 284, - 285, 286, 287, 288, 282, 289, 289, 289, 289, 289, - 289, 290, 291, 291, 293, 294, 292, 295, 292, 296, - 297, 297, 299, 298, 300, 301, 298, 303, 302, 304, - 305, 307, 308, 309, 310, 306, 311, 313, 312, 312, - 314, 316, 317, 315, 315, 319, 320, 318, 321, 323, - 324, 322, 322, 325, 327, 328, 326, 326, 329, 331, - 330, 332, 333, 333, 335, 336, 334, 337, 337, 339, - 340, 341, 342, 338, 344, 345, 346, 347, 343, 349, - 350, 351, 352, 348, 354, 355, 356, 357, 353, 358, - 358, 358, 359, 359, 361, 362, 363, 360, 365, 364, - 366, 364, 367, 369, 368, 368, 371, 372, 370, 374, - 373, 375, 373, 376, 378, 377, 377, 380, 381, 379, - 382, 382, 382, 382, 383, 383, 383, 385, 386, 384, - 384, 388, 389, 387, 387, 391, 392, 390, 390, 394, - 395, 393, 393, 396, 398, 397, 397, 399, 400, 401, - 401, 402, 404, 405, 406, 403, 408, 409, 407, 411, - 410, 410, 412, 412, 414, 413, 415, 413, 416, 413, - 417, 413, 418, 413, 419, 413, 420, 413, 421, 422, - 422, 423, 424, 425, 425, 426, 427, 428, 430, 429, - 432, 433, 434, 435, 436, 437, 431, 439, 438, 438, - 440, 440, 442, 443, 441, 444, 444, 445, 446, 445, - 447, 445, 449, 450, 448, 452, 453, 451, 454, 454, - 454, 455, 455, 456, 457, 459, 460, 461, 458, 462, - 463, 464, 466, 465, 468, 469, 470, 467, 471, 471, - 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, - 473, 474, 474, 475, 475, 476, 477, 477, 478, 480, - 481, 482, 483, 479, 484, 485, 485, 487, 486, 488, - 486, 489, 486, 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, 189, 189, 189, 190, 190, + 191, 192, 192, 194, 193, 195, 193, 196, 193, 197, + 193, 198, 193, 199, 193, 200, 193, 201, 193, 202, + 204, 203, 203, 205, 206, 205, 207, 205, 208, 209, + 210, 210, 210, 212, 213, 214, 215, 211, 216, 216, + 216, 216, 216, 216, 216, 216, 216, 217, 218, 219, + 219, 220, 220, 221, 221, 222, 222, 222, 223, 223, + 223, 224, 224, 224, 224, 225, 225, 225, 225, 226, + 226, 226, 227, 227, 227, 227, 227, 227, 227, 227, + 227, 227, 228, 230, 229, 231, 231, 232, 232, 232, + 233, 232, 234, 234, 235, 236, 236, 237, 238, 238, + 240, 239, 241, 241, 242, 242, 243, 244, 244, 245, + 247, 246, 246, 246, 246, 246, 246, 249, 248, 250, + 250, 251, 251, 251, 252, 252, 252, 252, 252, 252, + 252, 252, 253, 253, 253, 253, 254, 254, 254, 255, + 255, 256, 258, 257, 257, 259, 259, 260, 262, 261, + 261, 263, 264, 265, 265, 266, 266, 266, 266, 266, + 266, 266, 267, 267, 267, 267, 267, 267, 267, 268, + 268, 268, 269, 270, 270, 271, 272, 273, 274, 276, + 275, 278, 279, 280, 277, 281, 282, 282, 283, 285, + 286, 284, 287, 284, 289, 288, 291, 292, 293, 294, + 295, 296, 290, 297, 297, 297, 297, 297, 297, 298, + 299, 299, 301, 302, 300, 303, 300, 304, 305, 305, + 307, 306, 308, 309, 306, 311, 310, 312, 313, 315, + 316, 317, 318, 314, 319, 321, 320, 320, 322, 324, + 325, 323, 323, 327, 328, 326, 329, 331, 332, 330, + 330, 333, 335, 336, 334, 334, 337, 339, 338, 340, + 341, 341, 343, 344, 342, 345, 345, 347, 348, 349, + 350, 346, 352, 353, 354, 355, 351, 357, 358, 359, + 360, 356, 362, 363, 364, 365, 361, 366, 366, 366, + 367, 367, 369, 370, 371, 368, 373, 372, 374, 372, + 375, 377, 376, 376, 379, 380, 378, 382, 381, 383, + 381, 384, 386, 385, 385, 388, 389, 387, 390, 390, + 390, 390, 391, 391, 391, 393, 394, 392, 392, 396, + 397, 395, 395, 399, 400, 398, 398, 402, 403, 401, + 401, 404, 406, 405, 405, 407, 408, 409, 409, 410, + 412, 413, 414, 411, 416, 417, 415, 419, 418, 418, + 420, 420, 422, 421, 423, 421, 424, 421, 425, 421, + 426, 421, 427, 421, 428, 421, 429, 430, 430, 431, + 432, 433, 433, 434, 435, 436, 438, 437, 440, 441, + 442, 443, 444, 445, 439, 447, 446, 446, 448, 448, + 450, 451, 449, 452, 452, 453, 454, 453, 455, 453, + 457, 458, 456, 460, 461, 459, 462, 462, 462, 463, + 463, 464, 465, 467, 468, 469, 466, 470, 471, 472, + 474, 473, 476, 477, 478, 475, 479, 479, 480, 480, + 480, 480, 480, 480, 480, 480, 480, 480, 481, 482, + 482, 483, 483, 484, 485, 485, 486, 488, 489, 490, + 491, 487, 492, 493, 493, 495, 494, 496, 494, 497, + 494, 498, 498, 499, 500, 500, 501, 502, 504, 505, + 503, 507, 508, 506, 509, 509, 511, 510, 512, 510, + 513, 510, 514, 510 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ @@ -1641,40 +1723,41 @@ static const yytype_uint8 yyr2[] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 0, 4, 0, 1, 1, 2, 0, 4, - 0, 1, 1, 1, 1, 1, 2, 1, 2, 3, - 2, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 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, 11, 1, - 1, 0, 1, 1, 0, 0, 0, 8, 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, 2, 0, 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, 10, 2, 2, 0, 0, 3, 0, - 3, 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 + 0, 1, 1, 1, 1, 1, 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, 11, 1, 1, 0, + 1, 1, 0, 0, 0, 8, 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, + 2, 0, 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, 10, 2, 2, 0, 0, 3, 0, 3, 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 }; @@ -2352,7 +2435,7 @@ yyparse (void) switch (yyn) { case 5: -#line 400 "fe/idl.ypp" /* yacc.c:1651 */ +#line 410 "fe/idl.ypp" /* yacc.c:1651 */ { AST_Decl *d = (yyvsp[0].dcval); AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val); @@ -2367,314 +2450,314 @@ yyparse (void) } delete annotations; } -#line 2371 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2454 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 6: -#line 415 "fe/idl.ypp" /* yacc.c:1651 */ +#line 425 "fe/idl.ypp" /* yacc.c:1651 */ { } -#line 2378 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2461 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 7: -#line 421 "fe/idl.ypp" /* yacc.c:1651 */ +#line 431 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dcval) = (yyvsp[0].dcval); } -#line 2386 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2469 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 8: -#line 425 "fe/idl.ypp" /* yacc.c:1651 */ +#line 435 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dcval) = 0; } -#line 2394 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2477 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 9: -#line 429 "fe/idl.ypp" /* yacc.c:1651 */ +#line 439 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dcval) = 0; } -#line 2402 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2485 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 10: -#line 436 "fe/idl.ypp" /* yacc.c:1651 */ +#line 446 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_AnnotationDeclSeen); } -#line 2410 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2493 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 11: -#line 440 "fe/idl.ypp" /* yacc.c:1651 */ +#line 450 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = 0; } -#line 2419 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2502 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 12: -#line 445 "fe/idl.ypp" /* yacc.c:1651 */ +#line 455 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_TypeDeclSeen); } -#line 2427 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2510 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 13: -#line 449 "fe/idl.ypp" /* yacc.c:1651 */ +#line 459 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = (yyvsp[-2].dcval); } -#line 2436 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2519 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 14: -#line 454 "fe/idl.ypp" /* yacc.c:1651 */ +#line 464 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_TypeIdDeclSeen); } -#line 2444 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2527 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 15: -#line 458 "fe/idl.ypp" /* yacc.c:1651 */ +#line 468 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = 0; } -#line 2453 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2536 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 16: -#line 463 "fe/idl.ypp" /* yacc.c:1651 */ +#line 473 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_TypePrefixDeclSeen); } -#line 2461 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2544 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 17: -#line 467 "fe/idl.ypp" /* yacc.c:1651 */ +#line 477 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = 0; } -#line 2470 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2553 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 18: -#line 472 "fe/idl.ypp" /* yacc.c:1651 */ +#line 482 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ConstDeclSeen); } -#line 2478 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2561 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 19: -#line 476 "fe/idl.ypp" /* yacc.c:1651 */ +#line 486 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = (yyvsp[-2].dcval); } -#line 2487 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2570 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 20: -#line 481 "fe/idl.ypp" /* yacc.c:1651 */ +#line 491 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ExceptDeclSeen); } -#line 2495 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2578 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 21: -#line 485 "fe/idl.ypp" /* yacc.c:1651 */ +#line 495 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = 0; } -#line 2504 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2587 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 22: -#line 490 "fe/idl.ypp" /* yacc.c:1651 */ +#line 500 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceDeclSeen); } -#line 2512 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2595 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 23: -#line 494 "fe/idl.ypp" /* yacc.c:1651 */ +#line 504 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = 0; } -#line 2521 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2604 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 24: -#line 499 "fe/idl.ypp" /* yacc.c:1651 */ +#line 509 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ModuleDeclSeen); } -#line 2529 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2612 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 25: -#line 503 "fe/idl.ypp" /* yacc.c:1651 */ +#line 513 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = (yyvsp[-2].dcval); } -#line 2538 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2621 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 26: -#line 508 "fe/idl.ypp" /* yacc.c:1651 */ +#line 518 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeDeclSeen); } -#line 2546 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2629 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 27: -#line 512 "fe/idl.ypp" /* yacc.c:1651 */ +#line 522 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = 0; } -#line 2555 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2638 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 28: -#line 517 "fe/idl.ypp" /* yacc.c:1651 */ +#line 527 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ComponentDeclSeen); } -#line 2563 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2646 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 29: -#line 521 "fe/idl.ypp" /* yacc.c:1651 */ +#line 531 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = 0; } -#line 2572 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2655 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 30: -#line 526 "fe/idl.ypp" /* yacc.c:1651 */ +#line 536 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_HomeDeclSeen); } -#line 2580 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2663 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 31: -#line 530 "fe/idl.ypp" /* yacc.c:1651 */ +#line 540 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = 0; } -#line 2589 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2672 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 32: -#line 535 "fe/idl.ypp" /* yacc.c:1651 */ +#line 545 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EventDeclSeen); } -#line 2597 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2680 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 33: -#line 539 "fe/idl.ypp" /* yacc.c:1651 */ +#line 549 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = 0; } -#line 2606 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2689 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 34: -#line 544 "fe/idl.ypp" /* yacc.c:1651 */ +#line 554 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeDeclSeen); } -#line 2614 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2697 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 35: -#line 548 "fe/idl.ypp" /* yacc.c:1651 */ +#line 558 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = 0; } -#line 2623 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2706 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 36: -#line 553 "fe/idl.ypp" /* yacc.c:1651 */ +#line 563 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorDeclSeen); } -#line 2631 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2714 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 37: -#line 557 "fe/idl.ypp" /* yacc.c:1651 */ +#line 567 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); (yyval.dcval) = 0; } -#line 2640 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2723 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 38: -#line 562 "fe/idl.ypp" /* yacc.c:1651 */ +#line 572 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->err()->syntax_error (idl_global->parse_state()); } -#line 2648 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2731 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 39: -#line 566 "fe/idl.ypp" /* yacc.c:1651 */ +#line 576 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); yyerrok; (yyval.dcval) = 0; } -#line 2658 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2741 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 40: -#line 575 "fe/idl.ypp" /* yacc.c:1651 */ +#line 585 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ModuleSeen); } -#line 2666 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2749 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 41: -#line 579 "fe/idl.ypp" /* yacc.c:1651 */ +#line 589 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.idlist) = (yyvsp[0].idlist); } -#line 2674 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2757 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 42: -#line 586 "fe/idl.ypp" /* yacc.c:1651 */ +#line 596 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ModuleIDSeen); @@ -2713,27 +2796,27 @@ yyparse (void) (yyval.dcval) = m; } -#line 2717 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2800 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 43: -#line 625 "fe/idl.ypp" /* yacc.c:1651 */ +#line 635 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ModuleSqSeen); } -#line 2725 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2808 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 44: -#line 629 "fe/idl.ypp" /* yacc.c:1651 */ +#line 639 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ModuleBodySeen); } -#line 2733 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2816 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 45: -#line 633 "fe/idl.ypp" /* yacc.c:1651 */ +#line 643 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ModuleQsSeen); /* @@ -2743,19 +2826,19 @@ yyparse (void) idl_global->scopes ().pop (); (yyval.dcval) = (yyvsp[-5].dcval); } -#line 2747 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2830 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 46: -#line 646 "fe/idl.ypp" /* yacc.c:1651 */ +#line 656 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleIDSeen); } -#line 2755 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2838 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 47: -#line 653 "fe/idl.ypp" /* yacc.c:1651 */ +#line 663 "fe/idl.ypp" /* yacc.c:1651 */ { // The module_header rule is common to template module, fixed // module and instantiated template module. In the last @@ -2769,11 +2852,11 @@ yyparse (void) IDL_GlobalData::PS_ModuleIDSeen); } } -#line 2773 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2856 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 48: -#line 667 "fe/idl.ypp" /* yacc.c:1651 */ +#line 677 "fe/idl.ypp" /* yacc.c:1651 */ { if (FE_Utils::duplicate_param_id ((yyvsp[0].plval))) { @@ -2783,11 +2866,11 @@ yyparse (void) return 1; } } -#line 2787 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2870 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 49: -#line 677 "fe/idl.ypp" /* yacc.c:1651 */ +#line 687 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleParamsSeen); @@ -2817,27 +2900,27 @@ yyparse (void) // of the template module. idl_global->current_params ((yyvsp[-2].plval)); } -#line 2821 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2904 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 50: -#line 707 "fe/idl.ypp" /* yacc.c:1651 */ +#line 717 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleSqSeen); } -#line 2829 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2912 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 51: -#line 711 "fe/idl.ypp" /* yacc.c:1651 */ +#line 721 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleBodySeen); } -#line 2837 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2920 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 52: -#line 715 "fe/idl.ypp" /* yacc.c:1651 */ +#line 725 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_TmplModuleQsSeen); @@ -2854,29 +2937,29 @@ yyparse (void) // that we are no longer in a template module scope. idl_global->current_params (0); } -#line 2858 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2941 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 58: -#line 749 "fe/idl.ypp" /* yacc.c:1651 */ +#line 759 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state ( IDL_GlobalData::PS_ModuleRefSeen); } -#line 2867 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2950 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 59: -#line 754 "fe/idl.ypp" /* yacc.c:1651 */ +#line 764 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state ( IDL_GlobalData::PS_ModuleRefParamsSeen); } -#line 2876 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 2959 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 60: -#line 759 "fe/idl.ypp" /* yacc.c:1651 */ +#line 769 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state ( IDL_GlobalData::PS_ModuleRefIDSeen); @@ -2954,29 +3037,29 @@ yyparse (void) idl_global->in_tmpl_mod_no_alias (itmna_flag); idl_global->in_tmpl_mod_alias (false); } -#line 2958 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3041 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 61: -#line 840 "fe/idl.ypp" /* yacc.c:1651 */ +#line 850 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state ( IDL_GlobalData::PS_InstModuleSeen); } -#line 2967 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3050 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 62: -#line 845 "fe/idl.ypp" /* yacc.c:1651 */ +#line 855 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state ( IDL_GlobalData::PS_InstModuleArgsSeen); } -#line 2976 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3059 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 63: -#line 850 "fe/idl.ypp" /* yacc.c:1651 */ +#line 860 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state ( IDL_GlobalData::PS_InstModuleIDSeen); @@ -3038,11 +3121,11 @@ yyparse (void) idl_global->set_err_count (idl_global->err_count () + 1); } } -#line 3042 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3125 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 66: -#line 920 "fe/idl.ypp" /* yacc.c:1651 */ +#line 930 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Interface *i = 0; @@ -3080,27 +3163,27 @@ yyparse (void) */ idl_global->scopes ().push (i); } -#line 3084 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3167 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 67: -#line 958 "fe/idl.ypp" /* yacc.c:1651 */ +#line 968 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceSqSeen); } -#line 3092 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3175 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 68: -#line 962 "fe/idl.ypp" /* yacc.c:1651 */ +#line 972 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceBodySeen); } -#line 3100 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3183 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 69: -#line 966 "fe/idl.ypp" /* yacc.c:1651 */ +#line 976 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceQsSeen); @@ -3109,28 +3192,28 @@ yyparse (void) */ idl_global->scopes ().pop (); } -#line 3113 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3196 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 70: -#line 978 "fe/idl.ypp" /* yacc.c:1651 */ +#line 988 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceSeen); } -#line 3121 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3204 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 71: -#line 982 "fe/idl.ypp" /* yacc.c:1651 */ +#line 992 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InterfaceIDSeen); (yyval.idval) = (yyvsp[0].idval); } -#line 3130 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3213 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 72: -#line 990 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1000 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen); @@ -3166,11 +3249,11 @@ yyparse (void) (yyvsp[0].nlval) = 0; } } -#line 3170 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3253 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 73: -#line 1027 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1037 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen); @@ -3199,11 +3282,11 @@ yyparse (void) (yyvsp[0].nlval) = 0; } } -#line 3203 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3286 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 74: -#line 1057 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1067 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen); @@ -3232,44 +3315,44 @@ yyparse (void) (yyvsp[0].nlval) = 0; } } -#line 3236 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3319 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 75: -#line 1089 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1099 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InheritColonSeen); } -#line 3244 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3327 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 76: -#line 1093 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1103 "fe/idl.ypp" /* yacc.c:1651 */ { (yyvsp[0].nlval)->truncatable ((yyvsp[-2].bval)); (yyval.nlval) = (yyvsp[0].nlval); } -#line 3253 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3336 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 77: -#line 1098 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1108 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.nlval) = 0; } -#line 3261 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3344 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 82: -#line 1112 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1122 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->err ()->unsupported_error ("custom is not supported"); } -#line 3269 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3352 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 84: -#line 1120 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1130 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_ValueType *v = 0; @@ -3312,27 +3395,27 @@ yyparse (void) */ idl_global->scopes ().push (v); } -#line 3316 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3399 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 85: -#line 1163 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1173 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeSqSeen); } -#line 3324 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3407 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 86: -#line 1167 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1177 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeBodySeen); } -#line 3332 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3415 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 87: -#line 1171 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1181 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeQsSeen); @@ -3351,11 +3434,11 @@ yyparse (void) */ idl_global->scopes ().pop (); } -#line 3355 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3438 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 88: -#line 1194 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1204 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_ValueType *v = 0; @@ -3398,27 +3481,27 @@ yyparse (void) */ idl_global->scopes ().push (v); } -#line 3402 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3485 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 89: -#line 1237 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1247 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeSqSeen); } -#line 3410 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3493 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 90: -#line 1241 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1251 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeBodySeen); } -#line 3418 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3501 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 91: -#line 1245 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1255 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeQsSeen); @@ -3427,19 +3510,19 @@ yyparse (void) */ idl_global->scopes ().pop (); } -#line 3431 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3514 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 92: -#line 1258 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1268 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen); } -#line 3439 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3522 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 93: -#line 1262 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1272 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SupportSpecSeen); @@ -3470,61 +3553,61 @@ yyparse (void) (yyvsp[-2].nlval) = 0; } } -#line 3474 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3557 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 94: -#line 1296 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1306 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeSeen); } -#line 3482 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3565 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 95: -#line 1300 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1310 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ValueTypeIDSeen); (yyval.idval) = (yyvsp[0].idval); } -#line 3491 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3574 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 96: -#line 1308 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1318 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.bval) = true; } -#line 3499 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3582 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 97: -#line 1312 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1322 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.bval) = false; } -#line 3507 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3590 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 98: -#line 1320 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1330 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.nlval) = (yyvsp[0].nlval); } -#line 3515 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3598 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 99: -#line 1324 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1334 "fe/idl.ypp" /* yacc.c:1651 */ { /* | EMPTY */ (yyval.nlval) = 0; } -#line 3524 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3607 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 100: -#line 1333 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1343 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -3547,11 +3630,11 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 3551 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3634 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 101: -#line 1357 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1367 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -3574,11 +3657,11 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 3578 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3661 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 102: -#line 1383 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1393 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ValueBoxDeclSeen); @@ -3639,27 +3722,27 @@ yyparse (void) delete (yyvsp[-1].idval); (yyvsp[-1].idval) = 0; } -#line 3643 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3726 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 108: -#line 1459 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1469 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.vival) = AST_Field::vis_PUBLIC; } -#line 3651 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3734 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 109: -#line 1463 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1473 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.vival) = AST_Field::vis_PRIVATE; } -#line 3659 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3742 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 110: -#line 1470 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1480 "fe/idl.ypp" /* yacc.c:1651 */ { if ((yyvsp[0].decls_val)) { @@ -3675,159 +3758,159 @@ yyparse (void) } delete (yyvsp[0].decls_val); } -#line 3679 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3762 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 113: -#line 1494 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1504 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_TypeDeclSeen); } -#line 3687 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3770 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 114: -#line 1498 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1508 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 3695 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3778 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 115: -#line 1502 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1512 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_TypeIdDeclSeen); } -#line 3703 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3786 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 116: -#line 1506 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1516 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 3711 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3794 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 117: -#line 1510 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1520 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_TypePrefixDeclSeen); } -#line 3719 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3802 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 118: -#line 1514 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1524 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 3727 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3810 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 119: -#line 1518 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1528 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ConstDeclSeen); } -#line 3735 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3818 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 120: -#line 1522 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1532 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state(IDL_GlobalData::PS_NoState); } -#line 3743 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3826 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 121: -#line 1526 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1536 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ExceptDeclSeen); } -#line 3751 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3834 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 122: -#line 1530 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1540 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 3759 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3842 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 123: -#line 1534 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1544 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclSeen); } -#line 3767 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3850 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 124: -#line 1538 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1548 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 3775 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3858 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 125: -#line 1542 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1552 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpDeclSeen); } -#line 3783 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3866 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 126: -#line 1546 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1556 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 3791 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3874 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 127: -#line 1550 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1560 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->err()->syntax_error (idl_global->parse_state()); } -#line 3799 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3882 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 128: -#line 1554 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1564 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); yyerrok; } -#line 3808 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3891 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 129: -#line 1562 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1572 "fe/idl.ypp" /* yacc.c:1651 */ { ACE_NEW_RETURN ((yyval.nlval), UTL_NameList ((yyvsp[-1].idlist), (yyvsp[0].nlval)), 1); } -#line 3819 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3902 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 130: -#line 1573 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1583 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SNListCommaSeen); } -#line 3827 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3910 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 131: -#line 1577 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1587 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ScopedNameSeen); @@ -3847,19 +3930,19 @@ yyparse (void) (yyval.nlval) = (yyvsp[-3].nlval); } } -#line 3851 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3934 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 132: -#line 1597 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1607 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.nlval) = 0; } -#line 3859 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3942 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 133: -#line 1604 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1614 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SN_IDSeen); @@ -3868,19 +3951,19 @@ yyparse (void) 0), 1); } -#line 3872 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3955 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 134: -#line 1613 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1623 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ScopeDelimSeen); } -#line 3880 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3963 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 135: -#line 1617 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1627 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SN_IDSeen); @@ -3900,11 +3983,11 @@ yyparse (void) sn), 1); } -#line 3904 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 3987 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 136: -#line 1638 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1648 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ScopeDelimSeen); @@ -3914,11 +3997,11 @@ yyparse (void) ACE::strdelete ((yyvsp[0].strval)); (yyvsp[0].strval) = 0; } -#line 3918 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4001 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 137: -#line 1648 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1658 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SN_IDSeen); @@ -3930,11 +4013,11 @@ yyparse (void) (yyvsp[-3].idlist)->nconc (sn); (yyval.idlist) = (yyvsp[-3].idlist); } -#line 3934 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4017 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 138: -#line 1662 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1672 "fe/idl.ypp" /* yacc.c:1651 */ { ACE_NEW_RETURN ((yyval.idval), Identifier ((yyvsp[0].strval)), @@ -3942,11 +4025,11 @@ yyparse (void) ACE::strdelete ((yyvsp[0].strval)); (yyvsp[0].strval) = 0; } -#line 3946 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4029 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 139: -#line 1672 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1682 "fe/idl.ypp" /* yacc.c:1651 */ { /* defining_id is a defining identifier whereas id is usually a reference to a defining identifier */ @@ -3954,11 +4037,11 @@ yyparse (void) ACE::strdelete ((yyvsp[0].strval)); (yyvsp[0].strval) = 0; } -#line 3958 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4041 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 140: -#line 1683 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1693 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), 0); @@ -4001,11 +4084,11 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 4005 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4088 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 141: -#line 1727 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1737 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -4031,11 +4114,11 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 4035 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4118 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 142: -#line 1754 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1764 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -4061,43 +4144,43 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 4065 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4148 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 143: -#line 1783 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1793 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ConstSeen); } -#line 4073 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4156 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 144: -#line 1787 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1797 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ConstTypeSeen); } -#line 4081 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4164 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 145: -#line 1791 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1801 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ConstIDSeen); } -#line 4089 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4172 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 146: -#line 1795 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1805 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ConstAssignSeen); } -#line 4097 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4180 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 147: -#line 1799 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1809 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dcval) = 0; UTL_ScopedName n ((yyvsp[-4].idval), 0); @@ -4153,27 +4236,27 @@ yyparse (void) delete (yyvsp[-4].idval); (yyvsp[-4].idval) = 0; } -#line 4157 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4240 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 154: -#line 1864 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1874 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.etval) = AST_Expression::EV_string; } -#line 4165 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4248 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 155: -#line 1868 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1878 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.etval) = AST_Expression::EV_wstring; } -#line 4173 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4256 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 156: -#line 1872 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1882 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_PredefinedType *c = 0; @@ -4239,11 +4322,11 @@ yyparse (void) sn = 0; (yyvsp[0].idlist) = 0; } -#line 4243 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4326 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 160: -#line 1945 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1955 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4252,11 +4335,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4256 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4339 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 162: -#line 1958 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1968 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4265,11 +4348,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4269 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4352 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 164: -#line 1971 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1981 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4278,11 +4361,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4282 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4365 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 166: -#line 1984 "fe/idl.ypp" /* yacc.c:1651 */ +#line 1994 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4291,11 +4374,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4295 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4378 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 167: -#line 1993 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2003 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4304,11 +4387,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4308 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4391 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 169: -#line 2006 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2016 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4317,11 +4400,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4321 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4404 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 170: -#line 2015 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2025 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4330,11 +4413,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4334 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4417 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 172: -#line 2028 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2038 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4343,11 +4426,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4347 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4430 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 173: -#line 2037 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2047 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4356,11 +4439,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4360 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4443 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 174: -#line 2046 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2056 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4369,11 +4452,11 @@ yyparse (void) (yyvsp[0].exval) ); } -#line 4373 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4456 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 176: -#line 2059 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2069 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ( @@ -4382,11 +4465,11 @@ yyparse (void) 0 ); } -#line 4386 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4469 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 177: -#line 2068 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2078 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen()->create_expr ( @@ -4395,11 +4478,11 @@ yyparse (void) 0 ); } -#line 4399 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4482 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 178: -#line 2077 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2087 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen()->create_expr ( @@ -4408,11 +4491,11 @@ yyparse (void) 0 ); } -#line 4412 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4495 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 179: -#line 2089 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2099 "fe/idl.ypp" /* yacc.c:1651 */ { /* * An expression which is a scoped name is not resolved now, @@ -4470,104 +4553,104 @@ yyparse (void) delete (yyvsp[0].idlist); (yyvsp[0].idlist) = 0; } -#line 4474 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4557 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 181: -#line 2148 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2158 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = (yyvsp[-1].exval); } -#line 4482 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4565 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 182: -#line 2155 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2165 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].ival)); } -#line 4490 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4573 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 183: -#line 2159 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2169 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].uival)); } -#line 4499 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4582 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 184: -#line 2164 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2174 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].sval)); (yyvsp[0].sval)->destroy (); delete (yyvsp[0].sval); (yyvsp[0].sval) = 0; } -#line 4510 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4593 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 185: -#line 2171 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2181 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].wsval)); } -#line 4518 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4601 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 186: -#line 2175 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2185 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].cval)); } -#line 4526 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4609 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 187: -#line 2179 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2189 "fe/idl.ypp" /* yacc.c:1651 */ { ACE_OutputCDR::from_wchar wc ((yyvsp[0].wcval)); (yyval.exval) = idl_global->gen ()->create_expr (wc); } -#line 4535 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4618 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 188: -#line 2184 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2194 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].fixval)); } -#line 4543 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4626 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 189: -#line 2188 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2198 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr ((yyvsp[0].dval)); } -#line 4551 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4634 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 190: -#line 2192 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2202 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr (true); } -#line 4559 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4642 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 191: -#line 2196 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2206 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = idl_global->gen ()->create_expr (false); } -#line 4567 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4650 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 192: -#line 2203 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2213 "fe/idl.ypp" /* yacc.c:1651 */ { int good_expression = 1; (yyvsp[0].exval)->evaluate (AST_Expression::EK_positive_int); @@ -4632,11 +4715,11 @@ yyparse (void) idl_global->err ()->syntax_error (idl_global->parse_state ()); } } -#line 4636 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4719 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 193: -#line 2271 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2281 "fe/idl.ypp" /* yacc.c:1651 */ { if (idl_global->idl_version_ < IDL_VERSION_4) { @@ -4653,31 +4736,31 @@ yyparse (void) fe_add_annotation_decl (annotation_decl); idl_global->scopes ().push (annotation_decl); } -#line 4657 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4740 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 194: -#line 2288 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2298 "fe/idl.ypp" /* yacc.c:1651 */ { Identifier *id = (yyvsp[-4].idval); idl_global->scopes ().pop (); id->destroy (); delete id; } -#line 4668 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4751 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 200: -#line 2306 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2316 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_TypedefSeen); idl_global->in_typedef (true); } -#line 4677 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4760 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 204: -#line 2320 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2330 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *scope = idl_global->scopes ().top_non_null (); UTL_Scope *root = idl_global->scopes ().bottom (); @@ -4728,27 +4811,27 @@ yyparse (void) delete result; } } -#line 4732 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4815 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 205: -#line 2374 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2384 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = (yyvsp[0].exval); } -#line 4740 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4823 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 206: -#line 2378 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2388 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.exval) = 0; } -#line 4748 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4831 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 207: -#line 2385 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2395 "fe/idl.ypp" /* yacc.c:1651 */ { AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val); AST_Annotation_Appl *annotation = (yyvsp[0].annotation_val); @@ -4758,11 +4841,11 @@ yyparse (void) } (yyval.annotations_val) = annotations; } -#line 4762 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4845 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 208: -#line 2398 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2408 "fe/idl.ypp" /* yacc.c:1651 */ { AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val); AST_Annotation_Appl *annotation = (yyvsp[0].annotation_val); @@ -4772,19 +4855,19 @@ yyparse (void) } (yyval.annotations_val) = annotations; } -#line 4776 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4859 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 209: -#line 2408 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2418 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.annotations_val) = new AST_Annotation_Appls (); } -#line 4784 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4867 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 210: -#line 2415 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2425 "fe/idl.ypp" /* yacc.c:1651 */ { if (idl_global->idl_version_ < IDL_VERSION_4) { @@ -4837,11 +4920,11 @@ yyparse (void) (yyval.annotation_decl_val) = decl; } -#line 4841 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4924 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 211: -#line 2468 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2478 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->ignore_lookup_errors_ = false; AST_Annotation_Appl *appl = 0; @@ -4868,27 +4951,27 @@ yyparse (void) (yyval.annotation_val) = appl; } -#line 4872 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4955 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 212: -#line 2498 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2508 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.annotation_params_val) = (yyvsp[-1].annotation_params_val); } -#line 4880 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4963 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 213: -#line 2502 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2512 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.annotation_params_val) = 0; } -#line 4888 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4971 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 214: -#line 2509 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2519 "fe/idl.ypp" /* yacc.c:1651 */ { AST_Annotation_Appl::Params *params = new AST_Annotation_Appl::Params; AST_Annotation_Appl::Param *param = new AST_Annotation_Appl::Param; @@ -4897,99 +4980,99 @@ yyparse (void) params->push (param); (yyval.annotation_params_val) = params; } -#line 4901 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4984 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 215: -#line 2518 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2528 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.annotation_params_val) = (yyvsp[0].annotation_params_val); } -#line 4909 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 4992 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 216: -#line 2525 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2535 "fe/idl.ypp" /* yacc.c:1651 */ { AST_Annotation_Appl::Params *params = (yyvsp[0].annotation_params_val); params->push ((yyvsp[-1].annotation_param_val)); (yyval.annotation_params_val) = params; } -#line 4919 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5002 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 217: -#line 2533 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2543 "fe/idl.ypp" /* yacc.c:1651 */ { AST_Annotation_Appl::Params *params = (yyvsp[0].annotation_params_val); params->push ((yyvsp[-1].annotation_param_val)); (yyval.annotation_params_val) = params; } -#line 4929 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5012 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 218: -#line 2539 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2549 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.annotation_params_val) = new AST_Annotation_Appl::Params; } -#line 4937 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5020 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 219: -#line 2546 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2556 "fe/idl.ypp" /* yacc.c:1651 */ { AST_Annotation_Appl::Param *param = new AST_Annotation_Appl::Param; param->id = (yyvsp[-2].idval); param->expr = (yyvsp[0].exval); (yyval.annotation_param_val) = param; } -#line 4948 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5031 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 220: -#line 2556 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2566 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_TypedefSeen); idl_global->in_typedef (true); } -#line 4957 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5040 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 221: -#line 2561 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2571 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dcval) = (yyvsp[0].dcval); } -#line 4965 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5048 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 222: -#line 2565 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2575 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dcval) = (yyvsp[0].dcval); } -#line 4973 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5056 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 223: -#line 2569 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2579 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dcval) = (yyvsp[0].dcval); } -#line 4981 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5064 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 224: -#line 2573 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2583 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dcval) = (yyvsp[0].dcval); } -#line 4989 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5072 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 225: -#line 2577 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2587 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Native *node = 0; @@ -5015,27 +5098,27 @@ yyparse (void) delete (yyvsp[0].deval); (yyvsp[0].deval) = 0; } -#line 5019 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5102 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 226: -#line 2603 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2613 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dcval) = 0; } -#line 5027 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5110 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 227: -#line 2610 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2620 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_TypeSpecSeen); } -#line 5035 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5118 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 228: -#line 2614 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2624 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); FE_Declarator *d = 0; @@ -5100,22 +5183,22 @@ yyparse (void) (yyval.dcval) = t; } -#line 5104 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5187 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 231: -#line 2687 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2697 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dcval) = idl_global->scopes ().bottom ()->lookup_primitive_type ( (yyvsp[0].etval) ); } -#line 5115 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5198 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 233: -#line 2695 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2705 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Decl *d = 0; @@ -5138,30 +5221,30 @@ yyparse (void) (yyval.dcval) = d; } -#line 5142 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5225 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 251: -#line 2750 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2760 "fe/idl.ypp" /* yacc.c:1651 */ { ACE_NEW_RETURN ((yyval.dlval), UTL_DeclList ((yyvsp[-1].deval), (yyvsp[0].dlval)), 1); } -#line 5153 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5236 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 252: -#line 2761 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2771 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_DeclsCommaSeen); } -#line 5161 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5244 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 253: -#line 2765 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2775 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_DeclsDeclSeen); @@ -5181,38 +5264,38 @@ yyparse (void) (yyval.dlval) = (yyvsp[-3].dlval); } } -#line 5185 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5268 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 254: -#line 2785 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2795 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dlval) = 0; } -#line 5193 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5276 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 257: -#line 2797 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2807 "fe/idl.ypp" /* yacc.c:1651 */ { ACE_NEW_RETURN ((yyval.dlval), UTL_DeclList ((yyvsp[-1].deval), (yyvsp[0].dlval)), 1); } -#line 5204 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5287 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 258: -#line 2808 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2818 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_DeclsCommaSeen); } -#line 5212 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5295 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 259: -#line 2812 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2822 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_DeclsDeclSeen); @@ -5232,19 +5315,19 @@ yyparse (void) (yyval.dlval) = (yyvsp[-3].dlval); } } -#line 5236 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5319 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 260: -#line 2832 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2842 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dlval) = 0; } -#line 5244 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5327 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 261: -#line 2839 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2849 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_ScopedName *sn = 0; ACE_NEW_RETURN (sn, @@ -5257,11 +5340,11 @@ yyparse (void) 0), 1); } -#line 5261 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5344 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 262: -#line 2855 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2865 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_ScopedName *sn = 0; ACE_NEW_RETURN (sn, @@ -5276,156 +5359,220 @@ yyparse (void) (yyvsp[0].dcval)), 1); } -#line 5280 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5363 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 265: -#line 2878 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2888 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.etval) = AST_Expression::EV_long; } -#line 5288 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5371 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 266: -#line 2882 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2892 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.etval) = AST_Expression::EV_longlong; } -#line 5296 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5379 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 267: -#line 2886 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2896 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.etval) = AST_Expression::EV_short; } -#line 5304 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5387 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 268: -#line 2893 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2900 "fe/idl.ypp" /* yacc.c:1651 */ { - (yyval.etval) = AST_Expression::EV_ulong; + (yyval.etval) = AST_Expression::EV_int8; } -#line 5312 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5395 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 269: -#line 2897 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2904 "fe/idl.ypp" /* yacc.c:1651 */ { - (yyval.etval) = AST_Expression::EV_ulonglong; + (yyval.etval) = AST_Expression::EV_short; } -#line 5320 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5403 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 270: -#line 2901 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2908 "fe/idl.ypp" /* yacc.c:1651 */ { - (yyval.etval) = AST_Expression::EV_ushort; + (yyval.etval) = AST_Expression::EV_long; } -#line 5328 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5411 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 271: -#line 2908 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2912 "fe/idl.ypp" /* yacc.c:1651 */ { - (yyval.etval) = AST_Expression::EV_double; + (yyval.etval) = AST_Expression::EV_longlong; } -#line 5336 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5419 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 272: -#line 2912 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2919 "fe/idl.ypp" /* yacc.c:1651 */ { - (yyval.etval) = AST_Expression::EV_float; + (yyval.etval) = AST_Expression::EV_ulong; } -#line 5344 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5427 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 273: -#line 2916 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2923 "fe/idl.ypp" /* yacc.c:1651 */ { - (yyval.etval) = AST_Expression::EV_longdouble; + (yyval.etval) = AST_Expression::EV_ulonglong; } -#line 5352 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5435 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 274: -#line 2923 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2927 "fe/idl.ypp" /* yacc.c:1651 */ { - (yyval.etval) = AST_Expression::EV_fixed; + (yyval.etval) = AST_Expression::EV_ushort; } -#line 5360 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5443 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 275: -#line 2930 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2931 "fe/idl.ypp" /* yacc.c:1651 */ { - (yyval.etval) = AST_Expression::EV_char; + (yyval.etval) = AST_Expression::EV_uint8; } -#line 5368 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5451 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 276: -#line 2934 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2935 "fe/idl.ypp" /* yacc.c:1651 */ { - (yyval.etval) = AST_Expression::EV_wchar; + (yyval.etval) = AST_Expression::EV_ushort; } -#line 5376 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5459 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 277: -#line 2941 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2939 "fe/idl.ypp" /* yacc.c:1651 */ { - (yyval.etval) = AST_Expression::EV_octet; + (yyval.etval) = AST_Expression::EV_ulong; } -#line 5384 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5467 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 278: -#line 2948 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2943 "fe/idl.ypp" /* yacc.c:1651 */ { - (yyval.etval) = AST_Expression::EV_bool; + (yyval.etval) = AST_Expression::EV_ulonglong; } -#line 5392 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5475 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 279: -#line 2955 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2950 "fe/idl.ypp" /* yacc.c:1651 */ { - (yyval.etval) = AST_Expression::EV_any; + (yyval.etval) = AST_Expression::EV_double; } -#line 5400 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5483 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 280: -#line 2962 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2954 "fe/idl.ypp" /* yacc.c:1651 */ { - (yyval.etval) = AST_Expression::EV_object; + (yyval.etval) = AST_Expression::EV_float; } -#line 5408 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5491 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 281: -#line 2969 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2958 "fe/idl.ypp" /* yacc.c:1651 */ { - idl_global->set_parse_state (IDL_GlobalData::PS_StructSeen); + (yyval.etval) = AST_Expression::EV_longdouble; } -#line 5416 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5499 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; case 282: -#line 2973 "fe/idl.ypp" /* yacc.c:1651 */ +#line 2965 "fe/idl.ypp" /* yacc.c:1651 */ + { + (yyval.etval) = AST_Expression::EV_fixed; + } +#line 5507 "fe/idl.tab.cpp" /* yacc.c:1651 */ + break; + + case 283: +#line 2972 "fe/idl.ypp" /* yacc.c:1651 */ + { + (yyval.etval) = AST_Expression::EV_char; + } +#line 5515 "fe/idl.tab.cpp" /* yacc.c:1651 */ + break; + + case 284: +#line 2976 "fe/idl.ypp" /* yacc.c:1651 */ + { + (yyval.etval) = AST_Expression::EV_wchar; + } +#line 5523 "fe/idl.tab.cpp" /* yacc.c:1651 */ + break; + + case 285: +#line 2983 "fe/idl.ypp" /* yacc.c:1651 */ + { + (yyval.etval) = AST_Expression::EV_octet; + } +#line 5531 "fe/idl.tab.cpp" /* yacc.c:1651 */ + break; + + case 286: +#line 2990 "fe/idl.ypp" /* yacc.c:1651 */ + { + (yyval.etval) = AST_Expression::EV_bool; + } +#line 5539 "fe/idl.tab.cpp" /* yacc.c:1651 */ + break; + + case 287: +#line 2997 "fe/idl.ypp" /* yacc.c:1651 */ + { + (yyval.etval) = AST_Expression::EV_any; + } +#line 5547 "fe/idl.tab.cpp" /* yacc.c:1651 */ + break; + + case 288: +#line 3004 "fe/idl.ypp" /* yacc.c:1651 */ + { + (yyval.etval) = AST_Expression::EV_object; + } +#line 5555 "fe/idl.tab.cpp" /* yacc.c:1651 */ + break; + + case 289: +#line 3011 "fe/idl.ypp" /* yacc.c:1651 */ + { + idl_global->set_parse_state (IDL_GlobalData::PS_StructSeen); + } +#line 5563 "fe/idl.tab.cpp" /* yacc.c:1651 */ + break; + + case 290: +#line 3015 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_StructIDSeen); (yyval.idval) = (yyvsp[0].idval); } -#line 5425 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5572 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 283: -#line 2982 "fe/idl.ypp" /* yacc.c:1651 */ + case 291: +#line 3024 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), 0); @@ -5456,27 +5603,27 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 5460 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5607 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 284: -#line 3013 "fe/idl.ypp" /* yacc.c:1651 */ + case 292: +#line 3055 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_StructSqSeen); } -#line 5468 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5615 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 285: -#line 3017 "fe/idl.ypp" /* yacc.c:1651 */ + case 293: +#line 3059 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_StructBodySeen); } -#line 5476 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5623 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 286: -#line 3021 "fe/idl.ypp" /* yacc.c:1651 */ + case 294: +#line 3063 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_StructQsSeen); @@ -5488,11 +5635,11 @@ yyparse (void) ); idl_global->scopes ().pop (); } -#line 5492 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5639 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 290: -#line 3043 "fe/idl.ypp" /* yacc.c:1651 */ + case 298: +#line 3085 "fe/idl.ypp" /* yacc.c:1651 */ { AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val); AST_Decls *members = (yyvsp[0].decls_val); @@ -5506,27 +5653,27 @@ yyparse (void) delete annotations; delete members; } -#line 5510 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5657 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 291: -#line 3060 "fe/idl.ypp" /* yacc.c:1651 */ + case 299: +#line 3102 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_MemberTypeSeen); } -#line 5518 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5665 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 292: -#line 3064 "fe/idl.ypp" /* yacc.c:1651 */ + case 300: +#line 3106 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_MemberDeclsSeen); } -#line 5526 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5673 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 293: -#line 3068 "fe/idl.ypp" /* yacc.c:1651 */ + case 301: +#line 3110 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); FE_Declarator *d = 0; @@ -5580,53 +5727,53 @@ yyparse (void) (yyval.decls_val) = members; } -#line 5584 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5731 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 294: -#line 3122 "fe/idl.ypp" /* yacc.c:1651 */ + case 302: +#line 3164 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->err()->syntax_error (idl_global->parse_state ()); } -#line 5592 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5739 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 295: -#line 3126 "fe/idl.ypp" /* yacc.c:1651 */ + case 303: +#line 3168 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); yyerrok; } -#line 5601 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5748 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 296: -#line 3134 "fe/idl.ypp" /* yacc.c:1651 */ + case 304: +#line 3176 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_UnionSeen); } -#line 5609 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5756 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 297: -#line 3138 "fe/idl.ypp" /* yacc.c:1651 */ + case 305: +#line 3180 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_UnionIDSeen); (yyval.idval) = (yyvsp[0].idval); } -#line 5618 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5765 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 298: -#line 3146 "fe/idl.ypp" /* yacc.c:1651 */ + case 306: +#line 3188 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SwitchSeen); } -#line 5626 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5773 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 299: -#line 3150 "fe/idl.ypp" /* yacc.c:1651 */ + case 307: +#line 3192 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[-3].idval), 0); @@ -5659,19 +5806,19 @@ yyparse (void) * Don't delete $1 yet; we'll need it a bit later. */ } -#line 5663 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5810 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 300: -#line 3183 "fe/idl.ypp" /* yacc.c:1651 */ + case 308: +#line 3225 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SwitchTypeSeen); } -#line 5671 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5818 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 301: -#line 3187 "fe/idl.ypp" /* yacc.c:1651 */ + case 309: +#line 3229 "fe/idl.ypp" /* yacc.c:1651 */ { /* * The top of the scopes must be an empty union we added after we @@ -5730,27 +5877,27 @@ yyparse (void) delete disc_annotations; } -#line 5734 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5881 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 302: -#line 3246 "fe/idl.ypp" /* yacc.c:1651 */ + case 310: +#line 3288 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_UnionSqSeen); } -#line 5742 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5889 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 303: -#line 3250 "fe/idl.ypp" /* yacc.c:1651 */ + case 311: +#line 3292 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_UnionBodySeen); } -#line 5750 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5897 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 304: -#line 3254 "fe/idl.ypp" /* yacc.c:1651 */ + case 312: +#line 3296 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_UnionQsSeen); @@ -5766,22 +5913,22 @@ yyparse (void) idl_global->scopes ().pop (); } } -#line 5770 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5917 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 305: -#line 3273 "fe/idl.ypp" /* yacc.c:1651 */ + case 313: +#line 3315 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dcval) = idl_global->scopes ().bottom ()->lookup_primitive_type ( (yyvsp[0].etval) ); } -#line 5781 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5928 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 306: -#line 3280 "fe/idl.ypp" /* yacc.c:1651 */ + case 314: +#line 3322 "fe/idl.ypp" /* yacc.c:1651 */ { /* wchars are not allowed. */ if ((yyvsp[0].etval) == AST_Expression::EV_wchar) @@ -5794,11 +5941,11 @@ yyparse (void) (yyvsp[0].etval) ); } -#line 5798 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5945 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 307: -#line 3293 "fe/idl.ypp" /* yacc.c:1651 */ + case 315: +#line 3335 "fe/idl.ypp" /* yacc.c:1651 */ { /* octets are not allowed. */ idl_global->err ()->error0 (UTL_Error::EIDL_DISC_TYPE); @@ -5807,22 +5954,22 @@ yyparse (void) (yyvsp[0].etval) ); } -#line 5811 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5958 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 308: -#line 3302 "fe/idl.ypp" /* yacc.c:1651 */ + case 316: +#line 3344 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dcval) = idl_global->scopes ().bottom ()->lookup_primitive_type ( (yyvsp[0].etval) ); } -#line 5822 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 5969 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 310: -#line 3310 "fe/idl.ypp" /* yacc.c:1651 */ + case 318: +#line 3352 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Decl *d = 0; @@ -5929,27 +6076,27 @@ yyparse (void) delete (yyvsp[0].idlist); (yyvsp[0].idlist) = 0; } -#line 5933 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6080 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 314: -#line 3427 "fe/idl.ypp" /* yacc.c:1651 */ + case 322: +#line 3469 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_UnionLabelSeen); } -#line 5941 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6088 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 315: -#line 3431 "fe/idl.ypp" /* yacc.c:1651 */ + case 323: +#line 3473 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_UnionElemSeen); } -#line 5949 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6096 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 316: -#line 3435 "fe/idl.ypp" /* yacc.c:1651 */ + case 324: +#line 3477 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_UnionBranch *b = 0; @@ -5981,39 +6128,39 @@ yyparse (void) delete annotations; } -#line 5985 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6132 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 317: -#line 3467 "fe/idl.ypp" /* yacc.c:1651 */ + case 325: +#line 3509 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->err()->syntax_error (idl_global->parse_state()); } -#line 5993 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6140 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 318: -#line 3471 "fe/idl.ypp" /* yacc.c:1651 */ + case 326: +#line 3513 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); yyerrok; } -#line 6002 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6149 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 319: -#line 3479 "fe/idl.ypp" /* yacc.c:1651 */ + case 327: +#line 3521 "fe/idl.ypp" /* yacc.c:1651 */ { ACE_NEW_RETURN ((yyval.llval), UTL_LabelList ((yyvsp[-1].ulval), (yyvsp[0].llval)), 1); } -#line 6013 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6160 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 320: -#line 3489 "fe/idl.ypp" /* yacc.c:1651 */ + case 328: +#line 3531 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_LabelList *ll = 0; ACE_NEW_RETURN (ll, @@ -6031,27 +6178,27 @@ yyparse (void) (yyval.llval) = (yyvsp[-1].llval); } } -#line 6035 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6182 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 321: -#line 3507 "fe/idl.ypp" /* yacc.c:1651 */ + case 329: +#line 3549 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.llval) = 0; } -#line 6043 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6190 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 322: -#line 3514 "fe/idl.ypp" /* yacc.c:1651 */ + case 330: +#line 3556 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_DefaultSeen); } -#line 6051 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6198 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 323: -#line 3518 "fe/idl.ypp" /* yacc.c:1651 */ + case 331: +#line 3560 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_LabelColonSeen); @@ -6060,27 +6207,27 @@ yyparse (void) 0 ); } -#line 6064 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6211 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 324: -#line 3527 "fe/idl.ypp" /* yacc.c:1651 */ + case 332: +#line 3569 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_CaseSeen); } -#line 6072 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6219 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 325: -#line 3531 "fe/idl.ypp" /* yacc.c:1651 */ + case 333: +#line 3573 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_LabelExprSeen); } -#line 6080 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6227 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 326: -#line 3535 "fe/idl.ypp" /* yacc.c:1651 */ + case 334: +#line 3577 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_LabelColonSeen); @@ -6089,19 +6236,19 @@ yyparse (void) (yyvsp[-2].exval) ); } -#line 6093 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6240 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 327: -#line 3547 "fe/idl.ypp" /* yacc.c:1651 */ + case 335: +#line 3589 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_UnionElemTypeSeen); } -#line 6101 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6248 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 328: -#line 3551 "fe/idl.ypp" /* yacc.c:1651 */ + case 336: +#line 3593 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_UnionElemDeclSeen); @@ -6145,11 +6292,11 @@ yyparse (void) (yyvsp[0].deval) = 0; } } -#line 6149 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6296 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 329: -#line 3598 "fe/idl.ypp" /* yacc.c:1651 */ + case 337: +#line 3640 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -6171,11 +6318,11 @@ yyparse (void) (yyval.dcval) = d; } -#line 6175 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6322 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 330: -#line 3623 "fe/idl.ypp" /* yacc.c:1651 */ + case 338: +#line 3665 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -6195,19 +6342,19 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 6199 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6346 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 331: -#line 3646 "fe/idl.ypp" /* yacc.c:1651 */ + case 339: +#line 3688 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EnumSeen); } -#line 6207 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6354 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 332: -#line 3650 "fe/idl.ypp" /* yacc.c:1651 */ + case 340: +#line 3692 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), 0); @@ -6238,27 +6385,27 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 6242 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6389 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 333: -#line 3681 "fe/idl.ypp" /* yacc.c:1651 */ + case 341: +#line 3723 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EnumSqSeen); } -#line 6250 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6397 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 334: -#line 3685 "fe/idl.ypp" /* yacc.c:1651 */ + case 342: +#line 3727 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EnumBodySeen); } -#line 6258 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6405 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 335: -#line 3689 "fe/idl.ypp" /* yacc.c:1651 */ + case 343: +#line 3731 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EnumQsSeen); @@ -6277,19 +6424,19 @@ yyparse (void) idl_global->scopes ().pop (); } } -#line 6281 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6428 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 337: -#line 3714 "fe/idl.ypp" /* yacc.c:1651 */ + case 345: +#line 3756 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EnumCommaSeen); } -#line 6289 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6436 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 340: -#line 3723 "fe/idl.ypp" /* yacc.c:1651 */ + case 348: +#line 3765 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Annotation_Appls *annotations = (yyvsp[-1].annotations_val); @@ -6324,27 +6471,27 @@ yyparse (void) delete annotations; } -#line 6328 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6475 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 341: -#line 3762 "fe/idl.ypp" /* yacc.c:1651 */ + case 349: +#line 3804 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SequenceCommaSeen); } -#line 6336 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6483 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 342: -#line 3766 "fe/idl.ypp" /* yacc.c:1651 */ + case 350: +#line 3808 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SequenceExprSeen); } -#line 6344 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6491 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 343: -#line 3770 "fe/idl.ypp" /* yacc.c:1651 */ + case 351: +#line 3812 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SequenceQsSeen); @@ -6429,11 +6576,11 @@ yyparse (void) ev = 0; (yyval.dcval) = seq; } -#line 6433 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6580 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 344: -#line 3856 "fe/idl.ypp" /* yacc.c:1651 */ + case 352: +#line 3898 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SequenceQsSeen); @@ -6499,11 +6646,11 @@ yyparse (void) delete type_annotations; (yyval.dcval) = seq; } -#line 6503 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6650 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 345: -#line 3925 "fe/idl.ypp" /* yacc.c:1651 */ + case 353: +#line 3967 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SequenceSeen); @@ -6512,19 +6659,19 @@ yyparse (void) */ idl_global->scopes ().push (0); } -#line 6516 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6663 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 346: -#line 3934 "fe/idl.ypp" /* yacc.c:1651 */ + case 354: +#line 3976 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SequenceSqSeen); } -#line 6524 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6671 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 347: -#line 3938 "fe/idl.ypp" /* yacc.c:1651 */ + case 355: +#line 3980 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SequenceTypeSeen); Decl_Annotations_Pair *seq_head = new Decl_Annotations_Pair; @@ -6532,36 +6679,36 @@ yyparse (void) seq_head->annotations = (yyvsp[-1].annotations_val); (yyval.decl_annotations_pair_val) = seq_head; } -#line 6536 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6683 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 348: -#line 3949 "fe/idl.ypp" /* yacc.c:1651 */ + case 356: +#line 3991 "fe/idl.ypp" /* yacc.c:1651 */ { (yyvsp[-1].exval)->evaluate (AST_Expression::EK_positive_int); (yyval.dcval) = idl_global->gen ()->create_fixed ((yyvsp[-3].exval), (yyvsp[-1].exval)); } -#line 6545 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6692 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 349: -#line 3958 "fe/idl.ypp" /* yacc.c:1651 */ + case 357: +#line 4000 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_StringSqSeen); } -#line 6553 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6700 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 350: -#line 3962 "fe/idl.ypp" /* yacc.c:1651 */ + case 358: +#line 4004 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_StringExprSeen); } -#line 6561 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6708 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 351: -#line 3966 "fe/idl.ypp" /* yacc.c:1651 */ + case 359: +#line 4008 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_StringQsSeen); @@ -6603,11 +6750,11 @@ yyparse (void) delete ev; ev = 0; } -#line 6607 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6754 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 352: -#line 4008 "fe/idl.ypp" /* yacc.c:1651 */ + case 360: +#line 4050 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_StringCompleted); @@ -6630,35 +6777,35 @@ yyparse (void) (yyval.dcval) = tao_string_decl; } -#line 6634 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6781 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 353: -#line 4034 "fe/idl.ypp" /* yacc.c:1651 */ + case 361: +#line 4076 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_StringSeen); } -#line 6642 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6789 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 354: -#line 4042 "fe/idl.ypp" /* yacc.c:1651 */ + case 362: +#line 4084 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_StringSqSeen); } -#line 6650 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6797 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 355: -#line 4046 "fe/idl.ypp" /* yacc.c:1651 */ + case 363: +#line 4088 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_StringExprSeen); } -#line 6658 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6805 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 356: -#line 4050 "fe/idl.ypp" /* yacc.c:1651 */ + case 364: +#line 4092 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_StringQsSeen); @@ -6691,11 +6838,11 @@ yyparse (void) (yyval.dcval) = string; } } -#line 6695 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6842 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 357: -#line 4083 "fe/idl.ypp" /* yacc.c:1651 */ + case 365: +#line 4125 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_StringCompleted); @@ -6718,27 +6865,27 @@ yyparse (void) (yyval.dcval) = string; } -#line 6722 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6869 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 358: -#line 4109 "fe/idl.ypp" /* yacc.c:1651 */ + case 366: +#line 4151 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_StringSeen); } -#line 6730 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6877 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 359: -#line 4116 "fe/idl.ypp" /* yacc.c:1651 */ + case 367: +#line 4158 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ArrayIDSeen); } -#line 6738 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6885 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 360: -#line 4120 "fe/idl.ypp" /* yacc.c:1651 */ + case 368: +#line 4162 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ArrayCompleted); @@ -6778,22 +6925,22 @@ yyparse (void) (yyval.dcval) = array; } -#line 6782 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6929 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 361: -#line 4163 "fe/idl.ypp" /* yacc.c:1651 */ + case 369: +#line 4205 "fe/idl.ypp" /* yacc.c:1651 */ { ACE_NEW_RETURN ((yyval.elval), UTL_ExprList ((yyvsp[-1].exval), (yyvsp[0].elval)), 1); } -#line 6793 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6940 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 362: -#line 4173 "fe/idl.ypp" /* yacc.c:1651 */ + case 370: +#line 4215 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_ExprList *el = 0; ACE_NEW_RETURN (el, @@ -6811,35 +6958,35 @@ yyparse (void) (yyval.elval) = (yyvsp[-1].elval); } } -#line 6815 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6962 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 363: -#line 4191 "fe/idl.ypp" /* yacc.c:1651 */ + case 371: +#line 4233 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.elval) = 0; } -#line 6823 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6970 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 364: -#line 4198 "fe/idl.ypp" /* yacc.c:1651 */ + case 372: +#line 4240 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_DimSqSeen); } -#line 6831 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6978 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 365: -#line 4202 "fe/idl.ypp" /* yacc.c:1651 */ + case 373: +#line 4244 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_DimExprSeen); } -#line 6839 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 6986 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 366: -#line 4206 "fe/idl.ypp" /* yacc.c:1651 */ + case 374: +#line 4248 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_DimQsSeen); @@ -6893,43 +7040,43 @@ yyparse (void) delete ev; ev = 0; } -#line 6897 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7044 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 369: -#line 4268 "fe/idl.ypp" /* yacc.c:1651 */ + case 377: +#line 4310 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_AttrROSeen); } -#line 6905 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7052 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 370: -#line 4272 "fe/idl.ypp" /* yacc.c:1651 */ + case 378: +#line 4314 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_AttrSeen); } -#line 6913 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7060 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 371: -#line 4276 "fe/idl.ypp" /* yacc.c:1651 */ + case 379: +#line 4318 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_AttrTypeSeen); } -#line 6921 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7068 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 372: -#line 4280 "fe/idl.ypp" /* yacc.c:1651 */ + case 380: +#line 4322 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclsSeen); } -#line 6929 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7076 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 373: -#line 4284 "fe/idl.ypp" /* yacc.c:1651 */ + case 381: +#line 4326 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Attribute *a = 0; @@ -6989,43 +7136,43 @@ yyparse (void) delete (yyvsp[-2].dlval); (yyvsp[-2].dlval) = 0; } -#line 6993 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7140 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 374: -#line 4347 "fe/idl.ypp" /* yacc.c:1651 */ + case 382: +#line 4389 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_AttrSeen); } -#line 7001 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7148 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 375: -#line 4351 "fe/idl.ypp" /* yacc.c:1651 */ + case 383: +#line 4393 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_AttrTypeSeen); } -#line 7009 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7156 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 376: -#line 4355 "fe/idl.ypp" /* yacc.c:1651 */ + case 384: +#line 4397 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclsSeen); } -#line 7017 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7164 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 377: -#line 4359 "fe/idl.ypp" /* yacc.c:1651 */ + case 385: +#line 4401 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpGetRaiseCompleted); } -#line 7025 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7172 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 378: -#line 4363 "fe/idl.ypp" /* yacc.c:1651 */ + case 386: +#line 4405 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Attribute *a = 0; @@ -7094,19 +7241,19 @@ yyparse (void) delete (yyvsp[-4].dlval); (yyvsp[-4].dlval) = 0; } -#line 7098 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7245 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 379: -#line 4435 "fe/idl.ypp" /* yacc.c:1651 */ + case 387: +#line 4477 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ExceptSeen); } -#line 7106 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7253 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 380: -#line 4439 "fe/idl.ypp" /* yacc.c:1651 */ + case 388: +#line 4481 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -7135,27 +7282,27 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 7139 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7286 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 381: -#line 4468 "fe/idl.ypp" /* yacc.c:1651 */ + case 389: +#line 4510 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ExceptSqSeen); } -#line 7147 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7294 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 382: -#line 4472 "fe/idl.ypp" /* yacc.c:1651 */ + case 390: +#line 4514 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ExceptBodySeen); } -#line 7155 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7302 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 383: -#line 4476 "fe/idl.ypp" /* yacc.c:1651 */ + case 391: +#line 4518 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ExceptQsSeen); /* @@ -7163,19 +7310,19 @@ yyparse (void) */ idl_global->scopes ().pop (); } -#line 7167 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7314 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 384: -#line 4488 "fe/idl.ypp" /* yacc.c:1651 */ + case 392: +#line 4530 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpTypeSeen); } -#line 7175 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7322 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 385: -#line 4492 "fe/idl.ypp" /* yacc.c:1651 */ + case 393: +#line 4534 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); Identifier id ((yyvsp[0].strval)); @@ -7241,27 +7388,27 @@ yyparse (void) delete (yyvsp[-1].annotations_val); } -#line 7245 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7392 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 386: -#line 4558 "fe/idl.ypp" /* yacc.c:1651 */ + case 394: +#line 4600 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpParsCompleted); } -#line 7253 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7400 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 387: -#line 4562 "fe/idl.ypp" /* yacc.c:1651 */ + case 395: +#line 4604 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseCompleted); } -#line 7261 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7408 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 388: -#line 4566 "fe/idl.ypp" /* yacc.c:1651 */ + case 396: +#line 4608 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Operation *o = 0; @@ -7290,57 +7437,57 @@ yyparse (void) */ idl_global->scopes ().pop (); } -#line 7294 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7441 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 389: -#line 4598 "fe/idl.ypp" /* yacc.c:1651 */ + case 397: +#line 4640 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpAttrSeen); (yyval.ofval) = AST_Operation::OP_oneway; } -#line 7303 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7450 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 390: -#line 4603 "fe/idl.ypp" /* yacc.c:1651 */ + case 398: +#line 4645 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpAttrSeen); (yyval.ofval) = AST_Operation::OP_idempotent; } -#line 7312 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7459 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 391: -#line 4608 "fe/idl.ypp" /* yacc.c:1651 */ + case 399: +#line 4650 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.ofval) = AST_Operation::OP_noflags; } -#line 7320 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7467 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 393: -#line 4616 "fe/idl.ypp" /* yacc.c:1651 */ + case 401: +#line 4658 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dcval) = idl_global->scopes ().bottom ()->lookup_primitive_type ( AST_Expression::EV_void ); } -#line 7331 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7478 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 394: -#line 4626 "fe/idl.ypp" /* yacc.c:1651 */ + case 402: +#line 4668 "fe/idl.ypp" /* yacc.c:1651 */ { //@@ PS_FactorySeen? idl_global->set_parse_state (IDL_GlobalData::PS_OpTypeSeen); } -#line 7340 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7487 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 395: -#line 4631 "fe/idl.ypp" /* yacc.c:1651 */ + case 403: +#line 4673 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); @@ -7383,19 +7530,19 @@ yyparse (void) delete (yyvsp[-1].annotations_val); } -#line 7387 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7534 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 396: -#line 4674 "fe/idl.ypp" /* yacc.c:1651 */ + case 404: +#line 4716 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpParsCompleted); } -#line 7395 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7542 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 397: -#line 4678 "fe/idl.ypp" /* yacc.c:1651 */ + case 405: +#line 4720 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseCompleted); @@ -7408,67 +7555,67 @@ yyparse (void) idl_global->scopes ().pop (); } -#line 7412 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7559 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 398: -#line 4694 "fe/idl.ypp" /* yacc.c:1651 */ + case 406: +#line 4736 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen); } -#line 7420 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7567 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 399: -#line 4698 "fe/idl.ypp" /* yacc.c:1651 */ + case 407: +#line 4740 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen); } -#line 7428 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7575 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 400: -#line 4702 "fe/idl.ypp" /* yacc.c:1651 */ + case 408: +#line 4744 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen); } -#line 7436 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7583 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 401: -#line 4707 "fe/idl.ypp" /* yacc.c:1651 */ + case 409: +#line 4749 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen); } -#line 7444 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7591 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 403: -#line 4717 "fe/idl.ypp" /* yacc.c:1651 */ + case 411: +#line 4759 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpParCommaSeen); } -#line 7452 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7599 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 406: -#line 4726 "fe/idl.ypp" /* yacc.c:1651 */ + case 414: +#line 4768 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpParDirSeen); } -#line 7460 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7607 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 407: -#line 4730 "fe/idl.ypp" /* yacc.c:1651 */ + case 415: +#line 4772 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpParTypeSeen); } -#line 7468 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7615 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 408: -#line 4734 "fe/idl.ypp" /* yacc.c:1651 */ + case 416: +#line 4776 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Argument *a = 0; @@ -7500,67 +7647,67 @@ yyparse (void) delete (yyvsp[0].deval); (yyvsp[0].deval) = 0; } -#line 7504 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7651 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 409: -#line 4769 "fe/idl.ypp" /* yacc.c:1651 */ + case 417: +#line 4811 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen); } -#line 7512 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7659 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 410: -#line 4773 "fe/idl.ypp" /* yacc.c:1651 */ + case 418: +#line 4815 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen); } -#line 7520 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7667 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 411: -#line 4777 "fe/idl.ypp" /* yacc.c:1651 */ + case 419: +#line 4819 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpSqSeen); } -#line 7528 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7675 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 412: -#line 4782 "fe/idl.ypp" /* yacc.c:1651 */ + case 420: +#line 4824 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpQsSeen); } -#line 7536 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7683 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 414: -#line 4792 "fe/idl.ypp" /* yacc.c:1651 */ + case 422: +#line 4834 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpParCommaSeen); } -#line 7544 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7691 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 417: -#line 4801 "fe/idl.ypp" /* yacc.c:1651 */ + case 425: +#line 4843 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpParDirSeen); } -#line 7552 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7699 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 418: -#line 4805 "fe/idl.ypp" /* yacc.c:1651 */ + case 426: +#line 4847 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpParTypeSeen); } -#line 7560 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7707 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 419: -#line 4809 "fe/idl.ypp" /* yacc.c:1651 */ + case 427: +#line 4851 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Argument *a = 0; @@ -7599,22 +7746,22 @@ yyparse (void) delete (yyvsp[0].deval); (yyvsp[0].deval) = 0; } -#line 7603 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7750 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 420: -#line 4851 "fe/idl.ypp" /* yacc.c:1651 */ + case 428: +#line 4893 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dcval) = idl_global->scopes ().bottom ()->lookup_primitive_type ( (yyvsp[0].etval) ); } -#line 7614 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7761 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 423: -#line 4860 "fe/idl.ypp" /* yacc.c:1651 */ + case 431: +#line 4902 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Decl *d = 0; @@ -7718,186 +7865,186 @@ yyparse (void) (yyval.dcval) = d; } -#line 7722 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7869 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 424: -#line 4967 "fe/idl.ypp" /* yacc.c:1651 */ + case 432: +#line 5009 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dival) = AST_Argument::dir_IN; } -#line 7730 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7877 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 425: -#line 4971 "fe/idl.ypp" /* yacc.c:1651 */ + case 433: +#line 5013 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dival) = AST_Argument::dir_OUT; } -#line 7738 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7885 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 426: -#line 4975 "fe/idl.ypp" /* yacc.c:1651 */ + case 434: +#line 5017 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.dival) = AST_Argument::dir_INOUT; } -#line 7746 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7893 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 427: -#line 4982 "fe/idl.ypp" /* yacc.c:1651 */ + case 435: +#line 5024 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseSeen); } -#line 7754 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7901 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 428: -#line 4986 "fe/idl.ypp" /* yacc.c:1651 */ + case 436: +#line 5028 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseSqSeen); } -#line 7762 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7909 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 429: -#line 4991 "fe/idl.ypp" /* yacc.c:1651 */ + case 437: +#line 5033 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseQsSeen); (yyval.nlval) = (yyvsp[-1].nlval); } -#line 7771 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7918 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 430: -#line 4996 "fe/idl.ypp" /* yacc.c:1651 */ + case 438: +#line 5038 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.nlval) = 0; } -#line 7779 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7926 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 431: -#line 5003 "fe/idl.ypp" /* yacc.c:1651 */ + case 439: +#line 5045 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpGetRaiseSeen); } -#line 7787 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7934 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 432: -#line 5007 "fe/idl.ypp" /* yacc.c:1651 */ + case 440: +#line 5049 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpGetRaiseSqSeen); } -#line 7795 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7942 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 433: -#line 5012 "fe/idl.ypp" /* yacc.c:1651 */ + case 441: +#line 5054 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpGetRaiseQsSeen); (yyval.nlval) = (yyvsp[-1].nlval); } -#line 7804 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7951 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 434: -#line 5017 "fe/idl.ypp" /* yacc.c:1651 */ + case 442: +#line 5059 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.nlval) = 0; } -#line 7812 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7959 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 435: -#line 5024 "fe/idl.ypp" /* yacc.c:1651 */ + case 443: +#line 5066 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpSetRaiseSeen); } -#line 7820 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7967 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 436: -#line 5028 "fe/idl.ypp" /* yacc.c:1651 */ + case 444: +#line 5070 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpSetRaiseSqSeen); } -#line 7828 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7975 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 437: -#line 5033 "fe/idl.ypp" /* yacc.c:1651 */ + case 445: +#line 5075 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpSetRaiseQsSeen); (yyval.nlval) = (yyvsp[-1].nlval); } -#line 7837 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7984 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 438: -#line 5038 "fe/idl.ypp" /* yacc.c:1651 */ + case 446: +#line 5080 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.nlval) = 0; } -#line 7845 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 7992 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 439: -#line 5045 "fe/idl.ypp" /* yacc.c:1651 */ + case 447: +#line 5087 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpContextSeen); } -#line 7853 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8000 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 440: -#line 5049 "fe/idl.ypp" /* yacc.c:1651 */ + case 448: +#line 5091 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpContextSqSeen); } -#line 7861 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8008 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 441: -#line 5054 "fe/idl.ypp" /* yacc.c:1651 */ + case 449: +#line 5096 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpContextQsSeen); (yyval.slval) = (yyvsp[-1].slval); } -#line 7870 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8017 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 442: -#line 5059 "fe/idl.ypp" /* yacc.c:1651 */ + case 450: +#line 5101 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.slval) = 0; } -#line 7878 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8025 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 443: -#line 5066 "fe/idl.ypp" /* yacc.c:1651 */ + case 451: +#line 5108 "fe/idl.ypp" /* yacc.c:1651 */ { ACE_NEW_RETURN ((yyval.slval), UTL_StrList ((yyvsp[-1].sval), (yyvsp[0].slval)), 1); } -#line 7889 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8036 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 444: -#line 5077 "fe/idl.ypp" /* yacc.c:1651 */ + case 452: +#line 5119 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpContextCommaSeen); } -#line 7897 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8044 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 445: -#line 5081 "fe/idl.ypp" /* yacc.c:1651 */ + case 453: +#line 5123 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_StrList *sl = 0; ACE_NEW_RETURN (sl, @@ -7915,19 +8062,19 @@ yyparse (void) (yyval.slval) = (yyvsp[-3].slval); } } -#line 7919 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8066 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 446: -#line 5099 "fe/idl.ypp" /* yacc.c:1651 */ + case 454: +#line 5141 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.slval) = 0; } -#line 7927 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8074 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 447: -#line 5106 "fe/idl.ypp" /* yacc.c:1651 */ + case 455: +#line 5148 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Decl *d = @@ -7952,11 +8099,11 @@ yyparse (void) delete (yyvsp[0].sval); (yyvsp[0].sval) = 0; } -#line 7956 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8103 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 448: -#line 5134 "fe/idl.ypp" /* yacc.c:1651 */ + case 456: +#line 5176 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Decl *d = ScopeAsDecl (s); @@ -7990,11 +8137,11 @@ yyparse (void) delete (yyvsp[0].sval); (yyvsp[0].sval) = 0; } -#line 7994 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8141 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 451: -#line 5177 "fe/idl.ypp" /* yacc.c:1651 */ + case 459: +#line 5219 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -8018,11 +8165,11 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 8022 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8169 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 452: -#line 5204 "fe/idl.ypp" /* yacc.c:1651 */ + case 460: +#line 5246 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Component *c = 0; @@ -8061,27 +8208,27 @@ yyparse (void) */ idl_global->scopes ().push (c); } -#line 8065 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8212 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 453: -#line 5243 "fe/idl.ypp" /* yacc.c:1651 */ + case 461: +#line 5285 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ComponentSqSeen); } -#line 8073 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8220 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 454: -#line 5247 "fe/idl.ypp" /* yacc.c:1651 */ + case 462: +#line 5289 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ComponentBodySeen); } -#line 8081 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8228 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 455: -#line 5251 "fe/idl.ypp" /* yacc.c:1651 */ + case 463: +#line 5293 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ComponentQsSeen); @@ -8090,27 +8237,27 @@ yyparse (void) */ idl_global->scopes ().pop (); } -#line 8094 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8241 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 456: -#line 5264 "fe/idl.ypp" /* yacc.c:1651 */ + case 464: +#line 5306 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ComponentIDSeen); } -#line 8102 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8249 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 457: -#line 5268 "fe/idl.ypp" /* yacc.c:1651 */ + case 465: +#line 5310 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen); } -#line 8110 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8257 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 458: -#line 5272 "fe/idl.ypp" /* yacc.c:1651 */ + case 466: +#line 5314 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SupportSpecSeen); @@ -8144,147 +8291,147 @@ yyparse (void) (yyvsp[-2].idlist) = 0; } } -#line 8148 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8295 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 459: -#line 5309 "fe/idl.ypp" /* yacc.c:1651 */ + case 467: +#line 5351 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InheritColonSeen); } -#line 8156 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8303 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 460: -#line 5313 "fe/idl.ypp" /* yacc.c:1651 */ + case 468: +#line 5355 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.idlist) = (yyvsp[0].idlist); } -#line 8164 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8311 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 461: -#line 5317 "fe/idl.ypp" /* yacc.c:1651 */ + case 469: +#line 5359 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.idlist) = 0; } -#line 8172 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8319 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 464: -#line 5329 "fe/idl.ypp" /* yacc.c:1651 */ + case 472: +#line 5371 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ProvidesDeclSeen); } -#line 8180 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8327 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 465: -#line 5333 "fe/idl.ypp" /* yacc.c:1651 */ + case 473: +#line 5375 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 8188 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8335 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 466: -#line 5337 "fe/idl.ypp" /* yacc.c:1651 */ + case 474: +#line 5379 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_UsesDeclSeen); } -#line 8196 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8343 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 467: -#line 5341 "fe/idl.ypp" /* yacc.c:1651 */ + case 475: +#line 5383 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 8204 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8351 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 468: -#line 5345 "fe/idl.ypp" /* yacc.c:1651 */ + case 476: +#line 5387 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EmitsDeclSeen); } -#line 8212 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8359 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 469: -#line 5349 "fe/idl.ypp" /* yacc.c:1651 */ + case 477: +#line 5391 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 8220 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8367 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 470: -#line 5353 "fe/idl.ypp" /* yacc.c:1651 */ + case 478: +#line 5395 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_PublishesDeclSeen); } -#line 8228 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8375 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 471: -#line 5357 "fe/idl.ypp" /* yacc.c:1651 */ + case 479: +#line 5399 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 8236 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8383 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 472: -#line 5361 "fe/idl.ypp" /* yacc.c:1651 */ + case 480: +#line 5403 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ConsumesDeclSeen); } -#line 8244 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8391 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 473: -#line 5365 "fe/idl.ypp" /* yacc.c:1651 */ + case 481: +#line 5407 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 8252 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8399 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 474: -#line 5369 "fe/idl.ypp" /* yacc.c:1651 */ + case 482: +#line 5411 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclSeen); } -#line 8260 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8407 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 475: -#line 5373 "fe/idl.ypp" /* yacc.c:1651 */ + case 483: +#line 5415 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 8268 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8415 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 476: -#line 5377 "fe/idl.ypp" /* yacc.c:1651 */ + case 484: +#line 5419 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ExtendedPortDeclSeen); } -#line 8276 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8423 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 477: -#line 5381 "fe/idl.ypp" /* yacc.c:1651 */ + case 485: +#line 5423 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 8284 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8431 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 478: -#line 5387 "fe/idl.ypp" /* yacc.c:1651 */ + case 486: +#line 5429 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); bool so_far_so_good = true; @@ -8371,21 +8518,21 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 8375 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8522 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 479: -#line 5477 "fe/idl.ypp" /* yacc.c:1651 */ + case 487: +#line 5519 "fe/idl.ypp" /* yacc.c:1651 */ { // Lookups and checking are done where the 'interface_type' // token is used, in 'provides_decl' and 'uses_decl'. (yyval.idlist) = (yyvsp[0].idlist); } -#line 8385 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8532 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 480: -#line 5483 "fe/idl.ypp" /* yacc.c:1651 */ + case 488: +#line 5525 "fe/idl.ypp" /* yacc.c:1651 */ { Identifier *corba_id = 0; @@ -8408,11 +8555,11 @@ yyparse (void) conc_name), 1); } -#line 8412 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8559 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 481: -#line 5508 "fe/idl.ypp" /* yacc.c:1651 */ + case 489: +#line 5550 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); bool so_far_so_good = true; @@ -8515,37 +8662,37 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 8519 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8666 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 482: -#line 5614 "fe/idl.ypp" /* yacc.c:1651 */ + case 490: +#line 5656 "fe/idl.ypp" /* yacc.c:1651 */ { // 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 8529 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8676 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 483: -#line 5623 "fe/idl.ypp" /* yacc.c:1651 */ + case 491: +#line 5665 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.bval) = true; } -#line 8537 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8684 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 484: -#line 5627 "fe/idl.ypp" /* yacc.c:1651 */ + case 492: +#line 5669 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.bval) = false; } -#line 8545 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8692 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 485: -#line 5633 "fe/idl.ypp" /* yacc.c:1651 */ + case 493: +#line 5675 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); bool so_far_so_good = true; @@ -8615,11 +8762,11 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 8619 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8766 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 486: -#line 5705 "fe/idl.ypp" /* yacc.c:1651 */ + case 494: +#line 5747 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); bool so_far_so_good = true; @@ -8689,11 +8836,11 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 8693 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8840 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 487: -#line 5777 "fe/idl.ypp" /* yacc.c:1651 */ + case 495: +#line 5819 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); bool so_far_so_good = true; @@ -8763,11 +8910,11 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 8767 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8914 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 488: -#line 5850 "fe/idl.ypp" /* yacc.c:1651 */ + case 496: +#line 5892 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Home *h = 0; @@ -8804,70 +8951,70 @@ yyparse (void) */ idl_global->scopes ().push (h); } -#line 8808 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8955 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 489: -#line 5887 "fe/idl.ypp" /* yacc.c:1651 */ + case 497: +#line 5929 "fe/idl.ypp" /* yacc.c:1651 */ { /* * Done with this component - pop it off the scopes stack. */ idl_global->scopes ().pop (); } -#line 8819 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8966 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 490: -#line 5897 "fe/idl.ypp" /* yacc.c:1651 */ + case 498: +#line 5939 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_HomeSeen); } -#line 8827 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8974 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 491: -#line 5901 "fe/idl.ypp" /* yacc.c:1651 */ + case 499: +#line 5943 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_HomeIDSeen); } -#line 8835 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8982 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 492: -#line 5905 "fe/idl.ypp" /* yacc.c:1651 */ + case 500: +#line 5947 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen); } -#line 8843 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8990 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 493: -#line 5909 "fe/idl.ypp" /* yacc.c:1651 */ + case 501: +#line 5951 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SupportSpecSeen); } -#line 8851 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 8998 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 494: -#line 5913 "fe/idl.ypp" /* yacc.c:1651 */ + case 502: +#line 5955 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ManagesSeen); } -#line 8859 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9006 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 495: -#line 5917 "fe/idl.ypp" /* yacc.c:1651 */ + case 503: +#line 5959 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ManagesIDSeen); } -#line 8867 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9014 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 496: -#line 5921 "fe/idl.ypp" /* yacc.c:1651 */ + case 504: +#line 5963 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_PrimaryKeySpecSeen); @@ -8913,107 +9060,107 @@ yyparse (void) (yyvsp[-6].nlval) = 0; } } -#line 8917 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9064 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 497: -#line 5970 "fe/idl.ypp" /* yacc.c:1651 */ + case 505: +#line 6012 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InheritColonSeen); } -#line 8925 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9072 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 498: -#line 5974 "fe/idl.ypp" /* yacc.c:1651 */ + case 506: +#line 6016 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.idlist) = (yyvsp[0].idlist); } -#line 8933 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9080 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 499: -#line 5978 "fe/idl.ypp" /* yacc.c:1651 */ + case 507: +#line 6020 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.idlist) = 0; } -#line 8941 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9088 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 500: -#line 5986 "fe/idl.ypp" /* yacc.c:1651 */ + case 508: +#line 6028 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.idlist) = (yyvsp[0].idlist); } -#line 8949 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9096 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 501: -#line 5990 "fe/idl.ypp" /* yacc.c:1651 */ + case 509: +#line 6032 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.idlist) = 0; } -#line 8957 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9104 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 502: -#line 5997 "fe/idl.ypp" /* yacc.c:1651 */ + case 510: +#line 6039 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_HomeSqSeen); } -#line 8965 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9112 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 503: -#line 6001 "fe/idl.ypp" /* yacc.c:1651 */ + case 511: +#line 6043 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_HomeBodySeen); } -#line 8973 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9120 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 504: -#line 6005 "fe/idl.ypp" /* yacc.c:1651 */ + case 512: +#line 6047 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_HomeQsSeen); } -#line 8981 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9128 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 508: -#line 6018 "fe/idl.ypp" /* yacc.c:1651 */ + case 516: +#line 6060 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_FactoryDeclSeen); } -#line 8989 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9136 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 509: -#line 6022 "fe/idl.ypp" /* yacc.c:1651 */ + case 517: +#line 6064 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 8997 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9144 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 510: -#line 6026 "fe/idl.ypp" /* yacc.c:1651 */ + case 518: +#line 6068 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_FinderDeclSeen); } -#line 9005 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9152 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 511: -#line 6030 "fe/idl.ypp" /* yacc.c:1651 */ + case 519: +#line 6072 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 9013 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9160 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 512: -#line 6038 "fe/idl.ypp" /* yacc.c:1651 */ + case 520: +#line 6080 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -9036,19 +9183,19 @@ yyparse (void) */ idl_global->scopes ().push (f); } -#line 9040 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9187 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 513: -#line 6061 "fe/idl.ypp" /* yacc.c:1651 */ + case 521: +#line 6103 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpParsCompleted); } -#line 9048 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9195 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 514: -#line 6065 "fe/idl.ypp" /* yacc.c:1651 */ + case 522: +#line 6107 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseCompleted); @@ -9066,11 +9213,11 @@ yyparse (void) */ idl_global->scopes ().pop (); } -#line 9070 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9217 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 515: -#line 6087 "fe/idl.ypp" /* yacc.c:1651 */ + case 523: +#line 6129 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -9097,19 +9244,19 @@ yyparse (void) */ idl_global->scopes ().push (f); } -#line 9101 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9248 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 516: -#line 6114 "fe/idl.ypp" /* yacc.c:1651 */ + case 524: +#line 6156 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_OpParsCompleted); } -#line 9109 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9256 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 517: -#line 6118 "fe/idl.ypp" /* yacc.c:1651 */ + case 525: +#line 6160 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); idl_global->set_parse_state (IDL_GlobalData::PS_OpRaiseCompleted); @@ -9127,11 +9274,11 @@ yyparse (void) */ idl_global->scopes ().pop (); } -#line 9131 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9278 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 523: -#line 6151 "fe/idl.ypp" /* yacc.c:1651 */ + case 531: +#line 6193 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -9154,11 +9301,11 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 9158 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9305 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 524: -#line 6179 "fe/idl.ypp" /* yacc.c:1651 */ + case 532: +#line 6221 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); UTL_ScopedName n ((yyvsp[0].idval), @@ -9181,11 +9328,11 @@ yyparse (void) delete (yyvsp[0].idval); (yyvsp[0].idval) = 0; } -#line 9185 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9332 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 525: -#line 6206 "fe/idl.ypp" /* yacc.c:1651 */ + case 533: +#line 6248 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_EventType *e = 0; @@ -9229,27 +9376,27 @@ yyparse (void) delete (yyvsp[-1].idval); (yyvsp[-1].idval) = 0; } -#line 9233 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9380 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 526: -#line 6250 "fe/idl.ypp" /* yacc.c:1651 */ + case 534: +#line 6292 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeSqSeen); } -#line 9241 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9388 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 527: -#line 6254 "fe/idl.ypp" /* yacc.c:1651 */ + case 535: +#line 6296 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeBodySeen); } -#line 9249 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9396 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 528: -#line 6258 "fe/idl.ypp" /* yacc.c:1651 */ + case 536: +#line 6300 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeQsSeen); @@ -9258,19 +9405,19 @@ yyparse (void) */ idl_global->scopes ().pop (); } -#line 9262 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9409 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 529: -#line 6272 "fe/idl.ypp" /* yacc.c:1651 */ + case 537: +#line 6314 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.idval) = (yyvsp[0].idval); } -#line 9270 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9417 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 530: -#line 6281 "fe/idl.ypp" /* yacc.c:1651 */ + case 538: +#line 6323 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeIDSeen); @@ -9283,29 +9430,29 @@ yyparse (void) ACE_TEXT (" custom yet\n"))); (yyval.idval) = 0; } -#line 9287 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9434 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 531: -#line 6298 "fe/idl.ypp" /* yacc.c:1651 */ + case 539: +#line 6340 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeIDSeen); (yyval.idval) = (yyvsp[0].idval); } -#line 9297 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9444 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 532: -#line 6307 "fe/idl.ypp" /* yacc.c:1651 */ + case 540: +#line 6349 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_InheritSpecSeen); } -#line 9305 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9452 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 533: -#line 6311 "fe/idl.ypp" /* yacc.c:1651 */ + case 541: +#line 6353 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_SupportSpecSeen); @@ -9334,11 +9481,11 @@ yyparse (void) (yyvsp[-2].nlval) = 0; } } -#line 9338 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9485 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 534: -#line 6344 "fe/idl.ypp" /* yacc.c:1651 */ + case 542: +#line 6386 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_EventType *e = 0; @@ -9387,27 +9534,27 @@ yyparse (void) */ idl_global->scopes ().push (e); } -#line 9391 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9538 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 535: -#line 6393 "fe/idl.ypp" /* yacc.c:1651 */ + case 543: +#line 6435 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeSqSeen); } -#line 9399 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9546 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 536: -#line 6397 "fe/idl.ypp" /* yacc.c:1651 */ + case 544: +#line 6439 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeBodySeen); } -#line 9407 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9554 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 537: -#line 6401 "fe/idl.ypp" /* yacc.c:1651 */ + case 545: +#line 6443 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_EventTypeQsSeen); @@ -9416,108 +9563,108 @@ yyparse (void) */ idl_global->scopes ().pop (); } -#line 9420 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9567 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 538: -#line 6413 "fe/idl.ypp" /* yacc.c:1651 */ + case 546: +#line 6455 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.idval) = (yyvsp[0].idval); } -#line 9428 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9575 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 539: -#line 6417 "fe/idl.ypp" /* yacc.c:1651 */ + case 547: +#line 6459 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.idval) = (yyvsp[0].idval); } -#line 9436 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9583 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 540: -#line 6424 "fe/idl.ypp" /* yacc.c:1651 */ + case 548: +#line 6466 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.ntval) = AST_Decl::NT_type; } -#line 9444 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9591 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 541: -#line 6428 "fe/idl.ypp" /* yacc.c:1651 */ + case 549: +#line 6470 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.ntval) = AST_Decl::NT_struct; } -#line 9452 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9599 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 542: -#line 6432 "fe/idl.ypp" /* yacc.c:1651 */ + case 550: +#line 6474 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.ntval) = AST_Decl::NT_union; } -#line 9460 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9607 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 543: -#line 6436 "fe/idl.ypp" /* yacc.c:1651 */ + case 551: +#line 6478 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.ntval) = AST_Decl::NT_eventtype; } -#line 9468 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9615 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 544: -#line 6440 "fe/idl.ypp" /* yacc.c:1651 */ + case 552: +#line 6482 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.ntval) = AST_Decl::NT_sequence; } -#line 9476 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9623 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 545: -#line 6444 "fe/idl.ypp" /* yacc.c:1651 */ + case 553: +#line 6486 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.ntval) = AST_Decl::NT_interface; } -#line 9484 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9631 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 546: -#line 6448 "fe/idl.ypp" /* yacc.c:1651 */ + case 554: +#line 6490 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.ntval) = AST_Decl::NT_valuetype; } -#line 9492 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9639 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 547: -#line 6452 "fe/idl.ypp" /* yacc.c:1651 */ + case 555: +#line 6494 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.ntval) = AST_Decl::NT_enum; } -#line 9500 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9647 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 548: -#line 6456 "fe/idl.ypp" /* yacc.c:1651 */ + case 556: +#line 6498 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.ntval) = AST_Decl::NT_except; } -#line 9508 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9655 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 549: -#line 6460 "fe/idl.ypp" /* yacc.c:1651 */ + case 557: +#line 6502 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.ntval) = AST_Decl::NT_const; t_param_const_type = (yyvsp[0].etval); } -#line 9517 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9664 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 550: -#line 6468 "fe/idl.ypp" /* yacc.c:1651 */ + case 558: +#line 6510 "fe/idl.ypp" /* yacc.c:1651 */ { if ((yyvsp[0].plval) == 0) { @@ -9545,11 +9692,11 @@ yyparse (void) (yyval.plval) = (yyvsp[0].plval); } -#line 9549 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9696 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 551: -#line 6499 "fe/idl.ypp" /* yacc.c:1651 */ + case 559: +#line 6541 "fe/idl.ypp" /* yacc.c:1651 */ { if ((yyvsp[-2].plval) == 0) { @@ -9562,19 +9709,19 @@ yyparse (void) delete (yyvsp[0].pival); (yyvsp[0].pival) = 0; } -#line 9566 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9713 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 552: -#line 6512 "fe/idl.ypp" /* yacc.c:1651 */ + case 560: +#line 6554 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.plval) = 0; } -#line 9574 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9721 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 553: -#line 6519 "fe/idl.ypp" /* yacc.c:1651 */ + case 561: +#line 6561 "fe/idl.ypp" /* yacc.c:1651 */ { ACE_NEW_RETURN ((yyval.pival), @@ -9599,11 +9746,11 @@ yyparse (void) tao_enum_constant_decl = 0; } } -#line 9603 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9750 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 554: -#line 6544 "fe/idl.ypp" /* yacc.c:1651 */ + case 562: +#line 6586 "fe/idl.ypp" /* yacc.c:1651 */ { ACE_NEW_RETURN ((yyval.pival), FE_Utils::T_Param_Info, @@ -9618,19 +9765,19 @@ yyparse (void) ACE::strdelete ((yyvsp[0].strval)); (yyvsp[0].strval) = 0; } -#line 9622 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9769 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 555: -#line 6562 "fe/idl.ypp" /* yacc.c:1651 */ + case 563: +#line 6604 "fe/idl.ypp" /* yacc.c:1651 */ { ACE_NEW_RETURN ((yyval.slval), UTL_StrList ((yyvsp[-1].sval), (yyvsp[0].slval)), 1); } -#line 9630 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9777 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 556: -#line 6569 "fe/idl.ypp" /* yacc.c:1651 */ + case 564: +#line 6611 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_StrList *sl = 0; ACE_NEW_RETURN (sl, UTL_StrList ((yyvsp[0].sval), 0), 1); @@ -9645,37 +9792,37 @@ yyparse (void) (yyval.slval) = (yyvsp[-2].slval); } } -#line 9649 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9796 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 557: -#line 6584 "fe/idl.ypp" /* yacc.c:1651 */ + case 565: +#line 6626 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.slval) = 0; } -#line 9657 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9804 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 558: -#line 6591 "fe/idl.ypp" /* yacc.c:1651 */ + case 566: +#line 6633 "fe/idl.ypp" /* yacc.c:1651 */ { ACE_NEW_RETURN ((yyval.sval), UTL_String ((yyvsp[0].strval), true), 1); } -#line 9667 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9814 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 559: -#line 6600 "fe/idl.ypp" /* yacc.c:1651 */ + case 567: +#line 6642 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeSeen); } -#line 9675 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9822 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 560: -#line 6604 "fe/idl.ypp" /* yacc.c:1651 */ + case 568: +#line 6646 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeIDSeen); UTL_Scope *s = idl_global->scopes ().top_non_null (); @@ -9695,102 +9842,102 @@ yyparse (void) delete (yyvsp[-1].annotations_val); } -#line 9699 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9846 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 561: -#line 6624 "fe/idl.ypp" /* yacc.c:1651 */ + case 569: +#line 6666 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeSqSeen); } -#line 9707 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9854 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 562: -#line 6628 "fe/idl.ypp" /* yacc.c:1651 */ + case 570: +#line 6670 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeBodySeen); } -#line 9715 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9862 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 563: -#line 6632 "fe/idl.ypp" /* yacc.c:1651 */ + case 571: +#line 6674 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_PorttypeQsSeen); // Done with this port type - pop it off the scopes stack. idl_global->scopes ().pop (); } -#line 9726 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9873 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 564: -#line 6642 "fe/idl.ypp" /* yacc.c:1651 */ + case 572: +#line 6684 "fe/idl.ypp" /* yacc.c:1651 */ { } -#line 9733 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9880 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 565: -#line 6648 "fe/idl.ypp" /* yacc.c:1651 */ + case 573: +#line 6690 "fe/idl.ypp" /* yacc.c:1651 */ { } -#line 9740 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9887 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 566: -#line 6651 "fe/idl.ypp" /* yacc.c:1651 */ + case 574: +#line 6693 "fe/idl.ypp" /* yacc.c:1651 */ { } -#line 9747 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9894 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 567: -#line 6657 "fe/idl.ypp" /* yacc.c:1651 */ + case 575: +#line 6699 "fe/idl.ypp" /* yacc.c:1651 */ { } -#line 9754 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9901 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 568: -#line 6660 "fe/idl.ypp" /* yacc.c:1651 */ + case 576: +#line 6702 "fe/idl.ypp" /* yacc.c:1651 */ { } -#line 9761 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9908 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 569: -#line 6663 "fe/idl.ypp" /* yacc.c:1651 */ + case 577: +#line 6705 "fe/idl.ypp" /* yacc.c:1651 */ { } -#line 9768 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9915 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 570: -#line 6666 "fe/idl.ypp" /* yacc.c:1651 */ + case 578: +#line 6708 "fe/idl.ypp" /* yacc.c:1651 */ { } -#line 9775 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9922 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 571: -#line 6669 "fe/idl.ypp" /* yacc.c:1651 */ + case 579: +#line 6711 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclSeen); } -#line 9783 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9930 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 572: -#line 6673 "fe/idl.ypp" /* yacc.c:1651 */ + case 580: +#line 6715 "fe/idl.ypp" /* yacc.c:1651 */ { } -#line 9790 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 9937 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 573: -#line 6679 "fe/idl.ypp" /* yacc.c:1651 */ + case 581: +#line 6721 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ExtendedPortDeclSeen); UTL_Scope *s = idl_global->scopes ().top_non_null (); @@ -9859,11 +10006,11 @@ yyparse (void) delete (yyvsp[-1].idlist); (yyvsp[-1].idlist) = 0; } -#line 9863 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10010 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 574: -#line 6748 "fe/idl.ypp" /* yacc.c:1651 */ + case 582: +#line 6790 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_MirrorPortDeclSeen); UTL_Scope *s = idl_global->scopes ().top_non_null (); @@ -9910,11 +10057,11 @@ yyparse (void) delete (yyvsp[-1].idlist); (yyvsp[-1].idlist) = 0; } -#line 9914 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10061 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 575: -#line 6798 "fe/idl.ypp" /* yacc.c:1651 */ + case 583: +#line 6840 "fe/idl.ypp" /* yacc.c:1651 */ { if ((yyvsp[0].alval) == 0) { @@ -9927,11 +10074,11 @@ yyparse (void) (yyvsp[0].alval)->enqueue_head ((yyvsp[-1].dcval)); (yyval.alval) = (yyvsp[0].alval); } -#line 9931 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10078 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 576: -#line 6814 "fe/idl.ypp" /* yacc.c:1651 */ + case 584: +#line 6856 "fe/idl.ypp" /* yacc.c:1651 */ { if ((yyvsp[-3].alval) == 0) { @@ -9944,19 +10091,19 @@ yyparse (void) (yyvsp[-3].alval)->enqueue_tail ((yyvsp[0].dcval)); (yyval.alval) = (yyvsp[-3].alval); } -#line 9948 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10095 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 577: -#line 6827 "fe/idl.ypp" /* yacc.c:1651 */ + case 585: +#line 6869 "fe/idl.ypp" /* yacc.c:1651 */ { (yyval.alval) = 0; } -#line 9956 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10103 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 578: -#line 6834 "fe/idl.ypp" /* yacc.c:1651 */ + case 586: +#line 6876 "fe/idl.ypp" /* yacc.c:1651 */ { // To avoid grammar conflicts with this LALR(1) parser, // we take advantage of the fact that an expression can @@ -10012,27 +10159,27 @@ yyparse (void) 0); } } -#line 10016 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10163 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 580: -#line 6897 "fe/idl.ypp" /* yacc.c:1651 */ + case 588: +#line 6939 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorSeen); } -#line 10024 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10171 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 581: -#line 6901 "fe/idl.ypp" /* yacc.c:1651 */ + case 589: +#line 6943 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorIDSeen); } -#line 10032 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10179 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 582: -#line 6905 "fe/idl.ypp" /* yacc.c:1651 */ + case 590: +#line 6947 "fe/idl.ypp" /* yacc.c:1651 */ { UTL_Scope *s = idl_global->scopes ().top_non_null (); AST_Connector *parent = 0; @@ -10086,102 +10233,102 @@ yyparse (void) delete (yyvsp[-3].annotations_val); } -#line 10090 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10237 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 583: -#line 6962 "fe/idl.ypp" /* yacc.c:1651 */ + case 591: +#line 7004 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorSqSeen); } -#line 10098 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10245 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 584: -#line 6966 "fe/idl.ypp" /* yacc.c:1651 */ + case 592: +#line 7008 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorBodySeen); } -#line 10106 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10253 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 585: -#line 6970 "fe/idl.ypp" /* yacc.c:1651 */ + case 593: +#line 7012 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ConnectorQsSeen); // Done with this connector - pop it off the scope stack. idl_global->scopes ().pop (); } -#line 10117 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10264 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 588: -#line 6985 "fe/idl.ypp" /* yacc.c:1651 */ + case 596: +#line 7027 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ProvidesDeclSeen); } -#line 10125 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10272 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 589: -#line 6989 "fe/idl.ypp" /* yacc.c:1651 */ + case 597: +#line 7031 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 10133 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10280 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 590: -#line 6993 "fe/idl.ypp" /* yacc.c:1651 */ + case 598: +#line 7035 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_UsesDeclSeen); } -#line 10141 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10288 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 591: -#line 6997 "fe/idl.ypp" /* yacc.c:1651 */ + case 599: +#line 7039 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 10149 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10296 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 592: -#line 7001 "fe/idl.ypp" /* yacc.c:1651 */ + case 600: +#line 7043 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_AttrDeclSeen); } -#line 10157 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10304 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 593: -#line 7005 "fe/idl.ypp" /* yacc.c:1651 */ + case 601: +#line 7047 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 10165 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10312 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 594: -#line 7009 "fe/idl.ypp" /* yacc.c:1651 */ + case 602: +#line 7051 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_ExtendedPortDeclSeen); } -#line 10173 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10320 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; - case 595: -#line 7013 "fe/idl.ypp" /* yacc.c:1651 */ + case 603: +#line 7055 "fe/idl.ypp" /* yacc.c:1651 */ { idl_global->set_parse_state (IDL_GlobalData::PS_NoState); } -#line 10181 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10328 "fe/idl.tab.cpp" /* yacc.c:1651 */ break; -#line 10185 "fe/idl.tab.cpp" /* yacc.c:1651 */ +#line 10332 "fe/idl.tab.cpp" /* yacc.c:1651 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires @@ -10409,7 +10556,7 @@ yyparse (void) #endif return yyresult; } -#line 7018 "fe/idl.ypp" /* yacc.c:1910 */ +#line 7060 "fe/idl.ypp" /* yacc.c:1910 */ /* programs */ diff --git a/TAO/TAO_IDL/fe/idl.tab.hpp b/TAO/TAO_IDL/fe/idl.tab.hpp index 7e6713cd4ec36..c7c22f41aaeff 100644 --- a/TAO/TAO_IDL/fe/idl.tab.hpp +++ b/TAO/TAO_IDL/fe/idl.tab.hpp @@ -123,13 +123,21 @@ extern int tao_yydebug; IDL_FIXED_PT_LITERAL = 333, IDL_TRUETOK = 334, IDL_FALSETOK = 335, - IDL_SCOPE_DELIMITOR = 336, - IDL_LEFT_SHIFT = 337, - IDL_RIGHT_SHIFT = 338, - IDL_WCHAR_LITERAL = 339, - IDL_WSTRING_LITERAL = 340, - IDL_ANNOTATION_DECL = 341, - IDL_ANNOTATION_SYMBOL = 342 + IDL_INT8 = 336, + IDL_UINT8 = 337, + IDL_INT16 = 338, + IDL_UINT16 = 339, + IDL_INT32 = 340, + IDL_UINT32 = 341, + IDL_INT64 = 342, + IDL_UINT64 = 343, + IDL_SCOPE_DELIMITOR = 344, + IDL_LEFT_SHIFT = 345, + IDL_RIGHT_SHIFT = 346, + IDL_WCHAR_LITERAL = 347, + IDL_WSTRING_LITERAL = 348, + IDL_ANNOTATION_DECL = 349, + IDL_ANNOTATION_SYMBOL = 350 }; #endif @@ -183,7 +191,7 @@ union YYSTYPE AST_Decls *decls_val; Decl_Annotations_Pair *decl_annotations_pair_val; -#line 187 "fe/idl.tab.hpp" /* yacc.c:1913 */ +#line 195 "fe/idl.tab.hpp" /* yacc.c:1913 */ }; typedef union YYSTYPE YYSTYPE; diff --git a/TAO/TAO_IDL/fe/idl.yy.cpp b/TAO/TAO_IDL/fe/idl.yy.cpp index f86edc5aaaf27..f205e487fb547 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); @@ -2111,157 +2375,157 @@ YY_RULE_SETUP return IDL_WSTRING_LITERAL; } YY_BREAK -case 88: +case 96: YY_RULE_SETUP -#line 321 "fe/idl.ll" +#line 386 "fe/idl.ll" { tao_yylval.cval = ace_yytext[1]; return IDL_CHARACTER_LITERAL; } YY_BREAK -case 89: +case 97: YY_RULE_SETUP -#line 325 "fe/idl.ll" +#line 390 "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 330 "fe/idl.ll" +#line 395 "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 335 "fe/idl.ll" +#line 400 "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 339 "fe/idl.ll" +#line 404 "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 344 "fe/idl.ll" +#line 409 "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 350 "fe/idl.ll" -case 95: -/* rule 95 can match eol */ +case 102: +/* rule 102 can match eol */ +#line 415 "fe/idl.ll" +case 103: +/* rule 103 can match eol */ YY_RULE_SETUP -#line 350 "fe/idl.ll" +#line 415 "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 356 "fe/idl.ll" -case 97: -/* rule 97 can match eol */ +case 104: +/* rule 104 can match eol */ +#line 421 "fe/idl.ll" +case 105: +/* rule 105 can match eol */ YY_RULE_SETUP -#line 356 "fe/idl.ll" +#line 421 "fe/idl.ll" {/* ignore file */ idl_global->set_lineno(idl_global->lineno () + 1); break; } YY_BREAK -case 98: -/* rule 98 can match eol */ -#line 361 "fe/idl.ll" -case 99: -/* rule 99 can match eol */ +case 106: +/* rule 106 can match eol */ +#line 426 "fe/idl.ll" +case 107: +/* rule 107 can match eol */ YY_RULE_SETUP -#line 361 "fe/idl.ll" +#line 426 "fe/idl.ll" { idl_parse_line_and_file (ace_yytext); break; } YY_BREAK -case 100: -/* rule 100 can match eol */ -#line 366 "fe/idl.ll" -case 101: -/* rule 101 can match eol */ +case 108: +/* rule 108 can match eol */ +#line 431 "fe/idl.ll" +case 109: +/* rule 109 can match eol */ YY_RULE_SETUP -#line 366 "fe/idl.ll" +#line 431 "fe/idl.ll" { idl_parse_line_and_file (ace_yytext); break; } YY_BREAK -case 102: -/* rule 102 can match eol */ -#line 371 "fe/idl.ll" -case 103: -/* rule 103 can match eol */ +case 110: +/* rule 110 can match eol */ +#line 436 "fe/idl.ll" +case 111: +/* rule 111 can match eol */ YY_RULE_SETUP -#line 371 "fe/idl.ll" +#line 436 "fe/idl.ll" { idl_parse_line_and_file (ace_yytext); break; } YY_BREAK -case 104: -/* rule 104 can match eol */ -#line 376 "fe/idl.ll" -case 105: -/* rule 105 can match eol */ +case 112: +/* rule 112 can match eol */ +#line 441 "fe/idl.ll" +case 113: +/* rule 113 can match eol */ YY_RULE_SETUP -#line 376 "fe/idl.ll" +#line 441 "fe/idl.ll" { idl_parse_line_and_file (ace_yytext); break; } YY_BREAK -case 106: -/* rule 106 can match eol */ -#line 381 "fe/idl.ll" -case 107: -/* rule 107 can match eol */ +case 114: +/* rule 114 can match eol */ +#line 446 "fe/idl.ll" +case 115: +/* rule 115 can match eol */ YY_RULE_SETUP -#line 381 "fe/idl.ll" +#line 446 "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 386 "fe/idl.ll" +#line 451 "fe/idl.ll" { /* ignore comments */ idl_global->set_lineno(idl_global->lineno () + 1); break; } YY_BREAK -case 109: +case 117: YY_RULE_SETUP -#line 391 "fe/idl.ll" +#line 456 "fe/idl.ll" { for (;;) { @@ -2282,33 +2546,33 @@ YY_RULE_SETUP break; } YY_BREAK -case 110: +case 118: YY_RULE_SETUP -#line 410 "fe/idl.ll" +#line 475 "fe/idl.ll" break; YY_BREAK -case 111: -/* rule 111 can match eol */ +case 119: +/* rule 119 can match eol */ YY_RULE_SETUP -#line 411 "fe/idl.ll" +#line 476 "fe/idl.ll" { idl_global->set_lineno (idl_global->lineno () + 1); break; } YY_BREAK -case 112: +case 120: YY_RULE_SETUP -#line 415 "fe/idl.ll" +#line 480 "fe/idl.ll" return ace_yytext[0]; YY_BREAK -case 113: +case 121: YY_RULE_SETUP -#line 417 "fe/idl.ll" +#line 482 "fe/idl.ll" ECHO; YY_BREAK -#line 2312 "fe/idl.yy.cpp" -case YY_STATE_EOF(INITIAL): - yyterminate(); +#line 2576 "fe/idl.yy.cpp" + case YY_STATE_EOF(INITIAL): + yyterminate(); case YY_END_OF_BUFFER: { @@ -2373,8 +2637,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; } } @@ -2500,38 +2763,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" ); } @@ -2594,21 +2827,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; @@ -2622,22 +2854,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; } @@ -3228,6 +3456,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; @@ -3258,6 +3491,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( ); @@ -3315,7 +3551,7 @@ void yyfree (void * ptr ) #define YYTABLES_NAME "yytables" -#line 417 "fe/idl.ll" +#line 482 "fe/idl.ll" /* subroutines */ From a4c5b22c20a1f1298a23d3ab57571237284b1963 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Mon, 7 Jun 2021 23:43:19 -0500 Subject: [PATCH 06/19] Added WIP explicit_ints Test And a bunch of fixes to get it to (sorta) work. --- ACE/ace/CDR_Base.h | 10 ++- TAO/TAO_IDL/ast/ast_expression.cpp | 62 +++++++++---------- TAO/TAO_IDL/ast/ast_predefined_type.cpp | 16 ++++- TAO/TAO_IDL/ast/ast_union.cpp | 4 +- TAO/TAO_IDL/be/be_helper.cpp | 20 +++++- TAO/TAO_IDL/be/be_predefined_type.cpp | 25 +++++--- .../be/be_visitor_constant/constant.cpp | 4 +- TAO/TAO_IDL/fe/fe_init.cpp | 8 ++- TAO/tao/Basic_Types.h | 24 +++++++ TAO/tests/IDLv4/explicit_ints/.gitignore | 6 ++ .../explicit_ints/IDLv4_explicit_ints.mpc | 7 +++ TAO/tests/IDLv4/explicit_ints/main.cpp | 58 +++++++++++++++++ TAO/tests/IDLv4/explicit_ints/run_test.pl | 19 ++++++ TAO/tests/IDLv4/explicit_ints/test.idl | 50 +++++++++++++++ 14 files changed, 264 insertions(+), 49 deletions(-) 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/CDR_Base.h b/ACE/ace/CDR_Base.h index 815f0e009eea2..33d5bdc37398c 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/TAO/TAO_IDL/ast/ast_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp index 3f39c850cb846..c1b2c15b90376 100644 --- a/TAO/TAO_IDL/ast/ast_expression.cpp +++ b/TAO/TAO_IDL/ast/ast_expression.cpp @@ -1300,7 +1300,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) @@ -1309,7 +1309,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 @@ -1319,7 +1319,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) @@ -1328,7 +1328,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 @@ -1338,7 +1338,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) @@ -1347,11 +1347,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 @@ -1361,7 +1361,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 @@ -1371,7 +1371,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, } ev->u.cval = (char) ev->u.dval; - ev->et = AST_Expression::EV_char; + ev->et = t; return ev; case AST_Expression::EV_wchar: if (ev->u.wcval > (ACE_CDR::WChar) ACE_CHAR_MAX) @@ -1380,7 +1380,7 @@ 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: @@ -1390,7 +1390,7 @@ 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: @@ -1514,7 +1514,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) @@ -1523,7 +1523,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 @@ -1533,7 +1533,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) @@ -1542,7 +1542,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 @@ -1552,7 +1552,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) @@ -1561,11 +1561,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 @@ -1575,7 +1575,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 @@ -1585,7 +1585,7 @@ 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: @@ -1595,7 +1595,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) @@ -1604,7 +1604,7 @@ 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: @@ -2469,38 +2469,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 = nullptr; return nullptr; } + retval->et = pd_v1->ev ()->et; break; default: @@ -2517,14 +2517,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 = nullptr; + UTL_Scope *s = nullptr; AST_Decl *d = nullptr; AST_Constant *c = nullptr; // Is there a symbol stored? if (this->pd_n == nullptr) { - idl_global->err ()->eval_error (this); + idl_global->err ()->eval_error (this); return nullptr; } diff --git a/TAO/TAO_IDL/ast/ast_predefined_type.cpp b/TAO/TAO_IDL/ast/ast_predefined_type.cpp index e52ee5f0ab7b5..ca4be3164cca9 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_union.cpp b/TAO/TAO_IDL/ast/ast_union.cpp index 503fd01310ea3..763300473b4be 100644 --- a/TAO/TAO_IDL/ast/ast_union.cpp +++ b/TAO/TAO_IDL/ast/ast_union.cpp @@ -155,7 +155,7 @@ AST_Union::AST_Union (AST_ConcreteType *dt, this->pd_udisc_type = AST_Expression::EV_ushort; break; case AST_PredefinedType::PT_int8: - this->pd_udisc_type = AST_Expression::EV_char; + this->pd_udisc_type = AST_Expression::EV_int8; break; case AST_PredefinedType::PT_char: this->pd_udisc_type = AST_Expression::EV_char; @@ -164,7 +164,7 @@ AST_Union::AST_Union (AST_ConcreteType *dt, this->pd_udisc_type = AST_Expression::EV_wchar; break; case AST_PredefinedType::PT_uint8: - this->pd_udisc_type = AST_Expression::EV_char; + this->pd_udisc_type = AST_Expression::EV_uint8; break; case AST_PredefinedType::PT_octet: this->pd_udisc_type = AST_Expression::EV_octet; diff --git a/TAO/TAO_IDL/be/be_helper.cpp b/TAO/TAO_IDL/be/be_helper.cpp index bc982a5988e24..218bc0ac53416 100644 --- a/TAO/TAO_IDL/be/be_helper.cpp +++ b/TAO/TAO_IDL/be/be_helper.cpp @@ -530,8 +530,24 @@ 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 seem in C/C++ compilers 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/integer-constant-is-so-large-that-it-is-unsigned-compiler-warning-rational + * + * Apparently the workaround is to write it as `VALUE_PLUS_ONE - 1`. + */ + const bool min_value = value == ACE_INT64_MIN; + if (min_value) value += 1; + 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: diff --git a/TAO/TAO_IDL/be/be_predefined_type.cpp b/TAO/TAO_IDL/be/be_predefined_type.cpp index 7aa8a813c9bdd..d311d098c334a 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" @@ -198,19 +201,19 @@ be_predefined_type::compute_tc_name () 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 +225,17 @@ be_predefined_type::compute_tc_name () 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_visitor_constant/constant.cpp b/TAO/TAO_IDL/be/be_visitor_constant/constant.cpp index 1c11373df702f..a841b6f20d69e 100644 --- a/TAO/TAO_IDL/be/be_visitor_constant/constant.cpp +++ b/TAO/TAO_IDL/be/be_visitor_constant/constant.cpp @@ -39,9 +39,9 @@ const char *exprtype_to_cpp_corba_type (AST_Expression::ExprType et) case AST_Expression::EV_fixed: return "Fixed"; case AST_Expression::EV_int8: - return "CORBA::Octet"; + return "CORBA::Int8"; case AST_Expression::EV_uint8: - return "CORBA::Octet"; + return "CORBA::Uint8"; default: return 0; } diff --git a/TAO/TAO_IDL/fe/fe_init.cpp b/TAO/TAO_IDL/fe/fe_init.cpp index 24c8284bf4d10..e8989d1529868 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 () { - // 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 = nullptr; @@ -210,6 +210,12 @@ fe_populate_global_scope () m->fe_add_predefined_type (pdt); + m->fe_add_predefined_type (idl_global->gen ()->create_predefined_type ( + AST_PredefinedType::PT_uint8, nullptr)); + + m->fe_add_predefined_type (idl_global->gen ()->create_predefined_type ( + AST_PredefinedType::PT_int8, nullptr)); + Identifier Object_id ("Object"); UTL_ScopedName Object_name (&Object_id, nullptr); diff --git a/TAO/tao/Basic_Types.h b/TAO/tao/Basic_Types.h index 538332cdf93dd..4da95d3cd5a3e 100644 --- a/TAO/tao/Basic_Types.h +++ b/TAO/tao/Basic_Types.h @@ -75,6 +75,30 @@ namespace CORBA typedef ACE_CDR::WChar WChar; typedef WChar &WChar_out; + + typedef ACE_CDR::Int8 Int8; + typedef Int8 &Int8_out; + + typedef ACE_CDR::Uint8 Uint8; + typedef Uint8 &Uint8_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/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..3938803c11992 --- /dev/null +++ b/TAO/tests/IDLv4/explicit_ints/IDLv4_explicit_ints.mpc @@ -0,0 +1,7 @@ +project: taoexe { + exename = explicit_ints + idlflags += --idl-version 4 + IDL_Files { + test.idl + } +} diff --git a/TAO/tests/IDLv4/explicit_ints/main.cpp b/TAO/tests/IDLv4/explicit_ints/main.cpp new file mode 100644 index 0000000000000..beb36f2008ce5 --- /dev/null +++ b/TAO/tests/IDLv4/explicit_ints/main.cpp @@ -0,0 +1,58 @@ +#include "testC.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) +{ + const bool failed = actual != expected; + if (failed) + { + 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_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); + + return any_failed ? 1 : 0; +} 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..03fee4b9bfa41 --- /dev/null +++ b/TAO/tests/IDLv4/explicit_ints/test.idl @@ -0,0 +1,50 @@ +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_max_overflow = u8_max + 1; // == 0 +const int8 i8_max_overflow = i8_max + 1; // == i8_min TODO: value is 0 + +const uint8 u8_max_negate = ~u8_max; // == 0 +const int8 i8_max_negate = ~i8_max; // == i8_min + +// TODO: More Expressions + +/* TODO: serialization functions stop these from compiling +struct StructWithInts { + uint8 u8; + int8 i8; + uint16 u16; + int16 i16; + uint32 u32; + int32 i32; + uint64 u64; + int64 i64; +}; + +union UnionOverU8 switch (uint8) { +case 0: + uint8 u8; +case 1: + int8 i8; +}; + +union UnionOverI8 switch (int8) { +case 0: + uint8 u8; +case 1: + int8 i8; +}; +*/ + +// TODO: More situations? From 56a61b91a637fbb0be576cbc3f7a173e0c63476a Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Sat, 12 Jun 2021 22:43:28 -0500 Subject: [PATCH 07/19] Fix Issues with explicit_ints Test - Add uint8 and int8 to ACE and TAO serialization - Refactor parts of AST_Expression to also cover uint8 and int8 --- ACE/ace/CDR_Stream.h | 12 + ACE/ace/CDR_Stream.inl | 86 +++ TAO/TAO_IDL/ast/ast_expression.cpp | 639 ++++++------------ TAO/TAO_IDL/be/be_helper.cpp | 11 +- TAO/TAO_IDL/include/ast_expression.h | 6 +- TAO/tao/CDR.h | 4 + TAO/tao/CDR.inl | 23 + .../explicit_ints/IDLv4_explicit_ints.mpc | 3 + TAO/tests/IDLv4/explicit_ints/main.cpp | 25 +- TAO/tests/IDLv4/explicit_ints/test.idl | 28 +- 10 files changed, 391 insertions(+), 446 deletions(-) diff --git a/ACE/ace/CDR_Stream.h b/ACE/ace/CDR_Stream.h index 3a16dbeb7bff7..b47b8d348c488 100644 --- a/ACE/ace/CDR_Stream.h +++ b/ACE/ace/CDR_Stream.h @@ -260,6 +260,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 +308,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. @@ -857,6 +861,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); @@ -899,6 +905,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); //@} /** @@ -1384,6 +1392,8 @@ extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_CDR::Double x); extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, const ACE_CDR::Fixed &x); +extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_CDR::Uint8 x); +extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_CDR::Int8 x); // CDR output operator from helper classes @@ -1439,6 +1449,8 @@ extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, ACE_CDR::Double &x); extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, ACE_CDR::Fixed &x); +extern ACE_Export ACE_CDR::Boolean operator>> (ACE_OutputCDR &os, ACE_CDR::Uint8 &x); +extern ACE_Export ACE_CDR::Boolean operator>> (ACE_OutputCDR &os, ACE_CDR::Int8 &x); // CDR input operator from helper classes diff --git a/ACE/ace/CDR_Stream.inl b/ACE/ace/CDR_Stream.inl index 3ee06d67ef4f1..76b2c15735a2d 100644 --- a/ACE/ace/CDR_Stream.inl +++ b/ACE/ace/CDR_Stream.inl @@ -355,6 +355,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 +503,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 () const { @@ -791,6 +815,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 () const { @@ -1021,6 +1057,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 () { @@ -1314,6 +1374,20 @@ operator<< (ACE_OutputCDR &os, const std::wstring& x) } #endif +ACE_INLINE ACE_CDR::Boolean +operator<< (ACE_OutputCDR &os, ACE_CDR::Uint8 x) +{ + os.write_uint8 (x); + return (ACE_CDR::Boolean) os.good_bit (); +} + +ACE_INLINE ACE_CDR::Boolean +operator<< (ACE_OutputCDR &os, ACE_CDR::Int8 x) +{ + os.write_int8 (x); + return (ACE_CDR::Boolean) os.good_bit (); +} + // The following use the helper classes ACE_INLINE ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_boolean x) @@ -1467,6 +1541,18 @@ operator>> (ACE_InputCDR &is, std::wstring& x) } #endif +ACE_INLINE ACE_CDR::Boolean +operator>> (ACE_InputCDR &is, ACE_CDR::Uint8 &x) +{ + return is.read_uint8 (x) && is.good_bit (); +} + +ACE_INLINE ACE_CDR::Boolean +operator>> (ACE_InputCDR &is, ACE_CDR::Int8 &x) +{ + return is.read_int8 (x) && is.good_bit (); +} + // The following use the helper classes ACE_INLINE ACE_CDR::Boolean operator>> (ACE_InputCDR &is, ACE_InputCDR::to_boolean x) diff --git a/TAO/TAO_IDL/ast/ast_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp index c1b2c15b90376..f653a4c196dd7 100644 --- a/TAO/TAO_IDL/ast/ast_expression.cpp +++ b/TAO/TAO_IDL/ast/ast_expression.cpp @@ -84,6 +84,40 @@ trademarks or registered trademarks of Sun Microsystems, Inc. // 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 @@ -1777,6 +1811,32 @@ 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 true; + result = a / b; + break; + default: + return true; + } + + return false; +} + AST_Expression::AST_ExprValue * AST_Expression::eval_bin_op (AST_Expression::EvalKind ek) { @@ -1795,161 +1855,88 @@ AST_Expression::eval_bin_op (AST_Expression::EvalKind ek) return nullptr; } + const ExprType expr_type = eval_kind_to_expr_type (ek); + if (expr_type == EV_none) return nullptr; + ACE_NEW_RETURN (retval, AST_ExprValue, nullptr); - 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 failed = true; + 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: + failed = 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 = nullptr; - return nullptr; - } + case EV_uint8: + failed = 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 = nullptr; - return nullptr; - } - } - 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: + failed = 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 = nullptr; - return nullptr; - } + case EV_ushort: + failed = 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 = nullptr; - return nullptr; - } - } - 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: + failed = 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 = nullptr; - return nullptr; - } + case EV_ulong: + failed = 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 = nullptr; - return nullptr; - } - } - 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: + failed = 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 = nullptr; - return nullptr; - } + case EV_ulonglong: + failed = 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 = nullptr; - return nullptr; - } + case EV_octet: + failed = do_eval_bin_op (pd_ec, + pd_v1->ev ()->u.oval, pd_v2->ev ()->u.oval, retval->u.oval); + break; + + case EV_double: + failed = do_eval_bin_op (pd_ec, + pd_v1->ev ()->u.dval, pd_v2->ev ()->u.dval, retval->u.dval); + break; + + case EV_fixed: + failed = do_eval_bin_op (pd_ec, + pd_v1->ev ()->u.fixedval, pd_v2->ev ()->u.fixedval, retval->u.fixedval); + break; + + default: + failed = true; + } + + if (failed) + { + delete retval; + retval = nullptr; } return retval; } + // Apply binary operators to an AST_Expression after evaluating // its sub-expressions. // Operations supported: '%' @@ -2007,8 +1994,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)); @@ -2053,6 +2039,34 @@ 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 (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; + case AST_Expression::EC_left: + result = a << b; + break; + case AST_Expression::EC_right: + result = a >> b; + break; + default: + return true; + } + + return false; +} + AST_Expression::AST_ExprValue * AST_Expression::eval_bit_op (AST_Expression::EvalKind ek) { @@ -2071,315 +2085,80 @@ AST_Expression::eval_bit_op (AST_Expression::EvalKind ek) return nullptr; } + const ExprType expr_type = eval_kind_to_expr_type (ek); + if (expr_type == EV_none) return nullptr; + ACE_NEW_RETURN (retval, AST_ExprValue, nullptr); - 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; - - 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 = nullptr; - return nullptr; - } - } - - 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; + 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.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 = nullptr; - return nullptr; - } - } + bool failed = true; + switch (expr_type) + { + case EV_int8: + failed = 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: + failed = 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 = nullptr; - return nullptr; - } - } + case EV_short: + failed = 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: + failed = 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 = nullptr; - return nullptr; - } - } + case EV_long: + failed = 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: + failed = 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 = nullptr; - return nullptr; - } - } + case EV_longlong: + failed = 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: + failed = 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 = nullptr; - return nullptr; - } - } + case EV_octet: + failed = 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: + failed = do_eval_bit_op (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 = nullptr; - return nullptr; - } - } + default: + failed = true; + } - break; - case EK_octet: + if (failed) { - 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 = nullptr; - return nullptr; - } + delete retval; + retval = nullptr; } - break; - default: - delete retval; - retval = nullptr; - return nullptr; - } - return retval; } diff --git a/TAO/TAO_IDL/be/be_helper.cpp b/TAO/TAO_IDL/be/be_helper.cpp index 218bc0ac53416..9a8883e71e6c3 100644 --- a/TAO/TAO_IDL/be/be_helper.cpp +++ b/TAO/TAO_IDL/be/be_helper.cpp @@ -533,13 +533,12 @@ TAO_OutStream::print (AST_Expression *expr) { ACE_CDR::LongLong value = ev->u.llval; /* - * It seem in C/C++ compilers 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. + * 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/integer-constant-is-so-large-that-it-is-unsigned-compiler-warning-rational + * https://stackoverflow.com/questions/65007935 * * Apparently the workaround is to write it as `VALUE_PLUS_ONE - 1`. */ diff --git a/TAO/TAO_IDL/include/ast_expression.h b/TAO/TAO_IDL/include/ast_expression.h index 01c666a071772..c005adc37e494 100644 --- a/TAO/TAO_IDL/include/ast_expression.h +++ b/TAO/TAO_IDL/include/ast_expression.h @@ -161,6 +161,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 { @@ -184,8 +186,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::Char int8val; // Signed Byte Sized Integer - ACE_CDR::Octet uint8val; // Unsigned Byte Sized Integer + ACE_CDR::Int8 int8val; // Signed Byte Sized Integer + ACE_CDR::Uint8 uint8val; // Unsigned Byte Sized Integer } u; ExprType et; diff --git a/TAO/tao/CDR.h b/TAO/tao/CDR.h index 1b1168c5cf228..6b4a769a28b0b 100644 --- a/TAO/tao/CDR.h +++ b/TAO/tao/CDR.h @@ -499,6 +499,8 @@ TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, ACE_OutputCDR::from_std_wstring x); #endif /* ACE_LACKS_STD_WSTRING */ +TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::Int8 x); +TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::Uint8 x); // CDR input operators for CORBA types @@ -538,6 +540,8 @@ TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &os, TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &os, ACE_InputCDR::to_std_wstring x); #endif /* ACE_LACKS_STD_WSTRING */ +TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::Int8 &x); +TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::Uint8 &x); TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/CDR.inl b/TAO/tao/CDR.inl index 89958d671dd09..02ba3827fb5bd 100644 --- a/TAO/tao/CDR.inl +++ b/TAO/tao/CDR.inl @@ -495,6 +495,19 @@ ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &os, } #endif /* ACE_LACKS_STD_WSTRING */ +ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::Int8 x) +{ + return os.fragment_stream (ACE_CDR::OCTET_ALIGN, ACE_CDR::OCTET_SIZE) + && static_cast (os) << x; +} + +ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::Uint8 x) +{ + return + os.fragment_stream (ACE_CDR::OCTET_ALIGN, ACE_CDR::OCTET_SIZE) + && static_cast (os) << x; +} + // **************************************************************** ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, @@ -625,4 +638,14 @@ ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, } #endif /* ACE_LACKS_STD_WSTRING */ +ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::Int8 &x) +{ + return static_cast (is) >> x; +} + +ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::Uint8 &x) +{ + return static_cast (is) >> x; +} + TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tests/IDLv4/explicit_ints/IDLv4_explicit_ints.mpc b/TAO/tests/IDLv4/explicit_ints/IDLv4_explicit_ints.mpc index 3938803c11992..8a3691bfd3424 100644 --- a/TAO/tests/IDLv4/explicit_ints/IDLv4_explicit_ints.mpc +++ b/TAO/tests/IDLv4/explicit_ints/IDLv4_explicit_ints.mpc @@ -4,4 +4,7 @@ project: taoexe { 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 index beb36f2008ce5..9540764b58c99 100644 --- a/TAO/tests/IDLv4/explicit_ints/main.cpp +++ b/TAO/tests/IDLv4/explicit_ints/main.cpp @@ -19,8 +19,7 @@ template void expect_equals (bool &any_failed, const char *name, IntType actual, IntType expected) { - const bool failed = actual != expected; - if (failed) + if (actual != expected) { using stream8::operator<<; *ACE_DEFAULT_LOG_STREAM @@ -48,11 +47,33 @@ ACE_TMAIN (int, ACE_TCHAR *[]) 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 ? 1 : 0; } diff --git a/TAO/tests/IDLv4/explicit_ints/test.idl b/TAO/tests/IDLv4/explicit_ints/test.idl index 03fee4b9bfa41..eb1e476a80c80 100644 --- a/TAO/tests/IDLv4/explicit_ints/test.idl +++ b/TAO/tests/IDLv4/explicit_ints/test.idl @@ -12,15 +12,34 @@ 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 TODO: value is 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 -// TODO: More Expressions +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; -/* TODO: serialization functions stop these from compiling struct StructWithInts { uint8 u8; int8 i8; @@ -45,6 +64,3 @@ case 0: case 1: int8 i8; }; -*/ - -// TODO: More situations? From e994776aa9614588eb6e4ed0dd9ba5e71a74e494 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Sun, 13 Jun 2021 00:55:05 -0500 Subject: [PATCH 08/19] CDR_Stream.h: Fix Arg Type --- ACE/ace/CDR_Stream.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ACE/ace/CDR_Stream.h b/ACE/ace/CDR_Stream.h index b47b8d348c488..7a4f8897abe73 100644 --- a/ACE/ace/CDR_Stream.h +++ b/ACE/ace/CDR_Stream.h @@ -1449,8 +1449,8 @@ extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, ACE_CDR::Double &x); extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, ACE_CDR::Fixed &x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_OutputCDR &os, ACE_CDR::Uint8 &x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_OutputCDR &os, ACE_CDR::Int8 &x); +extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &os, ACE_CDR::Uint8 &x); +extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &os, ACE_CDR::Int8 &x); // CDR input operator from helper classes From 2afc6a2c504ab9a80a54c2d71efea83a0d5085c9 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Sun, 13 Jun 2021 16:46:42 -0500 Subject: [PATCH 09/19] Fix Warnings, Add explicit_ints to Test List --- TAO/TAO_IDL/ast/ast_expression.cpp | 24 +++++++++++++++++++----- TAO/bin/tao_orb_tests.lst | 1 + 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/TAO/TAO_IDL/ast/ast_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp index f653a4c196dd7..69e21021d813e 100644 --- a/TAO/TAO_IDL/ast/ast_expression.cpp +++ b/TAO/TAO_IDL/ast/ast_expression.cpp @@ -1312,11 +1312,11 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->et = AST_Expression::EV_double; return ev; case AST_Expression::EV_int8: - ev->u.fval = static_cast (ev->u.int8val); + ev->u.dval = static_cast (ev->u.int8val); ev->et = t; return ev; case AST_Expression::EV_uint8: - ev->u.fval = static_cast (ev->u.uint8val); + ev->u.dval = static_cast (ev->u.uint8val); ev->et = t; return ev; default: @@ -2039,9 +2039,10 @@ 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 (AST_Expression::ExprComb op, Type a, Type b, Type &result) +do_eval_bit_op_no_shift (AST_Expression::ExprComb op, Type a, Type b, Type &result) { switch (op) { @@ -2054,6 +2055,19 @@ do_eval_bit_op (AST_Expression::ExprComb op, Type a, Type b, Type &result) case AST_Expression::EC_and: result = a & b; break; + default: + return true; + } + + return false; +} + +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; @@ -2061,7 +2075,7 @@ do_eval_bit_op (AST_Expression::ExprComb op, Type a, Type b, Type &result) result = a >> b; break; default: - return true; + return do_eval_bit_op_no_shift (op, a, b, result); } return false; @@ -2145,7 +2159,7 @@ AST_Expression::eval_bit_op (AST_Expression::EvalKind ek) break; case EV_bool: - failed = do_eval_bit_op (pd_ec, + failed = do_eval_bit_op_no_shift (pd_ec, pd_v1->ev ()->u.bval, pd_v2->ev ()->u.bval, retval->u.bval); break; diff --git a/TAO/bin/tao_orb_tests.lst b/TAO/bin/tao_orb_tests.lst index 4d72da037d31c..64b9e91f03c9d 100644 --- a/TAO/bin/tao_orb_tests.lst +++ b/TAO/bin/tao_orb_tests.lst @@ -511,3 +511,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 From 737b9195ece838d15d4c6d54300026a26e5d1c44 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Mon, 14 Jun 2021 15:58:44 -0500 Subject: [PATCH 10/19] Partially Respond to Review of #840 https://github.com/DOCGroup/ACE_TAO/pull/840 --- ACE/ace/CDR_Base.h | 2 +- ACE/ace/CDR_Stream.h | 12 +-- ACE/ace/CDR_Stream.inl | 12 +-- TAO/TAO_IDL/ast/ast_constant.cpp | 2 +- TAO/TAO_IDL/ast/ast_expression.cpp | 18 ++++- TAO/TAO_IDL/ast/ast_predefined_type.cpp | 2 +- TAO/TAO_IDL/be/be_predefined_type.cpp | 4 +- .../be/be_visitor_constant/constant.cpp | 2 +- TAO/TAO_IDL/include/ast_expression.h | 2 +- TAO/tao/Basic_Types.h | 4 +- TAO/tao/CDR.h | 4 +- TAO/tao/CDR.inl | 4 +- TAO/tests/IDLv4/explicit_ints/main.cpp | 74 +++++++++---------- 13 files changed, 77 insertions(+), 65 deletions(-) diff --git a/ACE/ace/CDR_Base.h b/ACE/ace/CDR_Base.h index 33d5bdc37398c..6fb61edfe8ac6 100644 --- a/ACE/ace/CDR_Base.h +++ b/ACE/ace/CDR_Base.h @@ -208,7 +208,7 @@ class ACE_Export ACE_CDR typedef ACE_INT64 LongLong; typedef ACE_UINT64 ULongLong; typedef ACE_INT8 Int8; - typedef ACE_UINT8 Uint8; + typedef ACE_UINT8 UInt8; typedef Short Int16; typedef UShort Uint16; typedef Long Int32; diff --git a/ACE/ace/CDR_Stream.h b/ACE/ace/CDR_Stream.h index 7a4f8897abe73..9ac1f49c55b5a 100644 --- a/ACE/ace/CDR_Stream.h +++ b/ACE/ace/CDR_Stream.h @@ -261,7 +261,7 @@ class ACE_Export ACE_OutputCDR 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); + 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); @@ -309,7 +309,7 @@ class ACE_Export ACE_OutputCDR 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); + 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. @@ -862,7 +862,7 @@ class ACE_Export ACE_InputCDR 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_uint8 (ACE_CDR::UInt8 &x); ACE_CDR::Boolean read_string (ACE_CDR::Char *&x); ACE_CDR::Boolean read_string (ACE_CString &x); @@ -906,7 +906,7 @@ class ACE_Export ACE_InputCDR 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); + ACE_CDR::Boolean read_uint8_array (ACE_CDR::UInt8 *x, ACE_CDR::ULong length); //@} /** @@ -1392,7 +1392,7 @@ extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_CDR::Double x); extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, const ACE_CDR::Fixed &x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_CDR::Uint8 x); +extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_CDR::UInt8 x); extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_CDR::Int8 x); // CDR output operator from helper classes @@ -1449,7 +1449,7 @@ extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, ACE_CDR::Double &x); extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, ACE_CDR::Fixed &x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &os, ACE_CDR::Uint8 &x); +extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &os, ACE_CDR::UInt8 &x); extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &os, ACE_CDR::Int8 &x); // CDR input operator from helper classes diff --git a/ACE/ace/CDR_Stream.inl b/ACE/ace/CDR_Stream.inl index 76b2c15735a2d..9e4380fbde1a6 100644 --- a/ACE/ace/CDR_Stream.inl +++ b/ACE/ace/CDR_Stream.inl @@ -362,7 +362,7 @@ ACE_OutputCDR::write_int8 (ACE_CDR::Int8 x) } ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_uint8 (ACE_CDR::Uint8 x) +ACE_OutputCDR::write_uint8 (ACE_CDR::UInt8 x) { return this->write_1 (reinterpret_cast (&x)); } @@ -510,7 +510,7 @@ ACE_OutputCDR::write_int8_array (const ACE_CDR::Int8 *x, ACE_CDR::ULong length) } ACE_INLINE ACE_CDR::Boolean -ACE_OutputCDR::write_uint8_array (const ACE_CDR::Uint8 *x, ACE_CDR::ULong length) +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); } @@ -822,7 +822,7 @@ ACE_InputCDR::read_int8 (ACE_CDR::Int8 &x) } ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_uint8 (ACE_CDR::Uint8 &x) +ACE_InputCDR::read_uint8 (ACE_CDR::UInt8 &x) { return read_1 (reinterpret_cast(&x)); } @@ -1070,7 +1070,7 @@ ACE_InputCDR::read_int8_array (ACE_CDR::Int8 *x, ACE_CDR::ULong length) } ACE_INLINE ACE_CDR::Boolean -ACE_InputCDR::read_uint8_array (ACE_CDR::Uint8 *x, ACE_CDR::ULong length) +ACE_InputCDR::read_uint8_array (ACE_CDR::UInt8 *x, ACE_CDR::ULong length) { if (length * ACE_CDR::OCTET_SIZE > this->length ()) { @@ -1375,7 +1375,7 @@ operator<< (ACE_OutputCDR &os, const std::wstring& x) #endif ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_CDR::Uint8 x) +operator<< (ACE_OutputCDR &os, ACE_CDR::UInt8 x) { os.write_uint8 (x); return (ACE_CDR::Boolean) os.good_bit (); @@ -1542,7 +1542,7 @@ operator>> (ACE_InputCDR &is, std::wstring& x) #endif ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_CDR::Uint8 &x) +operator>> (ACE_InputCDR &is, ACE_CDR::UInt8 &x) { return is.read_uint8 (x) && is.good_bit (); } diff --git a/TAO/TAO_IDL/ast/ast_constant.cpp b/TAO/TAO_IDL/ast/ast_constant.cpp index ca1d72aac90e0..beba535790d0c 100644 --- a/TAO/TAO_IDL/ast/ast_constant.cpp +++ b/TAO/TAO_IDL/ast/ast_constant.cpp @@ -137,7 +137,7 @@ void AST_Constant::dump (ACE_OSTREAM_TYPE &o) { this->dump_i (o, "const "); - dump_i(o, AST_Expression::exprtype_to_string (pd_et)); + dump_i (o, AST_Expression::exprtype_to_string (pd_et)); this->dump_i (o, " "); this->local_name ()->dump (o); diff --git a/TAO/TAO_IDL/ast/ast_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp index 69e21021d813e..af422f72d62ae 100644 --- a/TAO/TAO_IDL/ast/ast_expression.cpp +++ b/TAO/TAO_IDL/ast/ast_expression.cpp @@ -1837,6 +1837,18 @@ do_eval_bin_op (AST_Expression::ExprComb op, Type a, Type b, Type &result) return false; } +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 false; + } + return do_eval_bin_op (op, a, b, result); +} + AST_Expression::AST_ExprValue * AST_Expression::eval_bin_op (AST_Expression::EvalKind ek) { @@ -1875,7 +1887,7 @@ AST_Expression::eval_bin_op (AST_Expression::EvalKind ek) break; case EV_uint8: - failed = do_eval_bin_op (pd_ec, + failed = do_eval_bin_op (pd_ec, pd_v1->ev ()->u.uint8val, pd_v2->ev ()->u.uint8val, retval->u.uint8val); break; @@ -1915,7 +1927,7 @@ AST_Expression::eval_bin_op (AST_Expression::EvalKind ek) break; case EV_double: - failed = do_eval_bin_op (pd_ec, + failed = do_eval_bin_op_float (pd_ec, pd_v1->ev ()->u.dval, pd_v2->ev ()->u.dval, retval->u.dval); break; @@ -2119,7 +2131,7 @@ AST_Expression::eval_bit_op (AST_Expression::EvalKind ek) break; case EV_uint8: - failed = do_eval_bit_op (pd_ec, + failed = do_eval_bit_op (pd_ec, pd_v1->ev ()->u.uint8val, pd_v2->ev ()->u.uint8val, retval->u.uint8val); break; diff --git a/TAO/TAO_IDL/ast/ast_predefined_type.cpp b/TAO/TAO_IDL/ast/ast_predefined_type.cpp index ca4be3164cca9..165ed034ec0a9 100644 --- a/TAO/TAO_IDL/ast/ast_predefined_type.cpp +++ b/TAO/TAO_IDL/ast/ast_predefined_type.cpp @@ -194,7 +194,7 @@ AST_PredefinedType::AST_PredefinedType (PredefinedType t, Identifier (n->last_component ()->get_string ())); break; case AST_PredefinedType::PT_uint8: - ACE_NEW (id, Identifier ("Uint8")); + ACE_NEW (id, Identifier ("UInt8")); break; case AST_PredefinedType::PT_int8: ACE_NEW (id, Identifier ("Int8")); diff --git a/TAO/TAO_IDL/be/be_predefined_type.cpp b/TAO/TAO_IDL/be/be_predefined_type.cpp index d311d098c334a..77c2f2490ec4a 100644 --- a/TAO/TAO_IDL/be/be_predefined_type.cpp +++ b/TAO/TAO_IDL/be/be_predefined_type.cpp @@ -226,10 +226,10 @@ be_predefined_type::compute_tc_name () break; } case AST_PredefinedType::PT_uint8: - ACE_NEW (id, Identifier ("_tc_Uint8")); + ACE_NEW (id, Identifier ("_tc_uint8")); break; case AST_PredefinedType::PT_int8: - ACE_NEW (id, Identifier ("_tc_Int8")); + ACE_NEW (id, Identifier ("_tc_int8")); break; default: idl_global->err ()->misc_error ( diff --git a/TAO/TAO_IDL/be/be_visitor_constant/constant.cpp b/TAO/TAO_IDL/be/be_visitor_constant/constant.cpp index a841b6f20d69e..f339edfc8c4f3 100644 --- a/TAO/TAO_IDL/be/be_visitor_constant/constant.cpp +++ b/TAO/TAO_IDL/be/be_visitor_constant/constant.cpp @@ -41,7 +41,7 @@ const char *exprtype_to_cpp_corba_type (AST_Expression::ExprType et) case AST_Expression::EV_int8: return "CORBA::Int8"; case AST_Expression::EV_uint8: - return "CORBA::Uint8"; + return "CORBA::UInt8"; default: return 0; } diff --git a/TAO/TAO_IDL/include/ast_expression.h b/TAO/TAO_IDL/include/ast_expression.h index c005adc37e494..c6f11bcb5dda0 100644 --- a/TAO/TAO_IDL/include/ast_expression.h +++ b/TAO/TAO_IDL/include/ast_expression.h @@ -187,7 +187,7 @@ class TAO_IDL_FE_Export AST_Expression 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 + ACE_CDR::UInt8 uint8val; // Unsigned Byte Sized Integer } u; ExprType et; diff --git a/TAO/tao/Basic_Types.h b/TAO/tao/Basic_Types.h index 4da95d3cd5a3e..31e9031dd7340 100644 --- a/TAO/tao/Basic_Types.h +++ b/TAO/tao/Basic_Types.h @@ -79,8 +79,8 @@ namespace CORBA typedef ACE_CDR::Int8 Int8; typedef Int8 &Int8_out; - typedef ACE_CDR::Uint8 Uint8; - typedef Uint8 &Uint8_out; + typedef ACE_CDR::UInt8 UInt8; + typedef UInt8 &UInt8_out; typedef ACE_CDR::Int16 Int16; typedef Int16 &Int16_out; diff --git a/TAO/tao/CDR.h b/TAO/tao/CDR.h index 6b4a769a28b0b..c230463502ada 100644 --- a/TAO/tao/CDR.h +++ b/TAO/tao/CDR.h @@ -500,7 +500,7 @@ TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, ACE_OutputCDR::from_std_wstring x); #endif /* ACE_LACKS_STD_WSTRING */ TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::Int8 x); -TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::Uint8 x); +TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::UInt8 x); // CDR input operators for CORBA types @@ -541,7 +541,7 @@ TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &os, ACE_InputCDR::to_std_wstring x); #endif /* ACE_LACKS_STD_WSTRING */ TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::Int8 &x); -TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::Uint8 &x); +TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::UInt8 &x); TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/CDR.inl b/TAO/tao/CDR.inl index 02ba3827fb5bd..3ea12fd249d55 100644 --- a/TAO/tao/CDR.inl +++ b/TAO/tao/CDR.inl @@ -501,7 +501,7 @@ ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::Int8 x) && static_cast (os) << x; } -ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::Uint8 x) +ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::UInt8 x) { return os.fragment_stream (ACE_CDR::OCTET_ALIGN, ACE_CDR::OCTET_SIZE) @@ -643,7 +643,7 @@ ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::Int8 &x) return static_cast (is) >> x; } -ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::Uint8 &x) +ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::UInt8 &x) { return static_cast (is) >> x; } diff --git a/TAO/tests/IDLv4/explicit_ints/main.cpp b/TAO/tests/IDLv4/explicit_ints/main.cpp index 9540764b58c99..075608ee54097 100644 --- a/TAO/tests/IDLv4/explicit_ints/main.cpp +++ b/TAO/tests/IDLv4/explicit_ints/main.cpp @@ -5,7 +5,7 @@ namespace stream8 { std::ostream & - operator<< (std::ostream &os, CORBA::Uint8 value) { + operator<< (std::ostream &os, CORBA::UInt8 value) { return os << static_cast(value); } @@ -34,46 +34,46 @@ 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_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_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_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, "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); + 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 ? 1 : 0; } From 2280b39eb55c10304e86db634d4455576732faec Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Mon, 14 Jun 2021 18:28:45 -0500 Subject: [PATCH 11/19] Respond to Review of #840 https://github.com/DOCGroup/ACE_TAO/pull/840 --- TAO/TAO_IDL/ast/ast_expression.cpp | 98 ++++++++++++------------------ TAO/TAO_IDL/be/be_helper.cpp | 6 +- 2 files changed, 43 insertions(+), 61 deletions(-) diff --git a/TAO/TAO_IDL/ast/ast_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp index af422f72d62ae..c3d98464cc27b 100644 --- a/TAO/TAO_IDL/ast/ast_expression.cpp +++ b/TAO/TAO_IDL/ast/ast_expression.cpp @@ -1827,14 +1827,14 @@ do_eval_bin_op (AST_Expression::ExprComb op, Type a, Type b, Type &result) result = a * b; break; case AST_Expression::EC_div: - if (!b) return true; + if (!b) return false; result = a / b; break; default: - return true; + return false; } - return false; + return true; } template @@ -1844,7 +1844,7 @@ 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 false; + return true; } return do_eval_bin_op (op, a, b, result); } @@ -1878,69 +1878,69 @@ AST_Expression::eval_bin_op (AST_Expression::EvalKind ek) pd_v2->set_ev (pd_v2->coerce (expr_type)); retval->et = expr_type; - bool failed = true; + bool success = false; switch (expr_type) { case EV_int8: - failed = do_eval_bin_op (pd_ec, + success = do_eval_bin_op (pd_ec, pd_v1->ev ()->u.int8val, pd_v2->ev ()->u.int8val, retval->u.int8val); break; case EV_uint8: - failed = do_eval_bin_op (pd_ec, + success = do_eval_bin_op (pd_ec, pd_v1->ev ()->u.uint8val, pd_v2->ev ()->u.uint8val, retval->u.uint8val); break; case EV_short: - failed = do_eval_bin_op (pd_ec, + success = do_eval_bin_op (pd_ec, pd_v1->ev ()->u.sval, pd_v2->ev ()->u.sval, retval->u.sval); break; case EV_ushort: - failed = do_eval_bin_op (pd_ec, + success = do_eval_bin_op (pd_ec, pd_v1->ev ()->u.usval, pd_v2->ev ()->u.usval, retval->u.usval); break; case EV_long: - failed = do_eval_bin_op (pd_ec, + success = do_eval_bin_op (pd_ec, pd_v1->ev ()->u.lval, pd_v2->ev ()->u.lval, retval->u.lval); break; case EV_ulong: - failed = do_eval_bin_op (pd_ec, + success = do_eval_bin_op (pd_ec, pd_v1->ev ()->u.ulval, pd_v2->ev ()->u.ulval, retval->u.ulval); break; case EV_longlong: - failed = do_eval_bin_op (pd_ec, + success = do_eval_bin_op (pd_ec, pd_v1->ev ()->u.llval, pd_v2->ev ()->u.llval, retval->u.llval); break; case EV_ulonglong: - failed = do_eval_bin_op (pd_ec, + success = do_eval_bin_op (pd_ec, pd_v1->ev ()->u.ullval, pd_v2->ev ()->u.ullval, retval->u.ullval); break; case EV_octet: - failed = do_eval_bin_op (pd_ec, + success = do_eval_bin_op (pd_ec, pd_v1->ev ()->u.oval, pd_v2->ev ()->u.oval, retval->u.oval); break; case EV_double: - failed = do_eval_bin_op_float (pd_ec, + 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: - failed = do_eval_bin_op (pd_ec, + success = do_eval_bin_op (pd_ec, pd_v1->ev ()->u.fixedval, pd_v2->ev ()->u.fixedval, retval->u.fixedval); break; default: - failed = true; + success = true; } - if (failed) + if (!success) { delete retval; retval = nullptr; @@ -2068,10 +2068,10 @@ do_eval_bit_op_no_shift (AST_Expression::ExprComb op, Type a, Type b, Type &resu result = a & b; break; default: - return true; + return false; } - return false; + return true; } template @@ -2090,7 +2090,7 @@ do_eval_bit_op (AST_Expression::ExprComb op, Type a, Type b, Type &result) return do_eval_bit_op_no_shift (op, a, b, result); } - return false; + return true; } AST_Expression::AST_ExprValue * @@ -2122,64 +2122,64 @@ AST_Expression::eval_bit_op (AST_Expression::EvalKind ek) pd_v2->set_ev (pd_v2->coerce (expr_type)); retval->et = expr_type; - bool failed = true; + bool success = true; switch (expr_type) { case EV_int8: - failed = do_eval_bit_op (pd_ec, + success = do_eval_bit_op (pd_ec, pd_v1->ev ()->u.int8val, pd_v2->ev ()->u.int8val, retval->u.int8val); break; case EV_uint8: - failed = do_eval_bit_op (pd_ec, + success = do_eval_bit_op (pd_ec, pd_v1->ev ()->u.uint8val, pd_v2->ev ()->u.uint8val, retval->u.uint8val); break; case EV_short: - failed = do_eval_bit_op (pd_ec, + success = do_eval_bit_op (pd_ec, pd_v1->ev ()->u.sval, pd_v2->ev ()->u.sval, retval->u.sval); break; case EV_ushort: - failed = do_eval_bit_op (pd_ec, + success = do_eval_bit_op (pd_ec, pd_v1->ev ()->u.usval, pd_v2->ev ()->u.usval, retval->u.usval); break; case EV_long: - failed = do_eval_bit_op (pd_ec, + success = do_eval_bit_op (pd_ec, pd_v1->ev ()->u.lval, pd_v2->ev ()->u.lval, retval->u.lval); break; case EV_ulong: - failed = do_eval_bit_op (pd_ec, + success = do_eval_bit_op (pd_ec, pd_v1->ev ()->u.ulval, pd_v2->ev ()->u.ulval, retval->u.ulval); break; case EV_longlong: - failed = do_eval_bit_op (pd_ec, + success = do_eval_bit_op (pd_ec, pd_v1->ev ()->u.llval, pd_v2->ev ()->u.llval, retval->u.llval); break; case EV_ulonglong: - failed = do_eval_bit_op (pd_ec, + success = do_eval_bit_op (pd_ec, pd_v1->ev ()->u.ullval, pd_v2->ev ()->u.ullval, retval->u.ullval); break; case EV_octet: - failed = do_eval_bit_op (pd_ec, + success = do_eval_bit_op (pd_ec, pd_v1->ev ()->u.oval, pd_v2->ev ()->u.oval, retval->u.oval); break; case EV_bool: - failed = do_eval_bit_op_no_shift (pd_ec, + success = do_eval_bit_op_no_shift (pd_ec, pd_v1->ev ()->u.bval, pd_v2->ev ()->u.bval, retval->u.bval); break; default: - failed = true; + success = true; } - if (failed) + if (!success) { delete retval; retval = nullptr; @@ -2800,27 +2800,6 @@ dump_unary_expr (ACE_OSTREAM_TYPE &o, e->dump (o); } -static void -dump_nibble (ACE_OSTREAM_TYPE &o, short value) -{ - value = value & 0x0000000F; - if (value < 0xA) { - o << value; - } else if (value == 0xA) { - o << 'A'; - } else if (value == 0xB) { - o << 'B'; - } else if (value == 0xC) { - o << 'C'; - } else if (value == 0xD) { - o << 'D'; - } else if (value == 0xE) { - o << 'E'; - } else if (value == 0xF) { - o << 'F'; - } -} - // Dump the supplied AST_ExprValue to the ostream o. static void dump_expr_val (ACE_OSTREAM_TYPE &o, AST_Expression::AST_ExprValue *ev) @@ -2837,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: @@ -2852,8 +2832,11 @@ dump_expr_val (ACE_OSTREAM_TYPE &o, AST_Expression::AST_ExprValue *ev) o << ev->u.wcval; break; case AST_Expression::EV_octet: - dump_nibble (o, ev->u.wcval); - dump_nibble (o, ev->u.wcval >> 4); + { + char buffer[5] = {0}; + ACE_OS::sprintf (buffer, "0x%02x", ev->u.oval); + o << &buffer[0]; + } break; case AST_Expression::EV_bool: o << (ev->u.bval == true ? "TRUE" : "FALSE"); @@ -2868,7 +2851,6 @@ dump_expr_val (ACE_OSTREAM_TYPE &o, AST_Expression::AST_ExprValue *ev) o << "(null string)"; } break; - case AST_Expression::EV_enum: case AST_Expression::EV_longlong: o << ev->u.llval; break; diff --git a/TAO/TAO_IDL/be/be_helper.cpp b/TAO/TAO_IDL/be/be_helper.cpp index 9a8883e71e6c3..09f4943f14c18 100644 --- a/TAO/TAO_IDL/be/be_helper.cpp +++ b/TAO/TAO_IDL/be/be_helper.cpp @@ -543,7 +543,7 @@ TAO_OutStream::print (AST_Expression *expr) * Apparently the workaround is to write it as `VALUE_PLUS_ONE - 1`. */ const bool min_value = value == ACE_INT64_MIN; - if (min_value) value += 1; + if (min_value) ++value; TAO_OutStream::print (ACE_INT64_FORMAT_SPECIFIER_ASCII, value); if (min_value) TAO_OutStream::print (" - 1"); } @@ -612,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 ("0x%x", 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"); @@ -630,7 +630,7 @@ TAO_OutStream::print (AST_Expression *expr) this->TAO_OutStream::print ("%d", ev->u.int8val); break; case AST_Expression::EV_uint8: - this->TAO_OutStream::print ("%u", ev->u.uint8val); + this->TAO_OutStream::print ("%uu", ev->u.uint8val); break; default: break; From 7471fc93d6470e27b102cb28e4f8b50e51e0f9e6 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Mon, 14 Jun 2021 23:13:35 -0500 Subject: [PATCH 12/19] ast_expression.cpp: Add Include for sprintf --- TAO/TAO_IDL/ast/ast_expression.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TAO/TAO_IDL/ast/ast_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp index c3d98464cc27b..6bb6408e84567 100644 --- a/TAO/TAO_IDL/ast/ast_expression.cpp +++ b/TAO/TAO_IDL/ast/ast_expression.cpp @@ -80,7 +80,7 @@ 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" From 800cec49aeaedbf5355557fc1b300a3b7a1be46d Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Tue, 15 Jun 2021 13:35:07 -0500 Subject: [PATCH 13/19] s/Uint/UInt/g --- ACE/ace/CDR_Base.h | 6 +++--- TAO/tao/Basic_Types.h | 12 ++++++------ TAO/tests/IDLv4/explicit_ints/main.cpp | 6 +++--- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ACE/ace/CDR_Base.h b/ACE/ace/CDR_Base.h index 6fb61edfe8ac6..84085cf448274 100644 --- a/ACE/ace/CDR_Base.h +++ b/ACE/ace/CDR_Base.h @@ -210,11 +210,11 @@ class ACE_Export ACE_CDR typedef ACE_INT8 Int8; typedef ACE_UINT8 UInt8; typedef Short Int16; - typedef UShort Uint16; + typedef UShort UInt16; typedef Long Int32; - typedef ULong Uint32; + typedef ULong UInt32; typedef LongLong Int64; - typedef ULongLong Uint64; + typedef ULongLong UInt64; # if ACE_SIZEOF_FLOAT == 4 typedef float Float; diff --git a/TAO/tao/Basic_Types.h b/TAO/tao/Basic_Types.h index 31e9031dd7340..e7b478100376d 100644 --- a/TAO/tao/Basic_Types.h +++ b/TAO/tao/Basic_Types.h @@ -85,20 +85,20 @@ namespace CORBA typedef ACE_CDR::Int16 Int16; typedef Int16 &Int16_out; - typedef ACE_CDR::Uint16 Uint16; - typedef Uint16 &Uint16_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::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 ACE_CDR::UInt64 UInt64; + typedef UInt64 &UInt64_out; //@} typedef TAO::String_var String_var; diff --git a/TAO/tests/IDLv4/explicit_ints/main.cpp b/TAO/tests/IDLv4/explicit_ints/main.cpp index 075608ee54097..5d1aa20081a8b 100644 --- a/TAO/tests/IDLv4/explicit_ints/main.cpp +++ b/TAO/tests/IDLv4/explicit_ints/main.cpp @@ -37,13 +37,13 @@ ACE_TMAIN (int, ACE_TCHAR *[]) 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, "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, "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, "u64_max", u64_max, 18446744073709551615ULL); expect_equals (any_failed, "i64_min", i64_min, (-9223372036854775807 - 1)); expect_equals (any_failed, "i64_max", i64_max, 9223372036854775807); From 65962eedcc372b0d4addf94edea54b810c0e53c2 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Tue, 15 Jun 2021 16:59:29 -0500 Subject: [PATCH 14/19] Isolate IDL4 Ints in TAO Unless IDL4 is Used --- TAO/TAO_IDL/be/be_codegen.cpp | 11 ++++++- TAO/tao/Basic_Types.h | 24 --------------- TAO/tao/Basic_Types_IDLv4.h | 58 +++++++++++++++++++++++++++++++++++ TAO/tao/CDR.h | 10 +++--- TAO/tao/CDR.inl | 8 ++--- 5 files changed, 77 insertions(+), 34 deletions(-) create mode 100644 TAO/tao/Basic_Types_IDLv4.h diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp index 876c01a32e29d..07a3a0db99afd 100644 --- a/TAO/TAO_IDL/be/be_codegen.cpp +++ b/TAO/TAO_IDL/be/be_codegen.cpp @@ -2446,8 +2446,17 @@ TAO_CodeGen::gen_stub_hdr_includes () 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_ << "\n" + "namespace CORBA\n" + "{\n" + " using namespace IDLv4;\n" + "}"; + } // May need ORB_Constants if users check SystemException minor // codes. diff --git a/TAO/tao/Basic_Types.h b/TAO/tao/Basic_Types.h index e7b478100376d..538332cdf93dd 100644 --- a/TAO/tao/Basic_Types.h +++ b/TAO/tao/Basic_Types.h @@ -75,30 +75,6 @@ namespace CORBA typedef ACE_CDR::WChar WChar; typedef WChar &WChar_out; - - typedef ACE_CDR::Int8 Int8; - typedef Int8 &Int8_out; - - typedef ACE_CDR::UInt8 UInt8; - typedef UInt8 &UInt8_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..0b278876e2f72 --- /dev/null +++ b/TAO/tao/Basic_Types_IDLv4.h @@ -0,0 +1,58 @@ +#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; + + typedef ACE_CDR::UInt8 UInt8; + typedef UInt8 &UInt8_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; + //@} + } +} + +TAO_END_VERSIONED_NAMESPACE_DECL + +#include /**/ "ace/post.h" + +#endif /* TAO_BASIC_TYPES_IDLV4_H */ diff --git a/TAO/tao/CDR.h b/TAO/tao/CDR.h index c230463502ada..d2ac02e1a0fab 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" @@ -499,8 +499,8 @@ TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, ACE_OutputCDR::from_std_wstring x); #endif /* ACE_LACKS_STD_WSTRING */ -TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::Int8 x); -TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::UInt8 x); +TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::IDLv4::Int8 x); +TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::IDLv4::UInt8 x); // CDR input operators for CORBA types @@ -540,8 +540,8 @@ TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &os, TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &os, ACE_InputCDR::to_std_wstring x); #endif /* ACE_LACKS_STD_WSTRING */ -TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::Int8 &x); -TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::UInt8 &x); +TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::IDLv4::Int8 &x); +TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::IDLv4::UInt8 &x); TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/CDR.inl b/TAO/tao/CDR.inl index 3ea12fd249d55..24952bb83294b 100644 --- a/TAO/tao/CDR.inl +++ b/TAO/tao/CDR.inl @@ -495,13 +495,13 @@ ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &os, } #endif /* ACE_LACKS_STD_WSTRING */ -ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::Int8 x) +ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::IDLv4::Int8 x) { return os.fragment_stream (ACE_CDR::OCTET_ALIGN, ACE_CDR::OCTET_SIZE) && static_cast (os) << x; } -ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::UInt8 x) +ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::IDLv4::UInt8 x) { return os.fragment_stream (ACE_CDR::OCTET_ALIGN, ACE_CDR::OCTET_SIZE) @@ -638,12 +638,12 @@ ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, } #endif /* ACE_LACKS_STD_WSTRING */ -ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::Int8 &x) +ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::IDLv4::Int8 &x) { return static_cast (is) >> x; } -ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::UInt8 &x) +ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::IDLv4::UInt8 &x) { return static_cast (is) >> x; } From 71f7ce017d977f1c6bd226cdf05266d7dda0622c Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Tue, 15 Jun 2021 17:34:39 -0500 Subject: [PATCH 15/19] Respond to Review of #840 https://github.com/DOCGroup/ACE_TAO/pull/840 --- TAO/TAO_IDL/ast/ast_expression.cpp | 23 ++++++++++++----------- TAO/tests/IDLv4/explicit_ints/main.cpp | 3 ++- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/TAO/TAO_IDL/ast/ast_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp index 6bb6408e84567..36372478e103b 100644 --- a/TAO/TAO_IDL/ast/ast_expression.cpp +++ b/TAO/TAO_IDL/ast/ast_expression.cpp @@ -124,7 +124,7 @@ void AST_Expression::fill_definition_details () { this->pd_defined_in = idl_global->scopes ().depth () > 0 - ? idl_global->scopes().top () + ? idl_global->scopes ().top () : nullptr ; this->pd_line = idl_global->lineno (); this->pd_file_name = idl_global->filename (); @@ -854,11 +854,11 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->et = AST_Expression::EV_long; return ev; case AST_Expression::EV_int8: - ev->u.lval = static_cast(ev->u.int8val); + 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->u.lval = static_cast (ev->u.uint8val); ev->et = t; return ev; default: @@ -1867,7 +1867,7 @@ AST_Expression::eval_bin_op (AST_Expression::EvalKind ek) return nullptr; } - const ExprType expr_type = eval_kind_to_expr_type (ek); + ExprType const expr_type = eval_kind_to_expr_type (ek); if (expr_type == EV_none) return nullptr; ACE_NEW_RETURN (retval, @@ -2111,7 +2111,7 @@ AST_Expression::eval_bit_op (AST_Expression::EvalKind ek) return nullptr; } - const ExprType expr_type = eval_kind_to_expr_type (ek); + ExprType const expr_type = eval_kind_to_expr_type (ek); if (expr_type == EV_none) return nullptr; ACE_NEW_RETURN (retval, @@ -2688,7 +2688,7 @@ AST_Expression::evaluate (EvalKind ek) bool AST_Expression::operator== (AST_Expression *vc) { - return compare(vc); + return compare (vc); } bool @@ -2702,7 +2702,7 @@ AST_Expression::compare (AST_Expression *vc) this->evaluate (EK_const); vc->evaluate (EK_const); - if (pd_ev == nullptr || vc->ev() == nullptr) + if (pd_ev == nullptr || vc->ev () == nullptr) { return false; } @@ -2721,7 +2721,7 @@ AST_Expression::compare (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: @@ -2833,9 +2833,10 @@ dump_expr_val (ACE_OSTREAM_TYPE &o, AST_Expression::AST_ExprValue *ev) break; case AST_Expression::EV_octet: { - char buffer[5] = {0}; - ACE_OS::sprintf (buffer, "0x%02x", ev->u.oval); - o << &buffer[0]; + std::ios saved (nullptr); + 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: diff --git a/TAO/tests/IDLv4/explicit_ints/main.cpp b/TAO/tests/IDLv4/explicit_ints/main.cpp index 5d1aa20081a8b..d7f652da17e48 100644 --- a/TAO/tests/IDLv4/explicit_ints/main.cpp +++ b/TAO/tests/IDLv4/explicit_ints/main.cpp @@ -1,5 +1,6 @@ #include "testC.h" +#include "ace/OS_NS_stdlib.h" #include "ace/OS_main.h" #include "ace/streams.h" @@ -75,5 +76,5 @@ ACE_TMAIN (int, ACE_TCHAR *[]) expect_equals (any_failed, "i8_e8", i8_e8, 16); expect_equals (any_failed, "i8_e9", i8_e9, 8); - return any_failed ? 1 : 0; + return any_failed ? EXIT_SUCCESS : EXIT_FAILURE; } From b489eefef18d6c538d5498350bb732bc51792f50 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Tue, 15 Jun 2021 17:48:47 -0500 Subject: [PATCH 16/19] explicit_ints: Fix Mixup --- TAO/tests/IDLv4/explicit_ints/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TAO/tests/IDLv4/explicit_ints/main.cpp b/TAO/tests/IDLv4/explicit_ints/main.cpp index d7f652da17e48..cff84c84463ea 100644 --- a/TAO/tests/IDLv4/explicit_ints/main.cpp +++ b/TAO/tests/IDLv4/explicit_ints/main.cpp @@ -76,5 +76,5 @@ ACE_TMAIN (int, ACE_TCHAR *[]) expect_equals (any_failed, "i8_e8", i8_e8, 16); expect_equals (any_failed, "i8_e9", i8_e9, 8); - return any_failed ? EXIT_SUCCESS : EXIT_FAILURE; + return any_failed ? EXIT_FAILURE : EXIT_SUCCESS; } From 2ed7fe7c1c6492c7f920581ec3ac8e7ec4278efd Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Mon, 21 Jun 2021 20:22:55 -0500 Subject: [PATCH 17/19] Support int8/uint8 Sequences and Arrays --- ACE/ace/CDR_Stream.h | 32 +++- ACE/ace/CDR_Stream.inl | 77 +++++--- TAO/TAO_IDL/ast/ast_expression.cpp | 6 +- TAO/TAO_IDL/ast/ast_sequence.cpp | 13 ++ TAO/TAO_IDL/be/be_predefined_type.cpp | 8 + TAO/TAO_IDL/be/be_sequence.cpp | 164 ++++++------------ .../be/be_visitor_any_extracted_type_decl.cpp | 10 ++ TAO/TAO_IDL/be/be_visitor_array/cdr_op_cs.cpp | 12 ++ 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_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/include/ast_sequence.h | 6 + TAO/tao/.gitignore | 41 +++-- TAO/tao/Basic_Types.h | 18 ++ TAO/tao/Basic_Types_IDLv4.h | 20 +-- TAO/tao/Bounded_Sequence_CDR_T.h | 71 +++++++- TAO/tao/Bounded_Value_Sequence_T.h | 2 +- TAO/tao/CDR.h | 4 - TAO/tao/CDR.inl | 23 --- 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/test.idl | 45 +++++ 26 files changed, 571 insertions(+), 267 deletions(-) diff --git a/ACE/ace/CDR_Stream.h b/ACE/ace/CDR_Stream.h index 9ac1f49c55b5a..4fbe13c3f7e02 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, @@ -795,6 +807,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 { /** @@ -1392,8 +1416,6 @@ extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_CDR::Double x); extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, const ACE_CDR::Fixed &x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_CDR::UInt8 x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_CDR::Int8 x); // CDR output operator from helper classes @@ -1423,6 +1445,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_CDR::from_uint8 x); +extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_CDR::from_int8 x); // Not used by CORBA or TAO extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, @@ -1449,8 +1473,6 @@ extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, ACE_CDR::Double &x); extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &is, ACE_CDR::Fixed &x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &os, ACE_CDR::UInt8 &x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &os, ACE_CDR::Int8 &x); // CDR input operator from helper classes @@ -1480,6 +1502,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_CDR::to_uint8 x); +extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &os, ACE_CDR::to_int8 x); ACE_END_VERSIONED_NAMESPACE_DECL diff --git a/ACE/ace/CDR_Stream.inl b/ACE/ace/CDR_Stream.inl index 9e4380fbde1a6..5f0a55da6809a 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) @@ -1374,20 +1398,6 @@ operator<< (ACE_OutputCDR &os, const std::wstring& x) } #endif -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_CDR::UInt8 x) -{ - os.write_uint8 (x); - return (ACE_CDR::Boolean) os.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator<< (ACE_OutputCDR &os, ACE_CDR::Int8 x) -{ - os.write_int8 (x); - return (ACE_CDR::Boolean) os.good_bit (); -} - // The following use the helper classes ACE_INLINE ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_OutputCDR::from_boolean x) @@ -1447,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 @@ -1541,18 +1565,6 @@ operator>> (ACE_InputCDR &is, std::wstring& x) } #endif -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_CDR::UInt8 &x) -{ - return is.read_uint8 (x) && is.good_bit (); -} - -ACE_INLINE ACE_CDR::Boolean -operator>> (ACE_InputCDR &is, ACE_CDR::Int8 &x) -{ - return is.read_int8 (x) && is.good_bit (); -} - // The following use the helper classes ACE_INLINE ACE_CDR::Boolean operator>> (ACE_InputCDR &is, ACE_InputCDR::to_boolean x) @@ -1623,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_expression.cpp b/TAO/TAO_IDL/ast/ast_expression.cpp index 36372478e103b..d1705399e7f33 100644 --- a/TAO/TAO_IDL/ast/ast_expression.cpp +++ b/TAO/TAO_IDL/ast/ast_expression.cpp @@ -768,7 +768,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->et = AST_Expression::EV_ushort; return ev; case AST_Expression::EV_int8: - if (ev->u.int8val < 0) return 0; + if (ev->u.int8val < 0) return nullptr; ev->u.usval = static_cast (ev->u.int8val); ev->et = t; return ev; @@ -949,7 +949,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->et = AST_Expression::EV_ulong; return ev; case AST_Expression::EV_int8: - if (ev->u.int8val < 0) return 0; + if (ev->u.int8val < 0) return nullptr; ev->u.ulval = static_cast (ev->u.int8val); ev->et = t; return ev; @@ -1119,7 +1119,7 @@ coerce_value (AST_Expression::AST_ExprValue *ev, ev->et = AST_Expression::EV_ulonglong; return ev; case AST_Expression::EV_int8: - if (ev->u.int8val < 0) return 0; + if (ev->u.int8val < 0) return nullptr; ev->u.ullval = static_cast (ev->u.int8val); ev->et = t; return ev; diff --git a/TAO/TAO_IDL/ast/ast_sequence.cpp b/TAO/TAO_IDL/ast/ast_sequence.cpp index 94dcbd978930a..d8b57129573cf 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 () const return this->pd_base_type; } +AST_Type * +AST_Sequence::primitive_base_type () const +{ + AST_Type *type_node = dynamic_cast (base_type ()); + if (type_node && type_node->node_type () == AST_Decl::NT_typedef) + { + AST_Typedef *typedef_node = dynamic_cast (type_node); + if (typedef_node) return nullptr; + type_node = typedef_node->primitive_base_type (); + } + return type_node; +} + bool AST_Sequence::unbounded () const { diff --git a/TAO/TAO_IDL/be/be_predefined_type.cpp b/TAO/TAO_IDL/be/be_predefined_type.cpp index 77c2f2490ec4a..09ac9fcb69247 100644 --- a/TAO/TAO_IDL/be/be_predefined_type.cpp +++ b/TAO/TAO_IDL/be/be_predefined_type.cpp @@ -110,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: diff --git a/TAO/TAO_IDL/be/be_sequence.cpp b/TAO/TAO_IDL/be/be_sequence.cpp index e59a718ad6dbf..abb53381d2b06 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 = nullptr; - AST_Type *pbt = nullptr; - - 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: @@ -280,31 +268,16 @@ be_sequence::managed_type () if (this->mt_ == be_sequence::MNG_UNKNOWN) // Not calculated yet. { // Base types. - be_type *bt = nullptr; - be_type *prim_type = nullptr; - - bt = dynamic_cast (this->base_type ()); - - if (!bt) + be_type *const base_type = dynamic_cast (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 +302,7 @@ be_sequence::managed_type () 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 +399,8 @@ be_sequence::instance_name () '\0', NAMEBUFSIZE); - be_type *bt = nullptr; - bt = dynamic_cast (this->base_type ()); - - if (bt == nullptr) + be_type *const prim_type = dynamic_cast (primitive_base_type ()); + if (!prim_type) { ACE_ERROR ((LM_ERROR, "(%N:%l) be_visitor_sequence_ch::" @@ -439,18 +410,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,19 +580,8 @@ be_sequence::gen_base_class_name (TAO_OutStream *os, break; case be_sequence::MNG_STRING: { - be_type *prim_type = nullptr; - 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 - { - prim_type = elem; - } - - if (prim_type->node_type () == AST_Decl::NT_string) + be_type *const prim_type = dynamic_cast (primitive_base_type ()); + if (prim_type && prim_type->node_type () == AST_Decl::NT_string) { be_string *str = dynamic_cast (prim_type); @@ -680,19 +628,8 @@ be_sequence::gen_base_class_name (TAO_OutStream *os, break; case be_sequence::MNG_WSTRING: { - be_type *prim_type = nullptr; - 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 - { - prim_type = elem; - } - - if (prim_type->node_type () == AST_Decl::NT_wstring) + be_type *const prim_type = dynamic_cast (primitive_base_type ()); + if (prim_type && prim_type->node_type () == AST_Decl::NT_wstring) { be_string *str = dynamic_cast (prim_type); @@ -744,46 +681,59 @@ 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 - << ">"; - } + { + const char *tag = ""; + be_type *const base_type = dynamic_cast (primitive_base_type ()); + if (base_type && 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_visitor_any_extracted_type_decl.cpp b/TAO/TAO_IDL/be/be_visitor_any_extracted_type_decl.cpp index e9bc800f9a727..440369d0354da 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 160bf640597dd..c66e3219503b5 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_field/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_field/cdr_op_cs.cpp index 79c2c13aff001..78bdd8dc7cb21 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 498b403d1da36..6727ee57e58fe 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 f3173b1742bd2..9072ec9a74b70 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 () { } +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_branch/cdr_op_cs.cpp b/TAO/TAO_IDL/be/be_visitor_union_branch/cdr_op_cs.cpp index 5fb6a632f95f0..f02c02b38a8eb 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 5dcc239871d01..0642094376011 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 53547d82e7d75..f06e8fbcfc4a1 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/include/ast_sequence.h b/TAO/TAO_IDL/include/ast_sequence.h index 0ad62ce18b04c..6c9688c7d5a74 100644 --- a/TAO/TAO_IDL/include/ast_sequence.h +++ b/TAO/TAO_IDL/include/ast_sequence.h @@ -90,6 +90,12 @@ class TAO_IDL_FE_Export AST_Sequence : public virtual AST_ConcreteType AST_Type *base_type () 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 () const; // Is this sequence bounded or not. diff --git a/TAO/tao/.gitignore b/TAO/tao/.gitignore index 03471db0e1cc2..8a019505f2822 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,19 @@ /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 +/Int8Seq.pidl +/Int8SeqC.cpp +/Int8SeqC.h +/Int8SeqS.h /LongDoubleSeqC.cpp /LongDoubleSeqC.h /LongDoubleSeqS.h @@ -51,15 +58,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 +97,10 @@ /TimeBaseC.cpp /TimeBaseC.h /TimeBaseS.h +/UInt8Seq.pidl +/UInt8SeqC.cpp +/UInt8SeqC.h +/UInt8SeqS.h /ULongLongSeqC.cpp /ULongLongSeqC.h /ULongLongSeqS.h @@ -105,3 +116,7 @@ /WStringSeqC.cpp /WStringSeqC.h /WStringSeqS.h +/config.h.in +/orb_typesC.cpp +/orb_typesC.h +/orb_typesS.h 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 index 0b278876e2f72..e4966777daad1 100644 --- a/TAO/tao/Basic_Types_IDLv4.h +++ b/TAO/tao/Basic_Types_IDLv4.h @@ -26,27 +26,11 @@ namespace CORBA //@{ typedef ACE_CDR::Int8 Int8; typedef Int8 &Int8_out; + struct Int8_tag {}; typedef ACE_CDR::UInt8 UInt8; typedef UInt8 &UInt8_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; + struct UInt8_tag {}; //@} } } 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 d2ac02e1a0fab..c6b7d64b17f78 100644 --- a/TAO/tao/CDR.h +++ b/TAO/tao/CDR.h @@ -499,8 +499,6 @@ TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, ACE_OutputCDR::from_std_wstring x); #endif /* ACE_LACKS_STD_WSTRING */ -TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::IDLv4::Int8 x); -TAO_Export CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::IDLv4::UInt8 x); // CDR input operators for CORBA types @@ -540,8 +538,6 @@ TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &os, TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &os, ACE_InputCDR::to_std_wstring x); #endif /* ACE_LACKS_STD_WSTRING */ -TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::IDLv4::Int8 &x); -TAO_Export CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::IDLv4::UInt8 &x); TAO_END_VERSIONED_NAMESPACE_DECL diff --git a/TAO/tao/CDR.inl b/TAO/tao/CDR.inl index 24952bb83294b..89958d671dd09 100644 --- a/TAO/tao/CDR.inl +++ b/TAO/tao/CDR.inl @@ -495,19 +495,6 @@ ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &os, } #endif /* ACE_LACKS_STD_WSTRING */ -ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::IDLv4::Int8 x) -{ - return os.fragment_stream (ACE_CDR::OCTET_ALIGN, ACE_CDR::OCTET_SIZE) - && static_cast (os) << x; -} - -ACE_INLINE CORBA::Boolean operator<< (TAO_OutputCDR &os, CORBA::IDLv4::UInt8 x) -{ - return - os.fragment_stream (ACE_CDR::OCTET_ALIGN, ACE_CDR::OCTET_SIZE) - && static_cast (os) << x; -} - // **************************************************************** ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, @@ -638,14 +625,4 @@ ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, } #endif /* ACE_LACKS_STD_WSTRING */ -ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::IDLv4::Int8 &x) -{ - return static_cast (is) >> x; -} - -ACE_INLINE CORBA::Boolean operator>> (TAO_InputCDR &is, CORBA::IDLv4::UInt8 &x) -{ - return static_cast (is) >> x; -} - TAO_END_VERSIONED_NAMESPACE_DECL 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 a82aa26e6c44d..3d6893254a309 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 a816e0ce15498..fd742ddc17d36 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 @@ -633,6 +643,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/test.idl b/TAO/tests/IDLv4/explicit_ints/test.idl index eb1e476a80c80..5cf247fba6d90 100644 --- a/TAO/tests/IDLv4/explicit_ints/test.idl +++ b/TAO/tests/IDLv4/explicit_ints/test.idl @@ -1,3 +1,8 @@ +#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; @@ -40,6 +45,15 @@ 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; @@ -49,6 +63,21 @@ struct StructWithInts { 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) { @@ -56,6 +85,14 @@ 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) { @@ -63,4 +100,12 @@ 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 70b28ba29efaed433c3bfbdca14332c39a99883c Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Tue, 29 Jun 2021 18:53:04 -0500 Subject: [PATCH 18/19] Try to Fix Issues with int8/uint8 --- TAO/NEWS | 5 ++ TAO/TAO_IDL/ast/ast_sequence.cpp | 6 +-- TAO/TAO_IDL/be/be_codegen.cpp | 6 ++- TAO/TAO_IDL/be/be_global.cpp | 13 ++++-- TAO/TAO_IDL/be/be_sequence.cpp | 54 ++++++++++++++++++---- TAO/TAO_IDL/be_include/be_global.h | 3 ++ TAO/TAO_IDL/be_include/be_sequence.h | 8 +++- TAO/tao/.gitignore | 2 - TAO/tao/AnyTypeCode/AnyTypeCode.mpc | 7 ++- TAO/tao/AnyTypeCode/TypeCode_Constants.cpp | 2 + TAO/tao/AnyTypeCode/TypeCode_Constants.h | 2 + TAO/tao/Int8Seq.pidl | 11 +++++ TAO/tao/UInt8Seq.pidl | 11 +++++ 13 files changed, 108 insertions(+), 22 deletions(-) create mode 100644 TAO/tao/Int8Seq.pidl create mode 100644 TAO/tao/UInt8Seq.pidl diff --git a/TAO/NEWS b/TAO/NEWS index b99341d249c30..eaa44155c4aa9 100644 --- a/TAO/NEWS +++ b/TAO/NEWS @@ -1,6 +1,11 @@ USER VISIBLE CHANGES BETWEEN TAO-3.0.2 and TAO-3.0.3 ==================================================== +. 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-3.0.1 and TAO-3.0.2 ==================================================== diff --git a/TAO/TAO_IDL/ast/ast_sequence.cpp b/TAO/TAO_IDL/ast/ast_sequence.cpp index d8b57129573cf..ed33c7094b635 100644 --- a/TAO/TAO_IDL/ast/ast_sequence.cpp +++ b/TAO/TAO_IDL/ast/ast_sequence.cpp @@ -248,11 +248,11 @@ AST_Sequence::base_type () const AST_Type * AST_Sequence::primitive_base_type () const { - AST_Type *type_node = dynamic_cast (base_type ()); + AST_Type *type_node = base_type (); if (type_node && type_node->node_type () == AST_Decl::NT_typedef) { - AST_Typedef *typedef_node = dynamic_cast (type_node); - if (typedef_node) return nullptr; + AST_Typedef *const typedef_node = dynamic_cast (type_node); + if (!typedef_node) return nullptr; type_node = typedef_node->primitive_base_type (); } return type_node; diff --git a/TAO/TAO_IDL/be/be_codegen.cpp b/TAO/TAO_IDL/be/be_codegen.cpp index 07a3a0db99afd..34150c8bd95dc 100644 --- a/TAO/TAO_IDL/be/be_codegen.cpp +++ b/TAO/TAO_IDL/be/be_codegen.cpp @@ -2451,11 +2451,13 @@ TAO_CodeGen::gen_stub_hdr_includes () idl4 ? "tao/Basic_Types_IDLv4.h" : "tao/Basic_Types.h"); if (idl4) { - *client_header_ << "\n" + *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 diff --git a/TAO/TAO_IDL/be/be_global.cpp b/TAO/TAO_IDL/be/be_global.cpp index 2aeaa3f633b99..b29c9a85154fa 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 = nullptr; +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 () : changing_standard_include_files_ (1), skel_export_macro_ (nullptr), @@ -55,8 +60,8 @@ BE_GlobalData::BE_GlobalData () safe_include_ (nullptr), unique_include_ (nullptr), stripped_filename_ (nullptr), - 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_sequence.cpp b/TAO/TAO_IDL/be/be_sequence.cpp index abb53381d2b06..64de99f0e021d 100644 --- a/TAO/TAO_IDL/be/be_sequence.cpp +++ b/TAO/TAO_IDL/be/be_sequence.cpp @@ -118,6 +118,19 @@ be_sequence::base_type () 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 nullptr; + type_node = typedef_node->primitive_base_type (); + } + return type_node; +} + // Helper to create_name. char * be_sequence::gen_name () @@ -268,7 +281,7 @@ be_sequence::managed_type () if (this->mt_ == be_sequence::MNG_UNKNOWN) // Not calculated yet. { // Base types. - be_type *const base_type = dynamic_cast (primitive_base_type ()); + be_type *const base_type = primitive_base_type (); if (!base_type) ACE_ERROR_RETURN ((LM_ERROR, "TAO_IDL (%N:%l) " @@ -399,7 +412,7 @@ be_sequence::instance_name () '\0', NAMEBUFSIZE); - be_type *const prim_type = dynamic_cast (primitive_base_type ()); + be_type *const prim_type = primitive_base_type (); if (!prim_type) { ACE_ERROR ((LM_ERROR, @@ -580,8 +593,16 @@ be_sequence::gen_base_class_name (TAO_OutStream *os, break; case be_sequence::MNG_STRING: { - be_type *const prim_type = dynamic_cast (primitive_base_type ()); - if (prim_type && prim_type->node_type () == AST_Decl::NT_string) + be_type *const prim_type = primitive_base_type (); + if (!prim_type) + { + 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 = dynamic_cast (prim_type); @@ -628,8 +649,16 @@ be_sequence::gen_base_class_name (TAO_OutStream *os, break; case be_sequence::MNG_WSTRING: { - be_type *const prim_type = dynamic_cast (primitive_base_type ()); - if (prim_type && prim_type->node_type () == AST_Decl::NT_wstring) + be_type *const prim_type = primitive_base_type (); + if (!prim_type) + { + 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 = dynamic_cast (prim_type); @@ -708,9 +737,18 @@ be_sequence::gen_base_class_name (TAO_OutStream *os, break; default: { + 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 = ""; - be_type *const base_type = dynamic_cast (primitive_base_type ()); - if (base_type && base_type->node_type () == AST_Decl::NT_pre_defined) + if (base_type->node_type () == AST_Decl::NT_pre_defined) { be_predefined_type *const predefined_type = dynamic_cast (base_type); diff --git a/TAO/TAO_IDL/be_include/be_global.h b/TAO/TAO_IDL/be_include/be_global.h index 01dfa862b7494..a3a4a16d92417 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 (); ~BE_GlobalData (); diff --git a/TAO/TAO_IDL/be_include/be_sequence.h b/TAO/TAO_IDL/be_include/be_sequence.h index 6d2deb8031732..7bce2c9e839f4 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 () 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/.gitignore b/TAO/tao/.gitignore index 8a019505f2822..2e8d674c14808 100644 --- a/TAO/tao/.gitignore +++ b/TAO/tao/.gitignore @@ -33,7 +33,6 @@ /IOPC.cpp /IOPC.h /IOPS.h -/Int8Seq.pidl /Int8SeqC.cpp /Int8SeqC.h /Int8SeqS.h @@ -97,7 +96,6 @@ /TimeBaseC.cpp /TimeBaseC.h /TimeBaseS.h -/UInt8Seq.pidl /UInt8SeqC.cpp /UInt8SeqC.h /UInt8SeqS.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..da113fb0934c2 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 = nullptr; + TypeCode_ptr const _tc_uint8 = nullptr; 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/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 */ From 354b698dd92c075dc01d36bd01fefd56099ce6a5 Mon Sep 17 00:00:00 2001 From: Fred Hornsey Date: Tue, 29 Jun 2021 22:38:26 -0500 Subject: [PATCH 19/19] Fix Issue with No Inlining --- ACE/ace/CDR_Stream.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/ACE/ace/CDR_Stream.h b/ACE/ace/CDR_Stream.h index 4fbe13c3f7e02..a7eb2acecd969 100644 --- a/ACE/ace/CDR_Stream.h +++ b/ACE/ace/CDR_Stream.h @@ -1445,8 +1445,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_CDR::from_uint8 x); -extern ACE_Export ACE_CDR::Boolean operator<< (ACE_OutputCDR &os, ACE_CDR::from_int8 x); +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, @@ -1502,8 +1502,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_CDR::to_uint8 x); -extern ACE_Export ACE_CDR::Boolean operator>> (ACE_InputCDR &os, ACE_CDR::to_int8 x); +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