8#ifndef ADOBE_ISTREAM_HPP
9#define ADOBE_ISTREAM_HPP
29std::istream& getline(std::istream& is, std::string& str);
134 std::streampos line_start = 0, std::streampos position = -1);
139#if !defined(ADOBE_NO_DOCUMENTATION)
146 return getline_proc_m ? (*getline_proc_m)(file_name_m,
line_start_m) : std::string();
153#if !defined(ADOBE_NO_DOCUMENTATION)
171 :
std::logic_error(base.what()) {
176 line_position_set_m = error->line_position_set_m;
178 line_position_set_m.push_back(position);
184 :
std::logic_error(what), line_position_set_m(1, position) {}
187 :
std::logic_error(what), line_position_set_m(1, position) {}
191#if !defined(ADOBE_NO_DOCUMENTATION)
220 typename std::iterator_traits<I>::value_type c(*first);
222 if (c !=
'\n' && c !=
'\r')
227 if (c ==
'\r' && first != last && *first ==
'\n')
243 if (first != last && *first ==
'\n') {
258std::pair<I, std::string>
get_line(I first, I last) {
261 while (first != last && !
is_line_end(first, last)) {
262 result.append(1, *first);
266 return std::make_pair(first, result);
An exception class thrown during parsing failures.
const position_set_t & line_position_set() const
stream_error_t(const std::exception &base, const line_position_t &position)
std::vector< line_position_t > position_set_t
stream_error_t(const std::string &what, const line_position_t &position)
stream_error_t(const char *what, const line_position_t &position)
bool is_line_end(I &first, I last)
std::pair< I, std::string > get_line(I first, I last)
std::ostream & operator<<(std::ostream &s, const extents_t &x)
A type detailing parser position information.
line_position_t(name_t file_path, getline_proc_t getline_proc, int line_number=1, std::streampos line_start=0, std::streampos position=-1)
std::string file_snippet() const
const char * stream_name() const
std::streampos line_start_m
std::streampos position_m
line_position_t(const char *, int line_number=1)
std::function< std::string(name_t, std::streampos)> getline_proc_impl_t
std::shared_ptr< getline_proc_impl_t > getline_proc_t
A character string class for immutable strings.