1 #ifndef CALLTREE_H
2 #define CALLTREE_H
3 
4 #include <set>
5 
6 #include "calltreeview.h"
7 #include "parserf.h"
8 
9 class CallTree
10 {
11     public:
12         CallTree(FortranProject* forproj);
13         virtual ~CallTree();
14 
GetCallTreeView()15         CallTreeView* GetCallTreeView(){return m_pCallTreeView;};
16         void BuildCallTree(cbEditor* ed, const wxString& NameUnderCursor, ParserF* pParser, std::set< wxString>& keywordSet, bool showCallTree);
17 
18     protected:
19 
20     private:
21         void FindUsedModules(ParserF* pParser, CallTreeToken* token);
22         void FindCalledTokens(ParserF* pParser, CallTreeToken* token, std::set< wxString>& keywordSet);
23         void FindTokenFromCall(ParserF* pParser, TokenFlat* parentTok, TokenFlat* oneCall, TokensArrayFlat* result);
24         bool HasChildToken(TokenF* tokParent, TokenF* tok);
25         bool HasCallChildToken(TokenF* tokParent, TokenFlat* tok);
26         bool HasInHerarchy(TokenF* tokParent, TokenF* tok);
27         void ManageInterfaceExplicit(ParserF* pParser, TokenFlat* origFT, CallTreeToken* token, std::set<wxString>& keywordSet);
28         void FindCallingTokens(ParserF* pParser, CallTreeToken* token, CalledByDict& cByDict);
29         void ManageTBProceduresForCallTree(ParserF* pParser, TokenFlat* origFT, CallTreeToken* token, std::set<wxString>& keywordSet);
30 
31         CallTreeView* m_pCallTreeView;
32 
33         std::set<wxString> m_FortranIntrinsicModules;
34 };
35 
36 #endif // CALLTREE_H
37