ast_expression.cpp
来自「这是广泛使用的通信开源项目,对于大容量,高并发的通讯要求完全能够胜任,他广泛可用」· C++ 代码 · 共 2,158 行 · 第 1/5 页
CPP
2,158 行
{
return 0;
}
ev->u.sval = (short) ev->u.ulval;
ev->et = AST_Expression::EV_short;
return ev;
case AST_Expression::EV_longlong:
#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.llval > (ACE_CDR::LongLong) ACE_INT16_MAX
|| ev->u.llval < (ACE_CDR::LongLong) ACE_INT16_MIN)
{
return 0;
}
ev->u.sval = (short) ev->u.llval;
ev->et = AST_Expression::EV_short;
return ev;
#else /* ! defined (ACE_LACKS_LONGLONG_T) */
return 0;
#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_ulonglong:
#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.ullval > (ACE_CDR::ULongLong) ACE_INT16_MAX)
{
return 0;
}
ev->u.sval = (short) ev->u.ullval;
ev->et = AST_Expression::EV_short;
return ev;
#else /* ! defined (ACE_LACKS_LONGLONG_T) */
return 0;
#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
ev->u.sval = (short) ev->u.bval;
ev->et = AST_Expression::EV_short;
return ev;
case AST_Expression::EV_float:
if (ev->u.fval > (float) ACE_INT16_MAX
|| ev->u.fval < (float) ACE_INT16_MIN)
{
return 0;
}
ev->u.sval = (short) ev->u.fval;
ev->et = AST_Expression::EV_short;
return ev;
case AST_Expression::EV_double:
if (ev->u.dval > (double) ACE_INT16_MAX
|| ev->u.dval < (double) ACE_INT16_MIN)
{
return 0;
}
ev->u.sval = (short) ev->u.dval;
ev->et = AST_Expression::EV_short;
return ev;
case AST_Expression::EV_char:
ev->u.sval = (short) ev->u.cval;
ev->et = AST_Expression::EV_short;
return ev;
case AST_Expression::EV_wchar:
if (ev->u.wcval > (ACE_CDR::WChar) ACE_INT16_MAX)
{
return 0;
}
ev->u.sval = (short) ev->u.wcval;
ev->et = AST_Expression::EV_short;
return ev;
case AST_Expression::EV_octet:
ev->u.sval = (short) ev->u.oval;
ev->et = AST_Expression::EV_short;
return ev;
case AST_Expression::EV_longdouble:
case AST_Expression::EV_string:
case AST_Expression::EV_wstring:
case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
case AST_Expression::EV_any:
case AST_Expression::EV_object:
return 0;
}
case AST_Expression::EV_ushort:
switch (ev->et)
{
case AST_Expression::EV_short:
if (ev->u.sval < 0)
{
return 0;
}
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)
{
return 0;
}
ev->u.usval = (unsigned short) ev->u.lval;
ev->et = AST_Expression::EV_ushort;
return ev;
case AST_Expression::EV_ulong:
if (ev->u.ulval > (unsigned long) ACE_UINT16_MAX)
{
return 0;
}
ev->u.usval = (unsigned short) ev->u.ulval;
ev->et = AST_Expression::EV_ushort;
return ev;
case AST_Expression::EV_longlong:
#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.llval > (ACE_CDR::LongLong) ACE_UINT16_MAX
|| ev->u.llval < 0)
{
return 0;
}
ev->u.usval = (unsigned short) ev->u.llval;
ev->et = AST_Expression::EV_ushort;
return ev;
#else /* ! defined (ACE_LACKS_LONGLONG_T) */
return 0;
#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_ulonglong:
#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.ullval > (ACE_CDR::ULongLong) ACE_UINT16_MAX)
{
return 0;
}
ev->u.usval = (unsigned short) ev->u.ullval;
ev->et = AST_Expression::EV_ushort;
return ev;
#else /* ! defined (ACE_LACKS_LONGLONG_T) */
return 0;
#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
ev->u.usval = (unsigned short) ev->u.bval;
ev->et = AST_Expression::EV_ushort;
return ev;
case AST_Expression::EV_float:
if (ev->u.fval < 0.0
|| ev->u.fval > (float) ACE_UINT16_MAX)
{
return 0;
}
ev->u.usval = (unsigned short) ev->u.fval;
ev->et = AST_Expression::EV_ushort;
return ev;
case AST_Expression::EV_double:
if (ev->u.dval < 0.0
|| ev->u.dval > (double) ACE_UINT16_MAX)
{
return 0;
}
ev->u.usval = (unsigned short) ev->u.dval;
ev->et = AST_Expression::EV_ushort;
return ev;
case AST_Expression::EV_char:
if ((signed char) ev->u.cval < 0)
{
return 0;
}
ev->u.usval = (unsigned short) ev->u.cval;
ev->et = AST_Expression::EV_ushort;
return ev;
case AST_Expression::EV_wchar:
ev->u.usval = (unsigned short) ev->u.wcval;
ev->et = AST_Expression::EV_ushort;
return ev;
case AST_Expression::EV_octet:
ev->u.usval = (unsigned short) ev->u.oval;
ev->et = AST_Expression::EV_ushort;
return ev;
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
case AST_Expression::EV_string:
case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
case AST_Expression::EV_any:
case AST_Expression::EV_object:
return 0;
}
case AST_Expression::EV_long:
switch (ev->et)
{
case AST_Expression::EV_short:
ev->u.lval = (long) ev->u.sval;
ev->et = AST_Expression::EV_long;
return ev;
case AST_Expression::EV_ushort:
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)
{
return 0;
}
ev->u.lval = (long) ev->u.ulval;
ev->et = AST_Expression::EV_long;
return ev;
case AST_Expression::EV_longlong:
#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.llval > (ACE_CDR::LongLong) ACE_INT32_MAX
|| ev->u.llval < (ACE_CDR::LongLong) ACE_INT32_MIN)
{
return 0;
}
ev->u.lval = (long) ev->u.llval;
ev->et = AST_Expression::EV_long;
return ev;
#else /* ! defined (ACE_LACKS_LONGLONG_T) */
return 0;
#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_ulonglong:
#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.ullval > (ACE_CDR::ULongLong) ACE_INT32_MAX)
{
return 0;
}
ev->u.lval = (long) ev->u.ullval;
ev->et = AST_Expression::EV_long;
return ev;
#else /* ! defined (ACE_LACKS_LONGLONG_T) */
return 0;
#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
ev->u.lval = (long) ev->u.bval;
ev->et = AST_Expression::EV_long;
return ev;
case AST_Expression::EV_float:
if (ev->u.fval > (float) LONG_MAX
|| ev->u.fval < (float) ACE_INT32_MIN)
{
return 0;
}
ev->u.lval = (long) ev->u.fval;
ev->et = AST_Expression::EV_long;
return ev;
case AST_Expression::EV_double:
if (ev->u.dval > (double) LONG_MAX
|| ev->u.dval < (double) ACE_INT32_MIN)
{
return 0;
}
ev->u.lval = (long) ev->u.dval;
ev->et = AST_Expression::EV_long;
return ev;
case AST_Expression::EV_char:
ev->u.lval = (long) ev->u.cval;
ev->et = AST_Expression::EV_long;
return ev;
case AST_Expression::EV_wchar:
ev->u.lval = (long) ev->u.wcval;
ev->et = AST_Expression::EV_long;
return ev;
case AST_Expression::EV_octet:
ev->u.lval = (long) ev->u.oval;
ev->et = AST_Expression::EV_long;
return ev;
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
case AST_Expression::EV_string:
case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
case AST_Expression::EV_any:
case AST_Expression::EV_object:
return 0;
}
case AST_Expression::EV_ulong:
switch (ev->et)
{
case AST_Expression::EV_short:
if (ev->u.sval < 0)
{
return 0;
}
ev->u.ulval = (unsigned long) ev->u.sval;
ev->et = AST_Expression::EV_ulong;
return ev;
case AST_Expression::EV_ushort:
ev->u.ulval = (unsigned long) ev->u.usval;
ev->et = AST_Expression::EV_ulong;
return ev;
case AST_Expression::EV_long:
if (ev->u.lval < 0)
{
return 0;
}
ev->u.ulval = (unsigned long) ev->u.lval;
ev->et = AST_Expression::EV_ulong;
return ev;
case AST_Expression::EV_ulong:
return ev;
case AST_Expression::EV_longlong:
#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.llval > (ACE_CDR::LongLong) ACE_UINT32_MAX
|| ev->u.llval < 0)
{
return 0;
}
ev->u.ulval = (unsigned long) ev->u.llval;
ev->et = AST_Expression::EV_ulong;
return ev;
#else /* ! defined (ACE_LACKS_LONGLONG_T) */
return NULL;
#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_ulonglong:
#if ! defined (ACE_LACKS_LONGLONG_T)
if (ev->u.ullval > (ACE_CDR::ULongLong) ACE_UINT32_MAX)
{
return 0;
}
ev->u.ulval = (unsigned long) ev->u.ullval;
ev->et = AST_Expression::EV_ulong;
return ev;
#else /* ! defined (ACE_LACKS_LONGLONG_T) */
return 0;
#endif /* ! defined (ACE_LACKS_LONGLONG_T) */
case AST_Expression::EV_bool:
ev->u.ulval = (unsigned long) ev->u.bval;
ev->et = AST_Expression::EV_ulong;
return ev;
case AST_Expression::EV_float:
if (ev->u.fval < 0.0
|| ev->u.fval > (float) ACE_UINT32_MAX)
{
return 0;
}
ev->u.ulval = (unsigned long) ev->u.fval;
ev->et = AST_Expression::EV_ulong;
return ev;
case AST_Expression::EV_double:
if (ev->u.dval < 0.0
|| ev->u.dval > (double) ACE_UINT32_MAX)
{
return 0;
}
ev->u.ulval = (unsigned long) ev->u.dval;
ev->et = AST_Expression::EV_ulong;
return ev;
case AST_Expression::EV_char:
if ((signed char) ev->u.cval < 0)
{
return 0;
}
ev->u.ulval = (unsigned long) ev->u.cval;
ev->et = AST_Expression::EV_ulong;
return ev;
case AST_Expression::EV_wchar:
ev->u.ulval = (unsigned long) ev->u.wcval;
ev->et = AST_Expression::EV_ulong;
return ev;
case AST_Expression::EV_octet:
ev->u.ulval = (unsigned long) ev->u.oval;
ev->et = AST_Expression::EV_ulong;
return ev;
case AST_Expression::EV_longdouble:
case AST_Expression::EV_wstring:
case AST_Expression::EV_string:
case AST_Expression::EV_enum:
case AST_Expression::EV_void:
case AST_Expression::EV_none:
case AST_Expression::EV_any:
case AST_Expression::EV_object:
return 0;
}
case AST_Expression::EV_longlong:
#if ! defined (ACE_LACKS_LONGLONG_T)
switch (ev->et)
{
case AST_Expression::EV_short:
ev->u.llval = (ACE_CDR::LongLong) ev->u.sval;
ev->et = AST_Expression::EV_longlong;
return ev;
case AST_Expression::EV_ushort:
ev->u.llval = (ACE_CDR::LongLong) ev->u.usval;
ev->et = AST_Expression::EV_longlong;
return ev;
case AST_Expression::EV_long:
ev->u.llval = (ACE_CDR::LongLong) ev->u.lval;
ev->et = AST_Expression::EV_longlong;
return ev;
case AST_Expression::EV_ulong:
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)
{
return 0;
}
ev->u.llval = (ACE_CDR::LongLong) ev->u.ullval;
ev->et = AST_Expression::EV_longlong;
return ev;
case AST_Expression::EV_bool:
ev->u.llval = (ACE_CDR::LongLong) ev->u.bval;
ev->et = AST_Expression::EV_longlong;
return ev;
case AST_Expression::EV_float:
if (ev->u.fval > (float) ACE_INT64_MAX
|| ev->u.fval < (float) ACE_INT64_MIN)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?