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