00001 /*! 00002 \file 00003 \brief Type informations.. 00004 \author jaz 00005 */ 00006 00007 #include <lestes/lang/cplus/sem/ss_type.g.hh> 00008 #include <lestes/md/types/ss_type2tm_type.g.hh> 00009 #include <lestes/md/types/tm_data_type_base.g.hh> 00010 #include <lestes/md/types/num_range.g.hh> 00011 #include <lestes/md/types/num_range_getter.g.hh> 00012 #include <lestes/md/types/type_info_base.g.hh> 00013 00014 #include <regex.h> 00015 00016 package(lestes); 00017 package(md); 00018 package(types); 00019 00020 using namespace ::lestes::md::types; 00021 using namespace ::lestes::lang::cplus::sem; 00022 00023 /*! 00024 \brief Gets ranges of given type. 00025 00026 \param type The type. 00027 \return Object representing ranges of the type. 00028 */ 00029 ptr<num_range> type_info_base::get_range_for_numeric_type(ptr<ss_type> type) { 00030 ptr<tm_data_type_base> tm_type = type->accept_ss_type2tm_type_gen_base(ss_type2tm_type::instance()); 00031 return num_range_getter::instance()->get_range(tm_type); 00032 } 00033 00034 00035 00036 /*! 00037 \brief Converts string representing number with octal/hexa/decimal base to decimal based number. 00038 00039 \param value The number to be converted. 00040 \param type Type of value. 00041 \return The converted number. 00042 */ 00043 lstring type_info_base::get_decimal_representation(ucn_string value, ptr<tm_data_type_base> type) { 00044 lassert(type); 00045 ::std::ostringstream oss; 00046 oss << value; 00047 return oss.str(); 00048 } 00049 00050 end_package(types); 00051 end_package(md); 00052 end_package(lestes); 00053
1.5.1-20070107