From 57de57a1def3576c8f6cfa21701f447176527404 Mon Sep 17 00:00:00 2001 From: ToruNiina Date: Thu, 13 Dec 2018 20:37:40 +0900 Subject: [PATCH] improve error message for empty value --- toml/parser.hpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/toml/parser.hpp b/toml/parser.hpp index 697a015..df1e1d9 100644 --- a/toml/parser.hpp +++ b/toml/parser.hpp @@ -954,11 +954,25 @@ parse_key_value_pair(location& loc) return err(std::move(msg)); } + const auto after_kvsp = loc.iter(); // err msg auto val = parse_value(loc); if(!val) { + std::string msg; + loc.iter() = after_kvsp; + if(sequence, maybe, lex_newline>::invoke(loc)) + { + loc.iter() = after_kvsp; + msg = format_underline("[error] toml::parse_key_value_pair: " + "missing value after key-value separator '='", loc, + "expected value, but got nothing"); + } + else + { + msg = val.unwrap_err(); + } loc.iter() = first; - return err(val.unwrap_err()); + return err(msg); } return ok(std::make_pair(std::move(key.unwrap()), std::move(val.unwrap()))); }