43 #ifndef CHECK_SYSTEM_TYPE_HPP 44 #define CHECK_SYSTEM_TYPE_HPP static const CustomUnorderedMap< std::string, std::string > rename_function
Associates a function to its original name.
RelationshipType
The relationship type.
This class manages the tree structures extracted from the raw file.
void recursive_examinate(const tree_nodeRef &tn, CustomUnorderedSet< unsigned int > &already_visited) const
Examinate recursively the tree to detect system types and system variables.
static const CustomUnorderedMap< std::string, std::string > undefined_library_function_include
Map undefined library function to corresponding header.
This class contains the base representation for a generic frontend flow step which works on a single ...
REF_FORWARD_DECL(tree_manager)
static const CustomUnorderedMap< std::string, std::string > inclNameToPath
Associates to each system header file its full path.
redefinition of map to manage ordered/unordered structures
Abstract pure class for the tree structure.
CheckSystemType(const ParameterConstRef _parameters, const application_managerRef AppM, unsigned int function_id, const DesignFlowManagerConstRef design_flow_manager)
Constructor.
static std::vector< std::string > systemIncPath
Contains the list of the folders containing the system header files.
absl::flat_hash_map< T, U, Hash, Eq, Alloc > CustomUnorderedMap
static const CustomUnorderedMap< std::string, std::string > rename_types
Associates a type to its original name.
bool already_executed
Already executed.
DesignFlowStep_Status InternalExec() override
Adds the system_flag to the tree_node's of variables and types when necessary.
redefinition of set to manage ordered/unordered structures
const CustomUnorderedSet< std::pair< FrontendFlowStepType, FunctionRelationship > > ComputeFrontendRelationships(const DesignFlowStep::RelationshipType relationship_type) const override
Return the set of analyses in relationship with this design step.
~CheckSystemType() override
Destructor.
const Wrefcount< const DesignFlowManager > design_flow_manager
The design flow manager.
const ParameterConstRef parameters
Set of input parameters.
DesignFlowStep_Status
The status of a step.
bool is_system_include(std::string include) const
Check if an header is a system header.
bool HasToBeExecuted() const override
Check if this step has actually to be executed.
Template definition of refcount.
static void build_include_structures(ParameterConstRef parameters)
Build the include map, the function rename map and library system sets.
Class which system_flag to tree_node of variables and types when necessary.
const unsigned int function_id
The index of the function to be analyzed.
const application_managerRef AppM
The application manager.
static std::string getRealInclName(const std::string &include)
Given the string stored in a srcp of the raw return the correct include name.
static const CustomUnorderedSet< std::string > library_system_includes
The set of headers which contains function which have to be considered library_system.
static const CustomUnorderedSet< std::string > library_system_functions
The set of functions which have to be considered library_system.
const tree_managerRef TM
The tree manager.
CONSTREF_FORWARD_DECL(BehavioralHelper)
const BehavioralHelperConstRef behavioral_helper
The helper associated with the current function.