1 #ifndef STAN_LANG_AST_FUN_WRITE_IDX_VIS_DEF_HPP 2 #define STAN_LANG_AST_FUN_WRITE_IDX_VIS_DEF_HPP 3 4 #include <stan/lang/ast.hpp> 5 #include <sstream> 6 #include <string> 7 8 namespace stan { 9 namespace lang { write_idx_vis()10write_idx_vis::write_idx_vis() {} 11 operator ()(const lb_idx & idx) const12std::string write_idx_vis::operator()(const lb_idx& idx) const { 13 std::stringstream ss; 14 ss << idx.lb_.to_string(); 15 ss << ":"; 16 return ss.str(); 17 } 18 operator ()(const lub_idx & idx) const19std::string write_idx_vis::operator()(const lub_idx& idx) const { 20 std::stringstream ss; 21 ss << idx.lb_.to_string(); 22 ss << ":"; 23 ss << idx.ub_.to_string(); 24 return ss.str(); 25 } 26 operator ()(const multi_idx & idx) const27std::string write_idx_vis::operator()(const multi_idx& idx) const { 28 return idx.idxs_.to_string(); 29 } 30 operator ()(const omni_idx & idx) const31std::string write_idx_vis::operator()(const omni_idx& idx) const { 32 return ":"; 33 } 34 operator ()(const ub_idx & idx) const35std::string write_idx_vis::operator()(const ub_idx& idx) const { 36 std::stringstream ss; 37 ss << ":"; 38 ss << idx.ub_.to_string(); 39 return ss.str(); 40 } 41 operator ()(const uni_idx & idx) const42std::string write_idx_vis::operator()(const uni_idx& idx) const { 43 return idx.idx_.to_string(); 44 } 45 46 } // namespace lang 47 } // namespace stan 48 #endif 49