Lines Matching refs:os

51 static void osprintf(ostream &os, const char *format, va_list arguments)  in osprintf()  argument
62 os << string_pointer; in osprintf()
71 static void osprintf(ostream &os, const char *format, ...) in osprintf() argument
76 osprintf(os, format, arguments); in osprintf()
86 static void osprintf(ostream &os, int indent, const char *format, ...) in osprintf() argument
90 osprintf(os, "%*s", indent, " "); in osprintf()
92 osprintf(os, format, arguments); in osprintf()
132 ostream &os = cout; in generate() local
134 osprintf(os, "\n"); in generate()
135 osprintf(os, "namespace isl {\n\n"); in generate()
137 osprintf(os, "namespace checked {\n\n"); in generate()
139 print_forward_declarations(os); in generate()
140 osprintf(os, "\n"); in generate()
141 print_declarations(os); in generate()
142 osprintf(os, "\n"); in generate()
143 print_implementations(os); in generate()
146 osprintf(os, "} // namespace checked\n"); in generate()
147 osprintf(os, "} // namespace isl\n"); in generate()
152 void plain_cpp_generator::print_forward_declarations(ostream &os) in print_forward_declarations() argument
156 osprintf(os, "// forward declarations\n"); in print_forward_declarations()
159 print_class_forward_decl(os, ci->second); in print_forward_declarations()
164 void plain_cpp_generator::print_declarations(ostream &os) in print_declarations() argument
173 osprintf(os, "\n"); in print_declarations()
175 print_class(os, ci->second); in print_declarations()
181 void plain_cpp_generator::print_implementations(ostream &os) in print_implementations() argument
190 osprintf(os, "\n"); in print_implementations()
192 print_class_impl(os, ci->second); in print_implementations()
216 osprintf(os, " template <class T>\n"); in print_subclass_type()
217 osprintf(os, " friend %s %s::isa() const;\n", in print_subclass_type()
219 osprintf(os, " friend %s %s::as<%s>() const;\n", in print_subclass_type()
221 osprintf(os, " static const auto type = %s;\n", in print_subclass_type()
238 void plain_cpp_generator::print_class(ostream &os, const isl_class &clazz) in print_class() argument
240 decl_printer printer(os, clazz, *this); in print_class()
244 osprintf(os, "// declarations for isl::%s\n", cppname); in print_class()
247 osprintf(os, "\n"); in print_class()
248 osprintf(os, "class %s ", cppname); in print_class()
250 osprintf(os, ": public %s ", in print_class()
252 osprintf(os, "{\n"); in print_class()
255 osprintf(os, "\n"); in print_class()
256 osprintf(os, "protected:\n"); in print_class()
258 osprintf(os, " %s *ptr = nullptr;\n", name); in print_class()
259 osprintf(os, "\n"); in print_class()
262 osprintf(os, "\n"); in print_class()
263 osprintf(os, "public:\n"); in print_class()
271 osprintf(os, "\n"); in print_class()
276 osprintf(os, "};\n"); in print_class()
281 void plain_cpp_generator::print_class_forward_decl(ostream &os, in print_class_forward_decl() argument
287 osprintf(os, "class %s;\n", cppname); in print_class_forward_decl()
318 os << prefix; in print_class_factory()
319 osprintf(os, "inline %s manage(__isl_take %s *ptr);\n", cppname, name); in print_class_factory()
320 os << prefix; in print_class_factory()
321 osprintf(os, "inline %s manage_copy(__isl_keep %s *ptr);\n", in print_class_factory()
343 osprintf(os, " inline explicit %s(__isl_take %s *ptr);\n", cppname, in print_protected_constructors()
362 osprintf(os, " inline /* implicit */ %s();\n", cppname); in print_public_constructors()
364 osprintf(os, " inline /* implicit */ %s(const %s &obj);\n", in print_public_constructors()
394 osprintf(os, " inline %s &operator=(%s obj);\n", cppname, cppname); in print_copy_assignment()
408 osprintf(os, " inline ~%s();\n", cppname); in print_destructor()
452 osprintf(os, " inline __isl_give %s *copy() const &;\n", name); in print_ptr()
453 osprintf(os, " inline __isl_give %s *copy() && = delete;\n", name); in print_ptr()
454 osprintf(os, " inline __isl_keep %s *get() const;\n", name); in print_ptr()
455 osprintf(os, " inline __isl_give %s *release();\n", name); in print_ptr()
456 osprintf(os, " inline bool is_null() const;\n"); in print_ptr()
473 osprintf(os, indent, in print_isa_type_template()
475 osprintf(os, indent, in print_isa_type_template()
477 osprintf(os, indent, in print_isa_type_template()
480 osprintf(os, indent, in print_isa_type_template()
499 osprintf(os, "private:\n"); in print_downcast()
501 osprintf(os, " inline %s isa_type(T subtype) const;\n", in print_downcast()
503 osprintf(os, "public:\n"); in print_downcast()
504 osprintf(os, " template <class T> inline %s isa() const;\n", in print_downcast()
506 osprintf(os, " template <class T> inline T as() const;\n"); in print_downcast()
515 osprintf(os, " inline %sctx ctx() const;\n", ns.c_str()); in print_ctx()
551 osprintf(os, "%s%s%s(%s)", in print_persistent_callback_prototype()
571 osprintf(os, "void %sset_%s_data(const %s &%s)", in print_persistent_callback_setter_prototype()
594 osprintf(os, ";\n"); in print_persistent_callback_data()
595 osprintf(os, " std::shared_ptr<%s_data> %s_data;\n", in print_persistent_callback_data()
597 osprintf(os, " static inline "); in print_persistent_callback_data()
599 osprintf(os, ";\n"); in print_persistent_callback_data()
600 osprintf(os, " inline "); in print_persistent_callback_data()
602 osprintf(os, ";\n"); in print_persistent_callback_data()
620 osprintf(os, "private:\n"); in print_persistent_callbacks()
621 osprintf(os, " inline %s &copy_callbacks(const %s &obj);\n", in print_persistent_callbacks()
626 osprintf(os, "public:\n"); in print_persistent_callbacks()
643 void plain_cpp_generator::print_class_impl(ostream &os, const isl_class &clazz) in print_class_impl() argument
645 impl_printer printer(os, clazz, *this); in print_class_impl()
648 osprintf(os, "// implementations for isl::%s", cppname); in print_class_impl()
670 static void print_throw_last_error(ostream &os) in print_throw_last_error() argument
672 osprintf(os, " exception::throw_last_error(saved_ctx);\n"); in print_throw_last_error()
678 static void print_throw_invalid(ostream &os, int indent, const char *msg) in print_throw_invalid() argument
680 osprintf(os, indent, in print_throw_invalid()
686 static void print_throw_NULL_input(ostream &os) in print_throw_NULL_input() argument
688 print_throw_invalid(os, 4, "NULL input"); in print_throw_NULL_input()
697 void plain_cpp_generator::print_invalid(ostream &os, int indent, in print_invalid() argument
701 osprintf(os, indent, in print_invalid()
705 print_throw_invalid(os, indent, msg); in print_invalid()
728 osprintf(os, "\n"); in print_stream_insertion()
729 osprintf(os, "inline std::ostream &operator<<(std::ostream &os, "); in print_stream_insertion()
730 osprintf(os, "const %s &obj)\n", cppname); in print_stream_insertion()
731 osprintf(os, "{\n"); in print_stream_insertion()
733 osprintf(os, " char *str = %s_to_str(obj.get());\n", name); in print_stream_insertion()
736 osprintf(os, " if (!str) {\n"); in print_stream_insertion()
737 osprintf(os, " os.setstate(std::ios_base::badbit);\n"); in print_stream_insertion()
738 osprintf(os, " return os;\n"); in print_stream_insertion()
739 osprintf(os, " }\n"); in print_stream_insertion()
741 osprintf(os, " os << str;\n"); in print_stream_insertion()
742 osprintf(os, " free(str);\n"); in print_stream_insertion()
743 osprintf(os, " return os;\n"); in print_stream_insertion()
744 osprintf(os, "}\n"); in print_stream_insertion()
756 osprintf(os, " if (!%s)\n", ptr); in print_check_ptr()
757 print_throw_NULL_input(os); in print_check_ptr()
771 osprintf(os, " auto saved_ctx = %s_get_ctx(%s);\n", in print_check_ptr_start()
787 osprintf(os, " if (!%s)\n", ptr); in print_check_ptr_end()
788 print_throw_last_error(os); in print_check_ptr_end()
817 osprintf(os, "\n"); in print_class_factory()
818 osprintf(os, "%s manage(__isl_take %s *ptr) {\n", cppname, name); in print_class_factory()
820 osprintf(os, " return %s(ptr);\n", cppname); in print_class_factory()
821 osprintf(os, "}\n"); in print_class_factory()
823 osprintf(os, "%s manage_copy(__isl_keep %s *ptr) {\n", cppname, in print_class_factory()
826 osprintf(os, " ptr = %s_copy(ptr);\n", name); in print_class_factory()
828 osprintf(os, " return %s(ptr);\n", cppname); in print_class_factory()
829 osprintf(os, "}\n"); in print_class_factory()
843 osprintf(os, "\n"); in print_protected_constructors()
844 osprintf(os, "%s::%s(__isl_take %s *ptr)\n", cppname, cppname, name); in print_protected_constructors()
846 osprintf(os, " : %s(ptr) {}\n", in print_protected_constructors()
849 osprintf(os, " : ptr(ptr) {}\n"); in print_protected_constructors()
875 osprintf(os, "\n"); in print_public_constructors()
878 osprintf(os, "%s::%s()\n", cppname, cppname); in print_public_constructors()
880 osprintf(os, " : %s() {}\n\n", super.c_str()); in print_public_constructors()
882 osprintf(os, " : ptr(nullptr) {}\n\n"); in print_public_constructors()
883 osprintf(os, "%s::%s(const %s &obj)\n", cppname, cppname, cppname); in print_public_constructors()
885 osprintf(os, " : %s(obj)\n", super.c_str()); in print_public_constructors()
887 osprintf(os, " : ptr(nullptr)\n"); in print_public_constructors()
888 osprintf(os, "{\n"); in print_public_constructors()
891 osprintf(os, " ptr = obj.copy();\n"); in print_public_constructors()
893 osprintf(os, " copy_callbacks(obj);\n"); in print_public_constructors()
896 osprintf(os, "}\n"); in print_public_constructors()
925 osprintf(os, "\n"); in print_method()
927 osprintf(os, "{\n"); in print_method()
935 osprintf(os, " auto res = %s", methodname.c_str()); in print_method()
937 Method::print_arg_list(os, 0, num_params, [&] (int i) { in print_method()
938 method.print_param_use(os, i); in print_method()
940 osprintf(os, ";\n"); in print_method()
944 osprintf(os, " ptr = res;\n"); in print_method()
949 osprintf(os, "}\n"); in print_method()
969 os << name; in print_arg_conversion()
971 os << cpptype << "(" << name << ")"; in print_arg_conversion()
973 os << cpptype << "(ctx(), " << name << ")"; in print_arg_conversion()
999 osprintf(os, "\n"); in print_method()
1001 osprintf(os, "{\n"); in print_method()
1003 osprintf(os, " return "); in print_method()
1004 method.print_call(os, generator.isl_namespace()); in print_method()
1005 method.print_cpp_arg_list(os, [&] (int i) { in print_method()
1010 osprintf(os, ";\n"); in print_method()
1011 osprintf(os, "}\n"); in print_method()
1024 osprintf(os, "\n"); in print_copy_assignment()
1025 osprintf(os, "%s &%s::operator=(%s obj) {\n", cppname, in print_copy_assignment()
1027 osprintf(os, " std::swap(this->ptr, obj.ptr);\n", name); in print_copy_assignment()
1029 osprintf(os, " copy_callbacks(obj);\n"); in print_copy_assignment()
1030 osprintf(os, " return *this;\n"); in print_copy_assignment()
1031 osprintf(os, "}\n"); in print_copy_assignment()
1046 osprintf(os, "\n"); in print_destructor()
1047 osprintf(os, "%s::~%s() {\n", cppname, cppname); in print_destructor()
1048 osprintf(os, " if (ptr)\n"); in print_destructor()
1049 osprintf(os, " %s_free(ptr);\n", name); in print_destructor()
1050 osprintf(os, "}\n"); in print_destructor()
1057 void plain_cpp_generator::print_check_no_persistent_callback(ostream &os, in print_check_no_persistent_callback() argument
1062 osprintf(os, " if (%s_data)\n", callback_name.c_str()); in print_check_no_persistent_callback()
1063 print_invalid(os, 4, "cannot release object with persistent callbacks", in print_check_no_persistent_callback()
1085 osprintf(os, "\n"); in print_ptr()
1086 osprintf(os, "__isl_give %s *%s::copy() const & {\n", name, cppname); in print_ptr()
1087 osprintf(os, " return %s_copy(ptr);\n", name); in print_ptr()
1088 osprintf(os, "}\n\n"); in print_ptr()
1089 osprintf(os, "__isl_keep %s *%s::get() const {\n", name, cppname); in print_ptr()
1090 osprintf(os, " return ptr;\n"); in print_ptr()
1091 osprintf(os, "}\n\n"); in print_ptr()
1092 osprintf(os, "__isl_give %s *%s::release() {\n", name, cppname); in print_ptr()
1094 generator.print_check_no_persistent_callback(os, clazz, *in); in print_ptr()
1095 osprintf(os, " %s *tmp = ptr;\n", name); in print_ptr()
1096 osprintf(os, " ptr = nullptr;\n"); in print_ptr()
1097 osprintf(os, " return tmp;\n"); in print_ptr()
1098 osprintf(os, "}\n\n"); in print_ptr()
1099 osprintf(os, "bool %s::is_null() const {\n", cppname); in print_ptr()
1100 osprintf(os, " return ptr == nullptr;\n"); in print_ptr()
1101 osprintf(os, "}\n"); in print_ptr()
1126 osprintf(os, "\n"); in print_downcast()
1127 osprintf(os, "template <typename T, typename>\n"); in print_downcast()
1128 osprintf(os, "%s %s::isa_type(T subtype) const\n", in print_downcast()
1130 osprintf(os, "{\n"); in print_downcast()
1131 osprintf(os, " if (is_null())\n"); in print_downcast()
1133 osprintf(os, " return boolean();\n"); in print_downcast()
1135 print_throw_NULL_input(os); in print_downcast()
1136 osprintf(os, " return %s(get()) == subtype;\n", in print_downcast()
1138 osprintf(os, "}\n"); in print_downcast()
1140 osprintf(os, "template <class T>\n"); in print_downcast()
1141 osprintf(os, "%s %s::isa() const\n", in print_downcast()
1143 osprintf(os, "{\n"); in print_downcast()
1144 osprintf(os, " return isa_type<decltype(T::type)>(T::type);\n"); in print_downcast()
1145 osprintf(os, "}\n"); in print_downcast()
1147 osprintf(os, "template <class T>\n"); in print_downcast()
1148 osprintf(os, "T %s::as() const\n", cppname); in print_downcast()
1149 osprintf(os, "{\n"); in print_downcast()
1151 osprintf(os, " if (isa<T>().is_false())\n"); in print_downcast()
1153 osprintf(os, " if (!isa<T>())\n"); in print_downcast()
1154 generator.print_invalid(os, 4, "not an object of the requested subtype", in print_downcast()
1156 osprintf(os, " return T(copy());\n"); in print_downcast()
1157 osprintf(os, "}\n"); in print_downcast()
1168 osprintf(os, "\n"); in print_ctx()
1169 osprintf(os, "%sctx %s::ctx() const {\n", ns.c_str(), cppname); in print_ctx()
1170 osprintf(os, " return %sctx(%s_get_ctx(ptr));\n", ns.c_str(), name); in print_ctx()
1171 osprintf(os, "}\n"); in print_ctx()
1185 osprintf(os, "\n"); in print_persistent_callbacks()
1186 osprintf(os, "%s &%s::copy_callbacks(const %s &obj)\n", in print_persistent_callbacks()
1188 osprintf(os, "{\n"); in print_persistent_callbacks()
1192 osprintf(os, " %s_data = obj.%s_data;\n", in print_persistent_callbacks()
1195 osprintf(os, " return *this;\n"); in print_persistent_callbacks()
1196 osprintf(os, "}\n"); in print_persistent_callbacks()
1215 osprintf(os, "\n"); in print_get_method()
1217 osprintf(os, "{\n"); in print_get_method()
1218 osprintf(os, " return %s(", name.c_str()); in print_get_method()
1223 osprintf(os, ", "); in print_get_method()
1224 osprintf(os, "%s", param->getName().str().c_str()); in print_get_method()
1226 osprintf(os, ");\n"); in print_get_method()
1227 osprintf(os, "}\n"); in print_get_method()
1258 osprintf(os, " if ("); in print_argument_validity_check()
1260 osprintf(os, " || "); in print_argument_validity_check()
1263 osprintf(os, "!ptr"); in print_argument_validity_check()
1265 osprintf(os, "%s.is_null()", name_str); in print_argument_validity_check()
1271 osprintf(os, ")\n"); in print_argument_validity_check()
1272 print_throw_NULL_input(os); in print_argument_validity_check()
1296 osprintf(os, " auto saved_ctx = ctx();\n"); in print_save_ctx()
1303 osprintf(os, " auto saved_ctx = %s;\n", name.c_str()); in print_save_ctx()
1313 osprintf(os, " auto saved_ctx = %s.ctx();\n", in print_save_ctx()
1335 osprintf(os, " options_scoped_set_on_error saved_on_error(saved_ctx, " in print_on_error_continue()
1348 static void print_persistent_callback_exceptional_execution_check(ostream &os, in print_persistent_callback_exceptional_execution_check() argument
1357 osprintf(os, " if (%s_data && %s_data->eptr) {\n", in print_persistent_callback_exceptional_execution_check()
1359 osprintf(os, " std::exception_ptr eptr = %s_data->eptr;\n", in print_persistent_callback_exceptional_execution_check()
1361 osprintf(os, " %s_data->eptr = nullptr;\n", in print_persistent_callback_exceptional_execution_check()
1363 osprintf(os, " std::rethrow_exception(eptr);\n"); in print_persistent_callback_exceptional_execution_check()
1364 osprintf(os, " }\n"); in print_persistent_callback_exceptional_execution_check()
1394 print_persistent_callback_exceptional_execution_check(os, method); in print_exceptional_execution_check()
1400 osprintf(os, " if (%s_data.eptr)\n", name.c_str()); in print_exceptional_execution_check()
1401 osprintf(os, " std::rethrow_exception(%s_data.eptr);\n", in print_exceptional_execution_check()
1411 osprintf(os, " if (res < 0)\n"); in print_exceptional_execution_check()
1413 osprintf(os, " if (!res)\n"); in print_exceptional_execution_check()
1414 print_throw_last_error(os); in print_exceptional_execution_check()
1459 osprintf(os, "\n"); in print_set_persistent_callback()
1461 osprintf(os, "\n"); in print_set_persistent_callback()
1462 osprintf(os, "{\n"); in print_set_persistent_callback()
1464 osprintf(os, "}\n\n"); in print_set_persistent_callback()
1468 osprintf(os, "\n"); in print_set_persistent_callback()
1469 osprintf(os, "{\n"); in print_set_persistent_callback()
1471 osprintf(os, " %s_data = std::make_shared<struct %s_data>();\n", in print_set_persistent_callback()
1473 osprintf(os, " %s_data->func = %s;\n", in print_set_persistent_callback()
1475 osprintf(os, " ptr = %s(ptr, &%s, %s_data.get());\n", in print_set_persistent_callback()
1478 osprintf(os, "}\n\n"); in print_set_persistent_callback()
1481 osprintf(os, "{\n"); in print_set_persistent_callback()
1482 osprintf(os, " auto copy = *this;\n"); in print_set_persistent_callback()
1483 osprintf(os, " copy.set_%s_data(%s);\n", in print_set_persistent_callback()
1485 osprintf(os, " return copy;\n"); in print_set_persistent_callback()
1486 osprintf(os, "}\n"); in print_set_persistent_callback()
1517 osprintf(os, " return manage(res)"); in print_method_return()
1520 osprintf(os, ".copy_callbacks(*this)"); in print_method_return()
1522 osprintf(os, ".as<%s>()", rettype_str.c_str()); in print_method_return()
1523 osprintf(os, ";\n"); in print_method_return()
1525 osprintf(os, " return;\n"); in print_method_return()
1527 osprintf(os, " std::string tmp(res);\n"); in print_method_return()
1529 osprintf(os, " free(res);\n"); in print_method_return()
1530 osprintf(os, " return tmp;\n"); in print_method_return()
1532 osprintf(os, " return res;\n"); in print_method_return()
1549 osprintf(os, ";"); in print_full_method_header()
1550 osprintf(os, "\n"); in print_full_method_header()
1590 osprintf(os, indent, "auto ret = %s;\n", call.c_str()); in print_wrapped_call_checked()
1591 osprintf(os, indent, "return ret.release();\n"); in print_wrapped_call_checked()
1638 osprintf(os, indent, "ISL_CPP_TRY {\n"); in print_wrapped_call()
1640 osprintf(os, indent, " %s;\n", call.c_str()); in print_wrapped_call()
1642 osprintf(os, indent, " auto ret = %s;\n", call.c_str()); in print_wrapped_call()
1644 osprintf(os, indent, " return isl_stat_ok;\n"); in print_wrapped_call()
1646 osprintf(os, indent, in print_wrapped_call()
1649 osprintf(os, indent, " return ret.release();\n"); in print_wrapped_call()
1650 osprintf(os, indent, "} ISL_CPP_CATCH_ALL {\n"); in print_wrapped_call()
1651 osprintf(os, indent, " data->eptr = std::current_exception();\n"); in print_wrapped_call()
1653 osprintf(os, indent, " return isl_stat_error;\n"); in print_wrapped_call()
1655 osprintf(os, indent, " return isl_bool_error;\n"); in print_wrapped_call()
1657 osprintf(os, indent, " return NULL;\n"); in print_wrapped_call()
1658 osprintf(os, indent, "}\n"); in print_wrapped_call()
1691 osprintf(os, " struct %s_data {\n", prefix.c_str()); in print_callback_data_decl()
1692 osprintf(os, " %s func;\n", cpp_args.c_str()); in print_callback_data_decl()
1694 osprintf(os, " std::exception_ptr eptr;\n"); in print_callback_data_decl()
1695 osprintf(os, " }"); in print_callback_data_decl()
1774 osprintf(os, indent, in print_callback_body()
1847 osprintf(os, " %s_data = { %s };\n", pname.c_str(), pname.c_str()); in print_callback_local()
1848 osprintf(os, " auto %s_lambda = [](%s) -> %s {\n", in print_callback_local()
1851 osprintf(os, " };\n"); in print_callback_local()