blob: f6e9fb78219c9a464aff976b0c85ce7897c6b08f [file] [log] [blame]
/**
********************************************************************************
* Copyright (c) 2017 Robert Bosch GmbH and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Robert Bosch GmbH - initial API and implementation
********************************************************************************
*/
#ifndef TRAVERSING_DATA_H
#define TRAVERSING_DATA_H
#include "FunctionAndCallees.h"
#include "GlobalVariable.h"
//#include "data_structure\TraverseASTDataStructure.h"
#include <vector>
#include<map>
#include<string>
class TypeDefGeneral;
class TraversingData {
public:
/*Data structure which holds the call graph*/
std::map <std::string, std::list<FunctionAndCallees*>*> internalStructuralCallGraphs;
/*Data structure containing a map of all global variables including their types and location*/
std::map<std::string, GlobalVariable*> internalGlobalVariablesMap;
//Data structure containing the list of functions found as well as their parameters of pointer type
std::map<std::string, std::map<std::string, GlobalVariable*>*> internalFunctionsParametersMap;
//Data structure containing the list of functions found as well as the local variables inside them referencing global variables
std::map<std::string, std::map<std::string, GlobalVariable*>*> internalFunctionLocalVariablesMap;
//map containing all the variables/functions' parameters of pointer type referencing global variables
std::map<std::string, GlobalVariable*> mapOfAllLocalAndParameter;
std::string currentlyAnalyzedFile;
std::map<std::string, int> analyzedFiles; //0-unanalyzed, 1-Analyzed, -1=Analyzed with errors
int workerId;
std::vector<std::string>* getUnanalyzedFiles();
std::map<std::string, TypeDefGeneral*> typeDefsmap;
std::map<std::string, std::string*> typesMap;
std::map<std::string, std::string*> filesMap;
};
#endif /* TRAVERSING_DATA_H */