/* file ConvertExpr.cpp * * author: Roland Conybeare */ #include "ConvertExpr.hpp" #include "pretty_expression.hpp" namespace xo { namespace scm { rp ConvertExpr::make(TypeDescr dest_type, rp arg) { return new ConvertExpr(dest_type, std::move(arg)); } std::set ConvertExpr::get_free_variables() const { if (this->arg_) return this->arg_->get_free_variables(); else return std::set(); } void ConvertExpr::display(std::ostream & os) const { os << "valuetype()->short_name()) << xtag("arg", arg_) << ">"; } std::uint32_t ConvertExpr::pretty_print(const ppindentinfo & ppii) const { return ppii.pps()->pretty_struct(ppii, "Convert", rtag("dest_type", print::quot(this->valuetype()->short_name())), refrtag("arg", arg_)); } // ----- ConvertExprAccess ----- rp ConvertExprAccess::make(TypeDescr dest_type, rp arg) { return new ConvertExprAccess(dest_type, std::move(arg)); } rp ConvertExprAccess::make_empty() { return new ConvertExprAccess(nullptr /*dest_type*/, nullptr /*arg*/); } } /*namespace scm*/ } /*namespace xo*/ /* end ConvertExpr.cpp */