Пример #1
0
std::string
print_constant(const Constant& c)
{
  std::ostringstream str;
  switch (c.index())
  {
    case TYPE_INDEX_DIMENSION:
    str << "dimension: " << get_constant<dimension_index>(c);
    return str.str();
    break;

    case TYPE_INDEX_INTMP:
    return Types::Intmp::get(c).get_str();
    break;

    case TYPE_INDEX_SPECIAL:
    str << "special<" << get_constant<Special>(c) << ">";
    return str.str();
    break;

    case TYPE_INDEX_USTRING:
    str << "\"" << utf32_to_utf8(Types::String::get(c)) << "\"";
    return str.str();
    break;

    case TYPE_INDEX_CALC:
    return "calc";
    break;

    case TYPE_INDEX_DEMAND:
    return "demand";
    break;

    case TYPE_INDEX_INTENSION:
    return "intension";
    break;

    default:
    str << "unknown of index " << c.index();
    return str.str();
    break;
  }
}