aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-dataloader/detail
diff options
context:
space:
mode:
author George L. Albany <Megacake1234@gmail.com>2024-05-13 22:50:54 +0200
committer GitHub <noreply@github.com>2024-05-13 22:50:54 +0200
commita5a6ff376cf0ff8fa48fcd750c16395b099223a4 (patch)
treec0b7aa641b72b5f2650691cba22d17de335622f6 /src/openvic-dataloader/detail
parent725310939d2b324d79ea4193a72000e21dcc1a2a (diff)
parent458180da5e61887cd9f820e573f307d0a640128d (diff)
Merge pull request #44 from OpenVicProject/fix/error-handling
Fix bugs in #37
Diffstat (limited to 'src/openvic-dataloader/detail')
-rw-r--r--src/openvic-dataloader/detail/Parser.cpp7
-rw-r--r--src/openvic-dataloader/detail/dsl.hpp6
2 files changed, 10 insertions, 3 deletions
diff --git a/src/openvic-dataloader/detail/Parser.cpp b/src/openvic-dataloader/detail/Parser.cpp
index fd87687..bb5c612 100644
--- a/src/openvic-dataloader/detail/Parser.cpp
+++ b/src/openvic-dataloader/detail/Parser.cpp
@@ -1,3 +1,4 @@
+#include <filesystem>
#include <iostream>
#include <ostream>
@@ -40,4 +41,10 @@ bool BasicParser::has_warning() const {
std::string_view BasicParser::get_file_path() const {
return _file_path;
+}
+
+void BasicParser::set_file_path(std::string_view path) {
+ std::error_code error;
+ std::filesystem::path file_path = std::filesystem::weakly_canonical(path, error);
+ _file_path = file_path.string();
} \ No newline at end of file
diff --git a/src/openvic-dataloader/detail/dsl.hpp b/src/openvic-dataloader/detail/dsl.hpp
index 9b544bc..ccc1af6 100644
--- a/src/openvic-dataloader/detail/dsl.hpp
+++ b/src/openvic-dataloader/detail/dsl.hpp
@@ -97,14 +97,14 @@ namespace ovdl::dsl {
template<
IsParseState ParseType,
- typename Identifier,
+ auto Identifier,
typename RuleValue,
ovdl::detail::string_literal Keyword,
auto Production,
auto Value>
struct keyword_rule {
struct rule_t {
- static constexpr auto keyword = ovdl::dsl::keyword<Keyword>(lexy::dsl::inline_<Identifier>);
+ static constexpr auto keyword = ovdl::dsl::keyword<Keyword>(Identifier);
static constexpr auto rule = lexy::dsl::position(keyword) >> lexy::dsl::equal_sign;
static constexpr auto value = Value;
};
@@ -114,7 +114,7 @@ namespace ovdl::dsl {
template<
IsParseState ParseType,
- typename Identifier,
+ auto Identifier,
typename RuleValue,
ovdl::detail::string_literal Keyword,
auto Production,