diff options
Diffstat (limited to 'include/openvic-dataloader/detail/BasicParser.hpp')
-rw-r--r-- | include/openvic-dataloader/detail/BasicParser.hpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/include/openvic-dataloader/detail/BasicParser.hpp b/include/openvic-dataloader/detail/BasicParser.hpp new file mode 100644 index 0000000..5493804 --- /dev/null +++ b/include/openvic-dataloader/detail/BasicParser.hpp @@ -0,0 +1,37 @@ +#pragma once + +#include <filesystem> +#include <optional> +#include <string_view> +#include <vector> + +#include <openvic-dataloader/ParseError.hpp> +#include <openvic-dataloader/ParseWarning.hpp> +#include <openvic-dataloader/detail/Concepts.hpp> + +namespace ovdl::detail { + class BasicParser { + public: + BasicParser(); + + void set_error_log_to_null(); + void set_error_log_to_stderr(); + void set_error_log_to_stdout(); + void set_error_log_to(std::basic_ostream<char>& stream); + + bool has_error() const; + bool has_fatal_error() const; + bool has_warning() const; + + const std::vector<ParseError>& get_errors() const; + const std::vector<ParseWarning>& get_warnings() const; + + protected: + std::vector<ParseError> _errors; + std::vector<ParseWarning> _warnings; + + std::reference_wrapper<std::ostream> _error_stream; + const char* _file_path; + bool _has_fatal_error = false; + }; +}
\ No newline at end of file |