diff --git a/include/inja/renderer.hpp b/include/inja/renderer.hpp index 8f813b9..02cdeca 100644 --- a/include/inja/renderer.hpp +++ b/include/inja/renderer.hpp @@ -244,49 +244,49 @@ class Renderer : public NodeVisitor { case Op::Add: { const auto args = get_arguments<2>(node); if (args[0]->is_string() && args[1]->is_string()) { - make_result(args[0]->get_ref() + args[1]->get_ref()); + make_result(args[0]->get_ref() + args[1]->get_ref()); } else if (args[0]->is_number_integer() && args[1]->is_number_integer()) { - make_result(args[0]->get() + args[1]->get()); + make_result(args[0]->get() + args[1]->get()); } else { - make_result(args[0]->get() + args[1]->get()); + make_result(args[0]->get() + args[1]->get()); } } break; case Op::Subtract: { const auto args = get_arguments<2>(node); if (args[0]->is_number_integer() && args[1]->is_number_integer()) { - make_result(args[0]->get() - args[1]->get()); + make_result(args[0]->get() - args[1]->get()); } else { - make_result(args[0]->get() - args[1]->get()); + make_result(args[0]->get() - args[1]->get()); } } break; case Op::Multiplication: { const auto args = get_arguments<2>(node); if (args[0]->is_number_integer() && args[1]->is_number_integer()) { - make_result(args[0]->get() * args[1]->get()); + make_result(args[0]->get() * args[1]->get()); } else { - make_result(args[0]->get() * args[1]->get()); + make_result(args[0]->get() * args[1]->get()); } } break; case Op::Division: { const auto args = get_arguments<2>(node); - if (args[1]->get() == 0) { + if (args[1]->get() == 0) { throw_renderer_error("division by zero", node); } - make_result(args[0]->get() / args[1]->get()); + make_result(args[0]->get() / args[1]->get()); } break; case Op::Power: { const auto args = get_arguments<2>(node); - if (args[0]->is_number_integer() && args[1]->get() >= 0) { - int result = static_cast(std::pow(args[0]->get(), args[1]->get())); + if (args[0]->is_number_integer() && args[1]->get() >= 0) { + const auto result = static_cast(std::pow(args[0]->get(), args[1]->get())); make_result(result); } else { - double result = std::pow(args[0]->get(), args[1]->get()); + const auto result = std::pow(args[0]->get(), args[1]->get()); make_result(result); } } break; case Op::Modulo: { const auto args = get_arguments<2>(node); - make_result(args[0]->get() % args[1]->get()); + make_result(args[0]->get() % args[1]->get()); } break; case Op::AtId: { const auto container = get_arguments<1, 0, false>(node)[0]; @@ -313,19 +313,19 @@ class Renderer : public NodeVisitor { } break; case Op::DivisibleBy: { const auto args = get_arguments<2>(node); - const int divisor = args[1]->get(); - make_result((divisor != 0) && (args[0]->get() % divisor == 0)); + const auto divisor = args[1]->get(); + make_result((divisor != 0) && (args[0]->get() % divisor == 0)); } break; case Op::Even: { - make_result(get_arguments<1>(node)[0]->get() % 2 == 0); + make_result(get_arguments<1>(node)[0]->get() % 2 == 0); } break; case Op::Exists: { - auto&& name = get_arguments<1>(node)[0]->get_ref(); + auto&& name = get_arguments<1>(node)[0]->get_ref(); make_result(data_input->contains(json::json_pointer(DataNode::convert_dot_to_ptr(name)))); } break; case Op::ExistsInObject: { const auto args = get_arguments<2>(node); - auto&& name = args[1]->get_ref(); + auto&& name = args[1]->get_ref(); make_result(args[0]->find(name) != args[0]->end()); } break; case Op::First: { @@ -333,10 +333,10 @@ class Renderer : public NodeVisitor { data_eval_stack.push(result); } break; case Op::Float: { - make_result(std::stod(get_arguments<1>(node)[0]->get_ref())); + make_result(std::stod(get_arguments<1>(node)[0]->get_ref())); } break; case Op::Int: { - make_result(std::stoi(get_arguments<1>(node)[0]->get_ref())); + make_result(std::stoi(get_arguments<1>(node)[0]->get_ref())); } break; case Op::Last: { const auto result = &get_arguments<1>(node)[0]->back(); @@ -345,13 +345,13 @@ class Renderer : public NodeVisitor { case Op::Length: { const auto val = get_arguments<1>(node)[0]; if (val->is_string()) { - make_result(val->get_ref().length()); + make_result(val->get_ref().length()); } else { make_result(val->size()); } } break; case Op::Lower: { - std::string result = get_arguments<1>(node)[0]->get(); + auto result = get_arguments<1>(node)[0]->get(); std::transform(result.begin(), result.end(), result.begin(), ::tolower); make_result(std::move(result)); } break; @@ -366,17 +366,17 @@ class Renderer : public NodeVisitor { data_eval_stack.push(&(*result)); } break; case Op::Odd: { - make_result(get_arguments<1>(node)[0]->get() % 2 != 0); + make_result(get_arguments<1>(node)[0]->get() % 2 != 0); } break; case Op::Range: { - std::vector result(get_arguments<1>(node)[0]->get()); + std::vector result(get_arguments<1>(node)[0]->get()); std::iota(result.begin(), result.end(), 0); make_result(std::move(result)); } break; case Op::Round: { const auto args = get_arguments<2>(node); - const int precision = args[1]->get(); - const double result = std::round(args[0]->get() * std::pow(10.0, precision)) / std::pow(10.0, precision); + const int precision = args[1]->get(); + const double result = std::round(args[0]->get() * std::pow(10.0, precision)) / std::pow(10.0, precision); if (precision == 0) { make_result(int(result)); } else { @@ -390,7 +390,7 @@ class Renderer : public NodeVisitor { data_eval_stack.push(result_ptr.get()); } break; case Op::Upper: { - std::string result = get_arguments<1>(node)[0]->get(); + auto result = get_arguments<1>(node)[0]->get(); std::transform(result.begin(), result.end(), result.begin(), ::toupper); make_result(std::move(result)); } break; @@ -450,7 +450,7 @@ class Renderer : public NodeVisitor { } break; case Op::Join: { const auto args = get_arguments<2>(node); - const auto separator = args[1]->get(); + const auto separator = args[1]->get(); std::ostringstream os; std::string sep; for (const auto& value : *args[0]) { diff --git a/single_include/inja/inja.hpp b/single_include/inja/inja.hpp index 458508f..5258d8a 100644 --- a/single_include/inja/inja.hpp +++ b/single_include/inja/inja.hpp @@ -2324,49 +2324,49 @@ class Renderer : public NodeVisitor { case Op::Add: { const auto args = get_arguments<2>(node); if (args[0]->is_string() && args[1]->is_string()) { - make_result(args[0]->get_ref() + args[1]->get_ref()); + make_result(args[0]->get_ref() + args[1]->get_ref()); } else if (args[0]->is_number_integer() && args[1]->is_number_integer()) { - make_result(args[0]->get() + args[1]->get()); + make_result(args[0]->get() + args[1]->get()); } else { - make_result(args[0]->get() + args[1]->get()); + make_result(args[0]->get() + args[1]->get()); } } break; case Op::Subtract: { const auto args = get_arguments<2>(node); if (args[0]->is_number_integer() && args[1]->is_number_integer()) { - make_result(args[0]->get() - args[1]->get()); + make_result(args[0]->get() - args[1]->get()); } else { - make_result(args[0]->get() - args[1]->get()); + make_result(args[0]->get() - args[1]->get()); } } break; case Op::Multiplication: { const auto args = get_arguments<2>(node); if (args[0]->is_number_integer() && args[1]->is_number_integer()) { - make_result(args[0]->get() * args[1]->get()); + make_result(args[0]->get() * args[1]->get()); } else { - make_result(args[0]->get() * args[1]->get()); + make_result(args[0]->get() * args[1]->get()); } } break; case Op::Division: { const auto args = get_arguments<2>(node); - if (args[1]->get() == 0) { + if (args[1]->get() == 0) { throw_renderer_error("division by zero", node); } - make_result(args[0]->get() / args[1]->get()); + make_result(args[0]->get() / args[1]->get()); } break; case Op::Power: { const auto args = get_arguments<2>(node); - if (args[0]->is_number_integer() && args[1]->get() >= 0) { - int result = static_cast(std::pow(args[0]->get(), args[1]->get())); + if (args[0]->is_number_integer() && args[1]->get() >= 0) { + const auto result = static_cast(std::pow(args[0]->get(), args[1]->get())); make_result(result); } else { - double result = std::pow(args[0]->get(), args[1]->get()); + const auto result = std::pow(args[0]->get(), args[1]->get()); make_result(result); } } break; case Op::Modulo: { const auto args = get_arguments<2>(node); - make_result(args[0]->get() % args[1]->get()); + make_result(args[0]->get() % args[1]->get()); } break; case Op::AtId: { const auto container = get_arguments<1, 0, false>(node)[0]; @@ -2393,19 +2393,19 @@ class Renderer : public NodeVisitor { } break; case Op::DivisibleBy: { const auto args = get_arguments<2>(node); - const int divisor = args[1]->get(); - make_result((divisor != 0) && (args[0]->get() % divisor == 0)); + const auto divisor = args[1]->get(); + make_result((divisor != 0) && (args[0]->get() % divisor == 0)); } break; case Op::Even: { - make_result(get_arguments<1>(node)[0]->get() % 2 == 0); + make_result(get_arguments<1>(node)[0]->get() % 2 == 0); } break; case Op::Exists: { - auto&& name = get_arguments<1>(node)[0]->get_ref(); + auto&& name = get_arguments<1>(node)[0]->get_ref(); make_result(data_input->contains(json::json_pointer(DataNode::convert_dot_to_ptr(name)))); } break; case Op::ExistsInObject: { const auto args = get_arguments<2>(node); - auto&& name = args[1]->get_ref(); + auto&& name = args[1]->get_ref(); make_result(args[0]->find(name) != args[0]->end()); } break; case Op::First: { @@ -2413,10 +2413,10 @@ class Renderer : public NodeVisitor { data_eval_stack.push(result); } break; case Op::Float: { - make_result(std::stod(get_arguments<1>(node)[0]->get_ref())); + make_result(std::stod(get_arguments<1>(node)[0]->get_ref())); } break; case Op::Int: { - make_result(std::stoi(get_arguments<1>(node)[0]->get_ref())); + make_result(std::stoi(get_arguments<1>(node)[0]->get_ref())); } break; case Op::Last: { const auto result = &get_arguments<1>(node)[0]->back(); @@ -2425,13 +2425,13 @@ class Renderer : public NodeVisitor { case Op::Length: { const auto val = get_arguments<1>(node)[0]; if (val->is_string()) { - make_result(val->get_ref().length()); + make_result(val->get_ref().length()); } else { make_result(val->size()); } } break; case Op::Lower: { - std::string result = get_arguments<1>(node)[0]->get(); + auto result = get_arguments<1>(node)[0]->get(); std::transform(result.begin(), result.end(), result.begin(), ::tolower); make_result(std::move(result)); } break; @@ -2446,17 +2446,17 @@ class Renderer : public NodeVisitor { data_eval_stack.push(&(*result)); } break; case Op::Odd: { - make_result(get_arguments<1>(node)[0]->get() % 2 != 0); + make_result(get_arguments<1>(node)[0]->get() % 2 != 0); } break; case Op::Range: { - std::vector result(get_arguments<1>(node)[0]->get()); + std::vector result(get_arguments<1>(node)[0]->get()); std::iota(result.begin(), result.end(), 0); make_result(std::move(result)); } break; case Op::Round: { const auto args = get_arguments<2>(node); - const int precision = args[1]->get(); - const double result = std::round(args[0]->get() * std::pow(10.0, precision)) / std::pow(10.0, precision); + const int precision = args[1]->get(); + const double result = std::round(args[0]->get() * std::pow(10.0, precision)) / std::pow(10.0, precision); if (precision == 0) { make_result(int(result)); } else { @@ -2470,7 +2470,7 @@ class Renderer : public NodeVisitor { data_eval_stack.push(result_ptr.get()); } break; case Op::Upper: { - std::string result = get_arguments<1>(node)[0]->get(); + auto result = get_arguments<1>(node)[0]->get(); std::transform(result.begin(), result.end(), result.begin(), ::toupper); make_result(std::move(result)); } break; @@ -2530,7 +2530,7 @@ class Renderer : public NodeVisitor { } break; case Op::Join: { const auto args = get_arguments<2>(node); - const auto separator = args[1]->get(); + const auto separator = args[1]->get(); std::ostringstream os; std::string sep; for (const auto& value : *args[0]) {