aboutsummaryrefslogtreecommitdiff
path: root/include/openvic-dataloader/v2script/AbstractSyntaxTree.hpp
diff options
context:
space:
mode:
author Spartan322 <Megacake1234@gmail.com>2024-05-09 16:06:02 +0200
committer Spartan322 <Megacake1234@gmail.com>2024-06-18 01:31:12 +0200
commitb0c3ba3f91926b0c95625bdbf4aab69269130b13 (patch)
treef15ebc47d6bf370031af28e4bb4814ae30ef46e1 /include/openvic-dataloader/v2script/AbstractSyntaxTree.hpp
parent7b521d6023113372cf6b02e562828273c4040f0e (diff)
Add runtime encoding detection and conversionfix/char-detection
Win-1251/1252 detection is a reduced C++ version of https://github.com/hsivonen/chardetng Add manually-specified encoding fallback Add default system encoding fallback Add error recovery to v2script Add unknown encoding detection warning Remove csv::Parser templating Fix lua files dropping data Update lexy to foonathan/lexy@1e5d99fa3826b1c3c8628d3a11117fb4fb4cc0d0 Remove exclusive reliance on lexy::default_encoding for v2script Move internal concepts to src/openvic-detail/InternalConcepts.hpp Move contents of DetectUtf8.hpp to src/detail/Detect.hpp Move openvic-dataloader/AbstractSyntaxTree.hpp to src Move DiagnosticLogger.hpp to src Move File.hpp to src Move openvic-dataloader/detail/utlity files to openvic-dataloader/detail Add ovdl::utility::type_concat Add ovdl::utility::type_prepend Add ovdl::utility::is_instance_of Overhaul parse error messages
Diffstat (limited to 'include/openvic-dataloader/v2script/AbstractSyntaxTree.hpp')
-rw-r--r--include/openvic-dataloader/v2script/AbstractSyntaxTree.hpp28
1 files changed, 10 insertions, 18 deletions
diff --git a/include/openvic-dataloader/v2script/AbstractSyntaxTree.hpp b/include/openvic-dataloader/v2script/AbstractSyntaxTree.hpp
index 27dbfcb..29e7866 100644
--- a/include/openvic-dataloader/v2script/AbstractSyntaxTree.hpp
+++ b/include/openvic-dataloader/v2script/AbstractSyntaxTree.hpp
@@ -1,12 +1,10 @@
#pragma once
-#include <cstdio>
#include <string_view>
-#include <openvic-dataloader/AbstractSyntaxTree.hpp>
-#include <openvic-dataloader/File.hpp>
#include <openvic-dataloader/NodeLocation.hpp>
-#include <openvic-dataloader/detail/LexyFwdDeclaration.hpp>
+#include <openvic-dataloader/detail/SymbolIntern.hpp>
+#include <openvic-dataloader/detail/Utility.hpp>
#include <dryad/_detail/assert.hpp>
#include <dryad/_detail/config.hpp>
@@ -82,37 +80,34 @@ namespace ovdl::v2script::ast {
};
struct FlatValue : dryad::abstract_node_range<Value, NodeKind::FirstFlatValue, NodeKind::LastFlatValue> {
- AbstractSyntaxTree::symbol_type value() const {
+ SymbolIntern::symbol_type value() const {
return _value;
}
- const char* value(const AbstractSyntaxTree::symbol_interner_type& symbols) const {
+ const char* value(const SymbolIntern::symbol_interner_type& symbols) const {
return _value.c_str(symbols);
}
protected:
- explicit FlatValue(dryad::node_ctor ctor, NodeKind kind, AbstractSyntaxTree::symbol_type value)
+ explicit FlatValue(dryad::node_ctor ctor, NodeKind kind, SymbolIntern::symbol_type value)
: node_base(ctor, kind),
_value(value) {}
protected:
- AbstractSyntaxTree::symbol_type _value;
+ SymbolIntern::symbol_type _value;
};
struct IdentifierValue : dryad::basic_node<NodeKind::IdentifierValue, FlatValue> {
- explicit IdentifierValue(dryad::node_ctor ctor, AbstractSyntaxTree::symbol_type value) : node_base(ctor, value) {}
+ explicit IdentifierValue(dryad::node_ctor ctor, SymbolIntern::symbol_type value) : node_base(ctor, value) {}
};
struct StringValue : dryad::basic_node<NodeKind::StringValue, FlatValue> {
- explicit StringValue(dryad::node_ctor ctor, AbstractSyntaxTree::symbol_type value) : node_base(ctor, value) {}
+ explicit StringValue(dryad::node_ctor ctor, SymbolIntern::symbol_type value) : node_base(ctor, value) {}
};
struct ListValue : dryad::basic_node<NodeKind::ListValue, dryad::container_node<Value>> {
explicit ListValue(dryad::node_ctor ctor, StatementList statements);
- explicit ListValue(dryad::node_ctor ctor, AssignStatementList statements)
- : node_base(ctor) {
- insert_child_list_after(nullptr, statements);
- }
+ explicit ListValue(dryad::node_ctor ctor, AssignStatementList statements);
explicit ListValue(dryad::node_ctor ctor) : ListValue(ctor, StatementList {}) {
}
@@ -171,10 +166,7 @@ namespace ovdl::v2script::ast {
struct FileTree : dryad::basic_node<NodeKind::FileTree, dryad::container_node<Node>> {
explicit FileTree(dryad::node_ctor ctor, StatementList statements);
- explicit FileTree(dryad::node_ctor ctor, AssignStatementList statements) : node_base(ctor) {
- insert_child_list_after(nullptr, statements);
- }
-
+ explicit FileTree(dryad::node_ctor ctor, AssignStatementList statements);
explicit FileTree(dryad::node_ctor ctor) : FileTree(ctor, StatementList {}) {
}