From 104ae73748d350b5cc292646f5f851bff96ee947 Mon Sep 17 00:00:00 2001 From: hop311 Date: Sun, 15 Oct 2023 20:38:34 +0100 Subject: allow_empty option for expect_identifier_or_string --- src/openvic-simulation/dataloader/Dataloader.cpp | 6 +++--- src/openvic-simulation/dataloader/NodeTools.cpp | 6 +++--- src/openvic-simulation/dataloader/NodeTools.hpp | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/openvic-simulation/dataloader/Dataloader.cpp b/src/openvic-simulation/dataloader/Dataloader.cpp index 15c7ce7..f2e94d7 100644 --- a/src/openvic-simulation/dataloader/Dataloader.cpp +++ b/src/openvic-simulation/dataloader/Dataloader.cpp @@ -34,7 +34,7 @@ using namespace OpenVic::NodeTools; using namespace ovdl; // Windows and Mac by default act like case insensitive filesystems -constexpr bool path_equals(std::string_view lhs, std::string_view rhs) { +static constexpr bool path_equals(std::string_view lhs, std::string_view rhs) { #if defined(_WIN32) || (defined(__APPLE__) && defined(__MACH__)) constexpr auto ichar_equals = [](unsigned char l, unsigned char r) { return std::tolower(l) == std::tolower(r); @@ -46,7 +46,7 @@ constexpr bool path_equals(std::string_view lhs, std::string_view rhs) { } template -bool filename_equals(const LT& lhs, const RT& rhs) { +static bool filename_equals(const LT& lhs, const RT& rhs) { std::string left, right; if constexpr (std::same_as) left = lhs.filename().string(); @@ -59,7 +59,7 @@ bool filename_equals(const LT& lhs, const RT& rhs) { return path_equals(left, right); } -fs::path _search_for_game_path(fs::path hint_path = {}) { +static fs::path _search_for_game_path(fs::path hint_path = {}) { // Apparently max amount of steam libraries is 8, if incorrect please correct it to the correct max amount constexpr int max_amount_of_steam_libraries = 8; constexpr std::string_view Victoria_2_folder = "Victoria 2"; diff --git a/src/openvic-simulation/dataloader/NodeTools.cpp b/src/openvic-simulation/dataloader/NodeTools.cpp index c2edb18..77eafcd 100644 --- a/src/openvic-simulation/dataloader/NodeTools.cpp +++ b/src/openvic-simulation/dataloader/NodeTools.cpp @@ -43,15 +43,15 @@ node_callback_t NodeTools::expect_string(callback_t callback, return _expect_type(_abstract_string_node_callback(callback, allow_empty)); } -node_callback_t NodeTools::expect_identifier_or_string(callback_t callback) { - return [callback](ast::NodeCPtr node) -> bool { +node_callback_t NodeTools::expect_identifier_or_string(callback_t callback, bool allow_empty) { + return [callback, allow_empty](ast::NodeCPtr node) -> bool { if (node != nullptr) { ast::AbstractStringNode const* cast_node = node->cast_to(); if (cast_node == nullptr) { cast_node = node->cast_to(); } if (cast_node != nullptr) { - return _abstract_string_node_callback(callback, false)(*cast_node); + return _abstract_string_node_callback(callback, allow_empty)(*cast_node); } Logger::error("Invalid node type ", node->get_type(), " when expecting ", ast::IdentifierNode::get_type_static(), " or ", ast::StringNode::get_type_static()); } else { diff --git a/src/openvic-simulation/dataloader/NodeTools.hpp b/src/openvic-simulation/dataloader/NodeTools.hpp index e98a4b0..42e7c5d 100644 --- a/src/openvic-simulation/dataloader/NodeTools.hpp +++ b/src/openvic-simulation/dataloader/NodeTools.hpp @@ -33,7 +33,7 @@ namespace OpenVic { node_callback_t expect_identifier(callback_t callback); node_callback_t expect_string(callback_t callback, bool allow_empty = true); - node_callback_t expect_identifier_or_string(callback_t callback); + node_callback_t expect_identifier_or_string(callback_t callback, bool allow_empty = false); node_callback_t expect_bool(callback_t callback); node_callback_t expect_int_bool(callback_t callback); -- cgit v1.2.3-56-ga3b1