|
header_utils
|
The primary class to store the evaluation environment, declared functions, variables, etc. More...
#include <eval.h>
Public Types | |
| using | self_type |
| using | eval_func |
Public Member Functions | |
| self_type * | get_root_env () const noexcept |
| auto | find_in_user_storage (std::string_view name) |
| value | user_var (std::string_view name) |
| json & | set_user_var (std::string_view name, value val, bool force_local=false) |
| eval_func const * | find_unknown_func_eval () const noexcept |
| eval_func const * | find_func (std::string_view name) const |
| template<typename... ARGS> | |
| json | report_error (std::string_view fmt, ARGS &&... args) |
| value | eval_call (std::vector< value > args) |
| template<typename V> | |
| value | eval (V &&val) |
| template<typename T> | |
| json | safe_eval (T &&value) |
| bool | is_true (json const &val) |
| bool | is_true (value const &val) |
| value | eval_arg (std::vector< value > &args, size_t n, json::value_t type=json::value_t::discarded) |
| void | eval_args (std::vector< value > &args, size_t n) |
| void | eval_args (std::vector< value > &args) |
| template<typename LIB_TYPE> | |
| void | import_lib () |
| template<template< bool > typename LIB_TYPE> | |
| void | import_lib () |
Static Public Member Functions | |
| static void | assert_args (std::span< value const > args, size_t arg_count) |
| static void | assert_args (std::span< value const > args, size_t min_args, size_t max_args) |
| static void | assert_min_args (std::span< value const > args, size_t arg_count) |
| static auto | assert_arg (std::span< value const > args, size_t arg_num, json::value_t type=json::value_t::discarded) |
| template<std::same_as< nlohmann::json::value_t >... T> | |
| static void | assert_args (std::vector< value > args, T... arg_types) |
Public Attributes | |
| self_type * | parent_env |
| std::map< std::string, eval_func, std::less<> > | funcs |
| TODO: How to do const parent envs, or const vars? | |
| eval_func | unknown_func_eval |
| std::function< value(self_type &, std::string_view)> | unknown_var_eval |
| std::function< void(std::string_view)> | error_handler |
| std::map< std::string, json, std::less<> > | user_storage |
| void * | user_data |
| std::map< std::string, eval_func, std::less<> > | prefix_macros |
| std::function< bool(json const &)> | truthiness_function |
| eval('.test') -> eval(prefix_macros['.']('.test')) | |
Static Public Attributes | |
| static constexpr bool | decade_syntax |
| static constexpr bool | sexps_syntax |
The primary class to store the evaluation environment, declared functions, variables, etc.
| using ghassanpl::eval::environment< DECADE_SYNTAX >::eval_func |
| using ghassanpl::eval::environment< DECADE_SYNTAX >::self_type |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinenodiscard |
|
inlinenodiscard |
|
inlinenodiscardnoexcept |
|
inlinenodiscardnoexcept |
|
inline |
|
inline |
|
inlinenodiscard |
|
inlinenodiscard |
|
inline |
|
inline |
|
inline |
|
inlinenodiscard |
|
staticconstexpr |
| std::function<void(std::string_view)> ghassanpl::eval::environment< DECADE_SYNTAX >::error_handler |
| std::map<std::string, eval_func, std::less<> > ghassanpl::eval::environment< DECADE_SYNTAX >::funcs |
| self_type* ghassanpl::eval::environment< DECADE_SYNTAX >::parent_env |
| std::map<std::string, eval_func, std::less<> > ghassanpl::eval::environment< DECADE_SYNTAX >::prefix_macros |
|
staticconstexpr |
| std::function<bool(json const&)> ghassanpl::eval::environment< DECADE_SYNTAX >::truthiness_function |
| eval_func ghassanpl::eval::environment< DECADE_SYNTAX >::unknown_func_eval |
| std::function<value(self_type&, std::string_view)> ghassanpl::eval::environment< DECADE_SYNTAX >::unknown_var_eval |
| void* ghassanpl::eval::environment< DECADE_SYNTAX >::user_data |
| std::map<std::string, json, std::less<> > ghassanpl::eval::environment< DECADE_SYNTAX >::user_storage |