#ifndef RTG_GUARD_BUILTIN_HPP #define RTG_GUARD_BUILTIN_HPP #include #include namespace rtg { namespace builtin { struct literal { std::string name() const { return "@literal"; } shape compute_shape(std::vector) const { RTG_THROW("builtin"); } argument compute(std::vector) const { RTG_THROW("builtin"); } friend std::ostream & operator<<(std::ostream & os, const literal & op) { os << op.name(); return os; } }; struct param { std::string parameter; std::string name() const { return "@param:" + parameter; } shape compute_shape(std::vector) const { RTG_THROW("builtin"); } argument compute(std::vector) const { RTG_THROW("builtin"); } friend std::ostream & operator<<(std::ostream & os, const param & op) { os << op.name(); return os; } }; } // namespace builtin } // namespace rtg #endif