Пример #1
0
void staticArrayStreamer(const ArrayData* ad, std::string& out) {
  if (ad->isVecArray()) out += "vec(";
  else if (ad->isDict()) out += "dict(";
  else if (ad->isKeyset()) out += "keyset(";
  else {
    assertx(ad->isPHPArray());
    if (ad->isVArray()) out += "varray(";
    else if (ad->isDArray()) out += "darray(";
    else out += "array(";
  }

  if (!ad->empty()) {
    bool comma = false;
    for (ArrayIter it(ad); !it.end(); it.next()) {
      if (comma) {
        out += ",";
      } else {
        comma = true;
      }
      Variant key = it.first();

      if (!ad->isVecArray() && !ad->isKeyset()) {
        staticStreamer(key.asTypedValue(), out);
        out += "=>";
      }

      Variant val = it.second();

      staticStreamer(val.asTypedValue(), out);
    }
  }
  out += ")";
}
Пример #2
0
void PreClass::Prop::prettyPrint(std::ostream& out) const {
    out << "Property ";
    if (m_attrs & AttrStatic) {
        out << "static ";
    }
    if (m_attrs & AttrPublic) {
        out << "public ";
    }
    if (m_attrs & AttrProtected) {
        out << "protected ";
    }
    if (m_attrs & AttrPrivate) {
        out << "private ";
    }
    if (m_attrs & AttrPersistent) {
        out << "(persistent) ";
    }
    out << m_preClass->name()->data() << "::" << m_name->data() << " = ";
    if (m_val.m_type == KindOfUninit) {
        out << "<non-scalar>";
    } else {
        std::stringstream ss;
        staticStreamer(&m_val, ss);
        out << ss.str();
    }
    out << std::endl;
}
Пример #3
0
void PreClass::Const::prettyPrint(std::ostream& out) const {
  out << "Constant " << m_preClass->name()->data() << "::" << m_name->data()
      << " = ";
  if (m_val.m_type == KindOfUninit) {
    out << "<non-scalar>";
  } else {
    std::stringstream ss;
    staticStreamer(&m_val, ss);
    out << ss.str();
  }
  out << std::endl;
}