/* $Id: types_and_functions_add.h,v 1.4 2001/01/18 16:02:51 sbeyer Exp $ $Log: types_and_functions_add.h,v $ Revision 1.4 2001/01/18 16:02:51 sbeyer small bugfixes Revision 1.3 2001/01/12 16:24:50 sbeyer C++-files now use 'class string' instead of 'char *'-stuff Revision 1.2 2001/01/12 09:27:31 sbeyer added support for overload detection in parameters/actuals (parameter/actuals names for any function/type must be unique) made compse_path recursive (now supports all relative paths) Revision 1.1 2001/01/11 16:25:27 sbeyer split types_and_functions (about 900 lines) into the 3 files types_and_functions_add types_and_functions_core types_and_functions_libs */ #ifndef types_and_functions_add_h #define types_and_functions_add_h #include "shared_lists.h" struct defined_var { string name; const knoten *root; defined_var() { root=0; } defined_var(const defined_var &var) { name=var.name; root=var.root; } defined_var(const knoten *_root, const string &_name) { name=_name; root=_root; } }; bool is_var_defined(const list &defined_vars, const string &name, const knoten *&root); void add_var(const knoten *knot, const knoten *type_expression, list &vars); void add_type(const knoten *knot, const knoten *type_expression, const actuals_array &theory_actuals, const params_array ¶ms); void add_function(const knoten *knot, const knoten *expression, const knoten *return_type, const actuals_array &theory_actuals, const params_array& params, bool is_non_recursive_root); void get_pdformals_stern(const knoten *knot, const actuals_array &theory_actuals, params_array& params, const list &vars); #endif // types_and_functions_add_h