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()10 write_idx_vis::write_idx_vis() {}
11 
operator ()(const lb_idx & idx) const12 std::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) const19 std::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) const27 std::string write_idx_vis::operator()(const multi_idx& idx) const {
28   return idx.idxs_.to_string();
29 }
30 
operator ()(const omni_idx & idx) const31 std::string write_idx_vis::operator()(const omni_idx& idx) const {
32   return ":";
33 }
34 
operator ()(const ub_idx & idx) const35 std::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) const42 std::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