/* $Id: types_and_functions.h,v 1.5 2001/01/14 12:32:36 sbeyer Exp $ $Log: types_and_functions.h,v $ Revision 1.5 2001/01/14 12:32:36 sbeyer added full comment to main function Revision 1.4 2001/01/13 17:00:46 sbeyer cosmetic changes... Revision 1.3 2001/01/09 16:27:34 sbeyer *** empty log message *** */ #ifndef types_and_functions_h #define types_and_functions_h #include "backend.h" /* generate_type_and_function_lists resolves all importings (apart from those in the standard libraries 'bitvectors' and 'finite_sets, which are always ignored) in the file 'name' and generates the 3 lists defined in shared_lists.h: defined_types, defined_functions and root_functions the following invariants apply to theses lists after a call: * in all three lists, function/type names are unique (overloading, while allowed in PVS, is not supported here); the name of a type, however, could still be the name of a function * the lists 'defined_types' and 'defined_functions' contain all defined types or functions, respectively * the list 'root_functions' contains only the functions in the root file that are not recursive and that don't have any actuals (only these functions will be tried to synthesize later on) * for each function/type in one of the lists, the names of the actuals and parameters are unique (in PVS, a parameter could shadow an actual; this overloading is not supported here) */ void generate_type_and_function_lists(const char* name); // free_parse_trees removes all generated parse trees // from memory void free_parse_trees(); #endif // types_and_functions_h