void printListDocumentation( const Teuchos::ParameterList &pl, std::ostream &os, std::string listNames) { if (listNames.size() == 0) listNames = std::string("top"); Array<std::string> subLists; ParameterList::ConstIterator next = pl.begin(); while (next != pl.end()){ const std::string &name = next->first; const ParameterEntry &entry = pl.getEntry(name); if (entry.isList()){ subLists.append(name); } else{ std::string doc = entry.docString(); os << "List: "<< listNames << ", parameter: " << name << "\n"; if (doc.size()) os << doc << "\n"; } ++next; } for (int i=0; i < subLists.size(); i++){ std::string newListName = listNames + std::string("/") + subLists[i]; const ParameterList &sublist = pl.sublist(subLists[i]); printListDocumentation(sublist, os, newListName); } }