10 #ifndef ENVIRONMENT_HPP 11 #define ENVIRONMENT_HPP 92 enum EnvResultType { ExpressionType, ProcedureType };
101 EnvResult(EnvResultType t,
Expression e) : type(t), exp(e){};
102 EnvResult(EnvResultType t,
Procedure p) : type(t), proc(p){};
106 std::map<std::string, EnvResult> envmap;
Expression(* Procedure)(const std::vector< Expression > &args)
A Procedure is a C++ function pointer taking a vector of Expressions as arguments and returning an Ex...
Definition: environment.hpp:24
bool is_exp(const Atom &sym) const
Definition: environment.cpp:120
Expression get_exp(const Atom &sym) const
Definition: environment.cpp:127
An expression is a tree of Atoms.
Definition: expression.hpp:22
bool is_proc(const Atom &sym) const
Definition: environment.cpp:155
A class representing the interpreter environment.
Definition: environment.hpp:40
A variant type that may be a Number or Symbol or the default type None.
Definition: atom.hpp:14
void add_exp(const Atom &sym, const Expression &exp)
Definition: environment.cpp:141
bool is_known(const Atom &sym) const
Definition: environment.cpp:114
Procedure get_proc(const Atom &sym) const
Definition: environment.cpp:162
void reset()
Definition: environment.cpp:180
Environment()
Definition: environment.cpp:109