3 #include "srell/srell.hpp" 6 #include <kblib/poly_obj.h> 9 namespace fs = std::filesystem;
22 static constexpr std::size_t max_derived_size = 64;
25 template <
typename T,
typename B = ASTNode>
28 static_assert(std::is_base_of_v<ASTNode, B>);
30 template <
typename K,
typename V,
typename B = ASTNode>
33 static_assert(std::is_base_of_v<ASTNode, B>);
35 template <
typename B,
typename... Ts>
37 std::tuple<Ts...> vals;
38 static_assert(std::is_base_of_v<ASTNode, B>);
40 template <
typename... Ts>
44 static constexpr std::size_t max_derived_size =
45 sizeof(ASTNode) +
sizeof(std::string) +
sizeof(std::vector<int>);
52 std::vector<kblib::poly_obj<TExpr>> args;
60 template <
typename... Ts>
61 std::tuple<std::optional<Ts>...> refine()
const;
62 static constexpr std::size_t max_derived_size =
63 sizeof(ASTNode) +
sizeof(std::vector<int>);
75 std::vector<std::variant<std::string, TExpr>> contents;
87 std::map<std::string, List<kblib::poly_obj<replace_stage>>> actions;
90 std::map<std::string, std::string> channel_names;
91 std::map<tname, TString> functions;
92 std::vector<Replacement_group> replacements;
99 auto val()
const ->
String&;
100 std::variant<double, TString> freq;