From 2220efd682cf312a5cefd46bf151fc22d128601b Mon Sep 17 00:00:00 2001 From: ToruNiina Date: Tue, 26 Feb 2019 00:26:04 +0900 Subject: [PATCH 1/2] chore: show appvayor status of master branch other branches might be unstable, so they might fail. It is good to show the status of the stable branch, rather than the experimental branches. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 89df499..43b6f8c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ toml11 ====== [![Build Status](https://travis-ci.org/ToruNiina/toml11.svg?branch=master)](https://travis-ci.org/ToruNiina/toml11) -[![Build status](https://ci.appveyor.com/api/projects/status/m2n08a926asvg5mg?svg=true)](https://ci.appveyor.com/project/ToruNiina/toml11) +[![Build status](https://ci.appveyor.com/api/projects/status/m2n08a926asvg5mg/branch/master?svg=true)](https://ci.appveyor.com/project/ToruNiina/toml11/branch/master) [![Version](https://img.shields.io/github/release/ToruNiina/toml11.svg?style=flat)](https://github.com/ToruNiina/toml11/releases) [![License](https://img.shields.io/github/license/ToruNiina/toml11.svg?style=flat)](LICENSE) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.1209136.svg)](https://doi.org/10.5281/zenodo.1209136) From d82814fc86c4afd8ad013239322f83c4788e469f Mon Sep 17 00:00:00 2001 From: Quentin Khan Date: Tue, 26 Feb 2019 14:45:08 +0100 Subject: [PATCH 2/2] Add location to error string in parse_* functions --- toml/parser.hpp | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/toml/parser.hpp b/toml/parser.hpp index 357368f..2b12f2c 100644 --- a/toml/parser.hpp +++ b/toml/parser.hpp @@ -34,7 +34,7 @@ parse_boolean(location& loc) } } loc.iter() = first; //rollback - return err(std::string("[error] toml::parse_boolean: " + return err(format_underline("[error] toml::parse_boolean: ", loc, "the next token is not a boolean")); } @@ -63,7 +63,7 @@ parse_binary_integer(location& loc) return ok(std::make_pair(retval, token.unwrap())); } loc.iter() = first; - return err(std::string("[error] toml::parse_binary_integer:" + return err(format_underline("[error] toml::parse_binary_integer:", loc, "the next token is not an integer")); } @@ -84,7 +84,7 @@ parse_octal_integer(location& loc) return ok(std::make_pair(retval, token.unwrap())); } loc.iter() = first; - return err(std::string("[error] toml::parse_octal_integer:" + return err(format_underline("[error] toml::parse_octal_integer:", loc, "the next token is not an integer")); } @@ -105,7 +105,7 @@ parse_hexadecimal_integer(location& loc) return ok(std::make_pair(retval, token.unwrap())); } loc.iter() = first; - return err(std::string("[error] toml::parse_hexadecimal_integer" + return err(format_underline("[error] toml::parse_hexadecimal_integer", loc, "the next token is not an integer")); } @@ -133,7 +133,7 @@ parse_integer(location& loc) return ok(std::make_pair(retval, token.unwrap())); } loc.iter() = first; - return err(std::string("[error] toml::parse_integer: " + return err(format_underline("[error] toml::parse_integer: ", loc, "the next token is not an integer")); } @@ -222,7 +222,7 @@ parse_floating(location& loc) return ok(std::make_pair(v, token.unwrap())); } loc.iter() = first; - return err(std::string("[error] toml::parse_floating: " + return err(format_underline("[error] toml::parse_floating: ", loc, "the next token is not a float")); } @@ -283,7 +283,7 @@ result parse_escape_sequence(location& loc) const auto first = loc.iter(); if(first == loc.end() || *first != '\\') { - return err(std::string("[error]: toml::parse_escape_sequence: " + return err(format_underline("[error]: toml::parse_escape_sequence: ", loc, "the next token is not an escape sequence \"\\\"")); } ++loc.iter(); @@ -523,7 +523,7 @@ parse_string(location& loc) if(const auto rslt = parse_ml_literal_string(loc)) {return rslt;} if(const auto rslt = parse_basic_string(loc)) {return rslt;} if(const auto rslt = parse_literal_string(loc)) {return rslt;} - return err(std::string("[error] toml::parse_string: " + return err(format_underline("[error] toml::parse_string: ", loc, "the next token is not a string")); } @@ -573,7 +573,7 @@ parse_local_date(location& loc) else { loc.iter() = first; - return err(std::string("[error]: toml::parse_local_date: " + return err(format_underline("[error]: toml::parse_local_date: ", loc, "the next token is not a local_date")); } } @@ -656,7 +656,7 @@ parse_local_time(location& loc) else { loc.iter() = first; - return err(std::string("[error]: toml::parse_local_time: " + return err(format_underline("[error]: toml::parse_local_time: ", loc, "the next token is not a local_time")); } } @@ -699,7 +699,7 @@ parse_local_datetime(location& loc) else { loc.iter() = first; - return err(std::string("[error]: toml::parse_local_datetime: " + return err(format_underline("[error]: toml::parse_local_datetime: ", loc, "the next token is not a local_datetime")); } } @@ -748,7 +748,7 @@ parse_offset_datetime(location& loc) else { loc.iter() = first; - return err(std::string("[error]: toml::parse_offset_datetime: " + return err(format_underline("[error]: toml::parse_offset_datetime: ", loc, "the next token is not a local_datetime")); } } @@ -768,7 +768,7 @@ result parse_simple_key(location& loc) { return ok(bare.unwrap().str()); } - return err(std::string("[error] toml::parse_simple_key: " + return err(format_underline("[error] toml::parse_simple_key: ", loc, "the next token is not a simple key")); } @@ -822,8 +822,7 @@ result, std::string> parse_key(location& loc) { return ok(std::vector(1, smpl.unwrap())); } - return err(std::string("[error] toml::parse_key: " - "the next token is not a key")); + return err(format_underline("[error] toml::parse_key: ", loc, "is not a valid key")); } // forward-decl to implement parse_array and parse_table @@ -1167,7 +1166,7 @@ parse_inline_table(location& loc) table retval; if(!(loc.iter() != loc.end() && *loc.iter() == '{')) { - return err(std::string("[error] toml::parse_inline_table: " + return err(format_underline("[error] toml::parse_inline_table: ", loc, "the next token is not an inline table")); } ++loc.iter(); @@ -1228,7 +1227,7 @@ result parse_value(location& loc) const auto first = loc.iter(); if(first == loc.end()) { - return err(std::string("[error] toml::parse_value: input is empty")); + return err(format_underline("[error] toml::parse_value: input is empty", loc, "")); } if(auto r = parse_string (loc)) {return ok(value(std::move(r.unwrap().first), std::move(r.unwrap().second)));}