1#ifndef ISL_INTERFACE_CPP_H
2#define ISL_INTERFACE_CPP_H
31 const std::string &
name);
41 const list_combiner &combiner,
42 const std::function<
bool(
int i)> &on_arg_skip_next);
44 const std::function<
bool(
int i)> &print_arg_skip_next);
46 const list_combiner &combiner,
47 const std::function<
void(
int i,
int arg)> &on_arg)
const;
49 const std::function<
void(
int i,
int arg)> &print_arg)
const;
51 const std::function<
void(
int i,
int arg)> &on_arg)
const;
53 const std::function<
void(
int i,
int arg)> &on_arg)
const;
55 const std::function<
void(
int i,
int arg)> &print_arg)
const;
58 FunctionDecl *
const fd;
74 const std::function<void()>
after;
99 const std::function<clang::ParmVarDecl *(
int pos)> &
get_param);
102 const std::function<clang::ParmVarDecl *(
int pos)> &
get_param);
103 virtual clang::ParmVarDecl *
get_param(
int pos)
const override;
105 void print_call(std::ostream &os,
const std::string &ns)
const;
118 const std::string &method_name,
const std::string &
enum_name);
134 virtual std::string
isl_bool()
const;
135 virtual std::string
isl_stat()
const;
136 virtual std::string
isl_size()
const;
138 virtual std::string
class_type(
const std::string &cpp_name)
const;
139 virtual std::string
qualified(
int arg,
const std::string &cpp_type)
156 set<FunctionDecl *> exported_functions,
157 set<FunctionDecl *> functions);
170 static string type2cpp(
string type_string);
194 bool next_variant(FunctionDecl *fd, std::vector<bool> &convert);
198 const std::string &
name);
200 const std::string &
name);
207 const std::vector<bool> &convert);
static string type2cpp(const isl_class &clazz)
bool is_implicit_conversion(const Method &cons)
void copy_methods(isl_class &clazz, const std::string &name, const isl_class &super, const function_set &methods)
void set_construction_types()
void set_class_construction_types(isl_class &clazz)
bool is_subclass(QualType subclass_type, const isl_class &class_type)
void copy_super_methods()
std::set< FunctionDecl *, function_name_less > function_set
static unsigned pos(__isl_keep isl_space *space, enum isl_dim_type type)
void print_call(std::ostream &os, const std::string &ns) const
const std::function< clang::ParmVarDecl *(int pos)> get_param_fn
virtual clang::ParmVarDecl * get_param(int pos) const override
const std::string this_type
virtual void print_param_use(ostream &os, int pos) const override
virtual int num_params() const override
const std::function< void()> before
const std::function< void()> between
const std::function< void()> after
void on_fd_arg_list(int start, int end, const list_combiner &combiner, const std::function< void(int i, int arg)> &on_arg) const
void print_fd_arg_list(std::ostream &os, int start, int end, const std::function< void(int i, int arg)> &print_arg) const
static list_combiner print_combiner(std::ostream &os)
virtual int num_params() const
static void on_arg_list(int start, int end, const list_combiner &combiner, const std::function< bool(int i)> &on_arg_skip_next)
static void print_arg_list(std::ostream &os, int start, int end, const std::function< bool(int i)> &print_arg_skip_next)
virtual void print_param_use(ostream &os, int pos) const
bool is_subclass_mutator() const
const std::vector< ParmVarDecl * > callbacks
virtual clang::ParmVarDecl * get_param(int pos) const
void print_cpp_arg_list(std::ostream &os, const std::function< void(int i, int arg)> &print_arg) const
virtual bool param_needs_copy(int pos) const
static list_combiner empty_combiner()
void on_cpp_arg_list(const list_combiner &combiner, const std::function< void(int i, int arg)> &on_arg) const
NoCopyMethod(const Method &method)
virtual bool param_needs_copy(int pos) const override
void print_descendent_overloads(FunctionDecl *fd, const std::string &name)
void print_method_group(const function_set &methods, const std::string &name)
virtual void print_method(const Method &method)=0
virtual bool want_descendent_overloads(const function_set &methods)=0
bool next_variant(FunctionDecl *fd, std::vector< bool > &convert)
void print_constructors()
virtual void print_get_method(FunctionDecl *fd)=0
virtual void print_method(const ConversionMethod &method)=0
cpp_generator & generator
ParmVarDecl * get_param(FunctionDecl *fd, int pos, const std::vector< bool > &convert)
const std::string cppstring
void print_method_header(const Method &method, const cpp_type_printer &type_printer)
void print_method_variants(FunctionDecl *fd, const std::string &name)
std::string generate_callback_type(int arg, QualType type) const
virtual std::string isl_stat() const
virtual std::string isl_bool() const
std::string param(int arg, QualType type) const
std::string return_type(const Method &method) const
std::string generate_callback_args(int arg, QualType type, bool cpp) const
virtual std::string qualified(int arg, const std::string &cpp_type) const
virtual std::string class_type(const std::string &cpp_name) const
virtual std::string isl_namespace() const
std::string isl_type(int arg, QualType type) const
virtual std::string isl_size() const