diff options
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 |
commit | a5a6ff376cf0ff8fa48fcd750c16395b099223a4 (patch) | |
tree | c0b7aa641b72b5f2650691cba22d17de335622f6 /src/openvic-dataloader/detail | |
parent | 725310939d2b324d79ea4193a72000e21dcc1a2a (diff) | |
parent | 458180da5e61887cd9f820e573f307d0a640128d (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.cpp | 7 | ||||
-rw-r--r-- | src/openvic-dataloader/detail/dsl.hpp | 6 |
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, |