/* Copyright (c) 2013 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. Author: Leonardo de Moura */ #include "util/escaped.h" namespace lean { char const * escaped::end() const { if (m_str == 0) return 0; char const * it = m_str; char const * e = m_str; while (*it) { if (!m_trim_nl || *it != '\n') { ++it; e = it; } else { ++it; } } return e; } std::ostream & operator<<(std::ostream & out, escaped const & s) { char const * it = s.m_str; char const * e = s.end(); for (; it != e; ++it) { char c = *it; if (c == '"') { out << '\\'; } out << c; if (c == '\n') { for (unsigned i = 0; i < s.m_indent; i++) out << " "; } } return out; } }