From f40fd12e259d3d07631abb2f12fb6e086a9f68f0 Mon Sep 17 00:00:00 2001 From: ToruNiina Date: Mon, 18 Mar 2019 11:09:12 +0900 Subject: [PATCH] refactor: add and rewrite comments --- toml/region.hpp | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/toml/region.hpp b/toml/region.hpp index db830c7..54d9106 100644 --- a/toml/region.hpp +++ b/toml/region.hpp @@ -15,7 +15,7 @@ namespace toml namespace detail { -// helper function to avoid std::string(0, 'c') +// helper function to avoid std::string(0, 'c') or std::string(iter, iter) template std::string make_string(Iterator first, Iterator last) { @@ -28,9 +28,7 @@ inline std::string make_string(std::size_t len, char c) return std::string(len, c); } -// region in a container, normally in a file content. -// shared_ptr points the resource that the iter points. -// combinators returns this. +// region_base is a base class of location and region that are defined below. // it will be used to generate better error messages. struct region_base { @@ -48,16 +46,19 @@ struct region_base virtual std::string line() const {return std::string("unknown line");} virtual std::string line_num() const {return std::string("?");} - virtual std::size_t before() const noexcept {return 0;} + // length of the region virtual std::size_t size() const noexcept {return 0;} + // number of characters in the line before the region + virtual std::size_t before() const noexcept {return 0;} + // number of characters in the line after the region virtual std::size_t after() const noexcept {return 0;} }; -// location in a container, normally in a file content. -// shared_ptr points the resource that the iter points. -// it can be used not only for resource handling, but also error message. -// +// location represents a position in a container, which contains a file content. // it can be considered as a region that contains only one character. +// +// it contains pointer to the file content and iterator that points the current +// location. template struct location final : public region_base { @@ -131,6 +132,10 @@ struct location final : public region_base const_iterator iter_; }; +// region represents a range in a container, which contains a file content. +// +// it contains pointer to the file content and iterator that points the first +// and last location. template struct region final : public region_base {