void PrettyPrinter::visit(const __Dictionary *p) { _result += "\n"; _result += _indentStr; _result += "<dict>\n"; setIndentLevel(_indentLevel+1); DictElement* element; bool bFirstElement = true; char buf[1000] = {0}; CCDICT_FOREACH(p, element) { if (!bFirstElement) { _result += "\n"; } sprintf(buf, "%s%s: ", _indentStr.c_str(),element->getStrKey()); _result += buf; PrettyPrinter v(_indentLevel); //FIXME:james element->getObject()->acceptVisitor(v); _result += v.getResult(); bFirstElement = false; } setIndentLevel(_indentLevel-1); _result += "\n"; _result += _indentStr; _result += "</dict>"; }
void PrettyPrinter::visit(const __Array *p) { _result += "\n"; _result += _indentStr; _result += "<array>\n"; setIndentLevel(_indentLevel+1); Ref* obj; int i = 0; char buf[50] = {0}; CCARRAY_FOREACH(p, obj) { if (i > 0) { _result += "\n"; } sprintf(buf, "%s%02d: ", _indentStr.c_str(), i); _result += buf; PrettyPrinter v(_indentLevel); //FIXME:james obj->acceptVisitor(v); _result += v.getResult(); i++; } setIndentLevel(_indentLevel-1); _result += "\n"; _result += _indentStr; _result += "</array>"; }
void CCPrettyPrinter::visit(const CCSet *p) { _result += "\n"; _result += _indentStr; _result += "<set>\n"; setIndentLevel(_indentLevel+1); int i = 0; CCSet* tmp = const_cast<CCSet*>(p); CCSetIterator it = tmp->begin(); for (; it != tmp->end(); ++it, ++i) { if (i > 0) { _result += "\n"; } _result += _indentStr.c_str(); CCPrettyPrinter v(_indentLevel); (*it)->acceptVisitor(v); _result += v.getResult(); } setIndentLevel(_indentLevel-1); _result += "\n"; _result += _indentStr; _result += "</set>\n"; }
void TextOutput::setOptions(const Settings& _opt) { option = _opt; debugAssert(option.numColumns > 1); setIndentLevel(indentLevel); newline = (option.newlineStyle == Settings::NEWLINE_WINDOWS) ? "\r\n" : "\n"; }
void TextOutputStream::setOptions(Settings const & _opt) { if (options.numColumns < 2) throw Error(getNameStr() + ": Must specify at least 2 columns in options"); options = _opt; setIndentLevel(indentLevel); newline = (options.newlineStyle == NewlineStyle::WINDOWS ? "\r\n" : "\n"); }
// PrettyPrinter PrettyPrinter::PrettyPrinter(int indentLevel/* = 0 */) { setIndentLevel(indentLevel); }
void TextOutput::popIndent() { setIndentLevel(indentLevel - 1); }
void TextOutput::pushIndent() { setIndentLevel(indentLevel + 1); }