From 1a694a8b26a441b12547057d6e0be61a111cced3 Mon Sep 17 00:00:00 2001 From: Spartan322 Date: Sat, 15 Jun 2024 09:40:31 -0400 Subject: Add unit tests Make github action tests run explicit Fix dropping annotation list for Errors Fix potential empty get_errors crashes Fix incorrect csv error behavior Add use_sep for `LineObject` and `std::vector` Remove constexpr of load_from_buffer and load_from_string for parsers Add snitch-org/snitch@d6632123cc8d13bdbc5cd60fd6741b9e0f635e82 Make versioned submodules ignore dirty Add tests/bin/* to gitignore --- src/openvic-dataloader/v2script/AbstractSyntaxTree.cpp | 10 +++++++++- src/openvic-dataloader/v2script/Parser.cpp | 9 ++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) (limited to 'src/openvic-dataloader/v2script') diff --git a/src/openvic-dataloader/v2script/AbstractSyntaxTree.cpp b/src/openvic-dataloader/v2script/AbstractSyntaxTree.cpp index 5a98b40..71985f3 100644 --- a/src/openvic-dataloader/v2script/AbstractSyntaxTree.cpp +++ b/src/openvic-dataloader/v2script/AbstractSyntaxTree.cpp @@ -1,4 +1,4 @@ -#include "openvic-dataloader/v2script/AbstractSyntaxTree.hpp" +#include #include #include @@ -31,6 +31,10 @@ ListValue::ListValue(dryad::node_ctor ctor, AssignStatementList statements) : no } } +ListValue::ListValue(dryad::node_ctor ctor) : node_base(ctor) { + _last_statement = nullptr; +} + FileTree::FileTree(dryad::node_ctor ctor, StatementList statements) : node_base(ctor) { insert_child_list_after(nullptr, statements); if (statements.empty()) { @@ -49,6 +53,10 @@ FileTree::FileTree(dryad::node_ctor ctor, AssignStatementList statements) : node } } +FileTree::FileTree(dryad::node_ctor ctor) : node_base(ctor) { + _last_node = nullptr; +} + std::string FileAbstractSyntaxTree::make_list_visualizer() const { const int INDENT_SIZE = 2; diff --git a/src/openvic-dataloader/v2script/Parser.cpp b/src/openvic-dataloader/v2script/Parser.cpp index 23dada7..a0003b1 100644 --- a/src/openvic-dataloader/v2script/Parser.cpp +++ b/src/openvic-dataloader/v2script/Parser.cpp @@ -76,6 +76,9 @@ struct Parser::ParseHandler final : detail::BasicStateParseHandler()->children())::iterator; + if (!is_valid()) + return dryad::make_node_range(iterator::from_ptr(nullptr), iterator::from_ptr(nullptr)); return parse_state().logger().get_errors(); } }; @@ -149,19 +152,19 @@ constexpr void Parser::_run_load_func(detail::LoadCallback encoding_fallback) { +Parser& Parser::load_from_buffer(const char* data, std::size_t size, std::optional encoding_fallback) { // Type can't be deduced? _run_load_func(std::mem_fn(&ParseHandler::load_buffer_size), data, size, encoding_fallback); return *this; } -constexpr Parser& Parser::load_from_buffer(const char* start, const char* end, std::optional encoding_fallback) { +Parser& Parser::load_from_buffer(const char* start, const char* end, std::optional encoding_fallback) { // Type can't be deduced? _run_load_func(std::mem_fn(&ParseHandler::load_buffer), start, end, encoding_fallback); return *this; } -constexpr Parser& Parser::load_from_string(const std::string_view string, std::optional encoding_fallback) { +Parser& Parser::load_from_string(const std::string_view string, std::optional encoding_fallback) { return load_from_buffer(string.data(), string.size(), encoding_fallback); } -- cgit v1.2.3-56-ga3b1