From 57288f8bbc05df46aac5fef2665400763d5573f3 Mon Sep 17 00:00:00 2001 From: pantor Date: Mon, 21 Aug 2017 19:15:46 +0200 Subject: [PATCH] fix vstudio, declare more const --- src/inja.hpp | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/inja.hpp b/src/inja.hpp index 7d05bd5..14236e6 100644 --- a/src/inja.hpp +++ b/src/inja.hpp @@ -124,7 +124,7 @@ inline Match search(const std::string& input, std::vector regexes, size_t return search_match; } -inline MatchClosed search_closed_on_level(const std::string& input, Regex regex_statement, Regex regex_level_up, Regex regex_level_down, Regex regex_search, Match open_match) { +inline MatchClosed search_closed_on_level(const std::string& input, const Regex regex_statement, const Regex regex_level_up, const Regex regex_level_down, const Regex regex_search, Match open_match) { int level = 0; size_t current_position = open_match.end_position(); @@ -132,7 +132,7 @@ inline MatchClosed search_closed_on_level(const std::string& input, Regex regex_ while (match_delimiter.found()) { current_position = match_delimiter.end_position(); - std::string inner = match_delimiter.str(1); + const std::string inner = match_delimiter.str(1); if (std::regex_match(inner, regex_search) and level == 0) { break; } if (std::regex_match(inner, regex_level_up)) { level += 1; } else if (std::regex_match(inner, regex_level_down)) { level -= 1; } @@ -143,7 +143,7 @@ inline MatchClosed search_closed_on_level(const std::string& input, Regex regex_ return MatchClosed(open_match, match_delimiter); } -inline MatchClosed search_closed(const std::string& input, Regex regex_statement, Regex regex_open, Regex regex_close, Match open_match) { +inline MatchClosed search_closed(const std::string& input, const Regex regex_statement, const Regex regex_open, const Regex regex_close, Match open_match) { return search_closed_on_level(input, regex_statement, regex_open, regex_close, regex_close, open_match); } @@ -257,7 +257,7 @@ public: return element_data; } - json parse_level(std::string input) { + json parse_level(const std::string& input) { json result; std::vector regex_delimiters = get_values(regex_map_delimiters); @@ -365,7 +365,7 @@ public: class Environment { - std::string global_path; + const std::string global_path; Parser parser; @@ -402,36 +402,34 @@ public: Match match_function = match(input, get_values(parser.regex_map_functions)); switch ( static_cast(match_function.regex_number()) ) { case Parser::Function::Upper: { - std::string asdf = match_function.str(1); - std::cout << "input eval variable: " << match_function.std::smatch::str(1) << " " << asdf << std::endl; - json str = eval_variable(match_function.str(1), data); + const json str = eval_variable(match_function.str(1), data); if (not str.is_string()) { throw std::runtime_error("Argument in upper function is not a string."); } std::string data = str.get(); std::transform(data.begin(), data.end(), data.begin(), toupper); return data; } case Parser::Function::Lower: { - json str = eval_variable(match_function.str(1), data); + const json str = eval_variable(match_function.str(1), data); if (not str.is_string()) { throw std::runtime_error("Argument in lower function is not a string."); } std::string data = str.get(); std::transform(data.begin(), data.end(), data.begin(), tolower); return data; } case Parser::Function::Range: { - json number = eval_variable(match_function.str(1), data); + const json number = eval_variable(match_function.str(1), data); if (not number.is_number()) { throw std::runtime_error("Argument in range function is not a number."); } std::vector result(number.get()); std::iota(std::begin(result), std::end(result), 0); return result; } case Parser::Function::Length: { - json list = eval_variable(match_function.str(1), data); + const json list = eval_variable(match_function.str(1), data); if (not list.is_array()) { throw std::runtime_error("Argument in length function is not a list."); } return list.size(); } case Parser::Function::Round: { - json number = eval_variable(match_function.str(1), data); - json precision = eval_variable(match_function.str(2), data); + const json number = eval_variable(match_function.str(1), data); + const json precision = eval_variable(match_function.str(2), data); if (not number.is_number()) { throw std::runtime_error("Argument in length function is not a number."); } if (not precision.is_number()) { throw std::runtime_error("Argument in length function is not a number."); } return std::round(number.get() * std::pow(10.0, precision.get())) / std::pow(10.0, precision.get()); @@ -460,8 +458,8 @@ public: return (eval_condition(match_condition.str(1), data) or eval_condition(match_condition.str(2), data)); } case Parser::ConditionOperators::In: { - json item = eval_variable(match_condition.str(1), data); - json list = eval_variable(match_condition.str(2), data); + const json item = eval_variable(match_condition.str(1), data); + const json list = eval_variable(match_condition.str(2), data); return (std::find(list.begin(), list.end(), item) != list.end()); } case Parser::ConditionOperators::Equal: { @@ -484,7 +482,7 @@ public: } } - json var = eval_variable(condition, data, false); + const json var = eval_variable(condition, data, false); if (var.empty()) { return false; } else if (var.is_boolean()) { return var; } else if (var.is_number()) { return (var != 0); }