30 lines
587 B
C++
30 lines
587 B
C++
#include <pslang/interpreter/context.hpp>
|
|
#include <pslang/types/print.hpp>
|
|
|
|
namespace pslang::interpreter
|
|
{
|
|
|
|
context empty_context()
|
|
{
|
|
context result;
|
|
result.scope_stack.emplace_back();
|
|
return result;
|
|
}
|
|
|
|
void dump(std::ostream & out, context const & context)
|
|
{
|
|
for (auto const & scope : context.scope_stack)
|
|
{
|
|
for (auto const & variable : scope.variables)
|
|
{
|
|
out << variable.first << " = ";
|
|
print(out, variable.second.value);
|
|
out << " (";
|
|
types::print(out, type_of(variable.second.value));
|
|
out << ")\n";
|
|
}
|
|
}
|
|
std::cout << std::flush;
|
|
}
|
|
|
|
}
|