2 #ifndef Rose_CodeGen_API_h
3 #define Rose_CodeGen_API_h
5 #include "Rose/CodeGen/Driver.h"
6 #include "Rose/CodeGen/Object.h"
12 namespace Rose {
namespace CodeGen {
17 template <
typename CRT>
26 void load(
Driver & driver);
30 void display(std::ostream & out)
const;
33 static std::string
const name;
36 static std::string
const cache;
37 static std::vector<std::string>
const paths;
38 static std::vector<std::string>
const files;
39 static std::vector<std::string>
const flags;
42 static std::map<std::string, a_namespace CRT::* >
const namespaces;
43 static std::map<std::string, a_class CRT::* >
const classes;
44 static std::map<std::string, a_typedef CRT::* >
const typedefs;
45 static std::map<std::string, a_variable CRT::* >
const variables;
46 static std::map<std::string, a_function CRT::* >
const functions;
49 std::set<size_t> file_ids;
51 void build_command_line(std::vector<std::string> & cmdline)
const;
52 void load_headers(
Driver & driver);
53 void load_api(
Driver & driver);
55 template <
typename API>
56 friend struct SymbolScanner;
61 #include "Rose/CodeGen/API.txx"
typename object_helper< otag >::symbol_t symbol_t
The SgSymbol specialization for an Object kind /tparam otag an Object kind.
permits to gather types and symbols to extract an API from a set of headers.
Main namespace for the ROSE library.
facilitates the manipulation of source-files (esp.