diff options
author | bloodstalker <thabogre@gmail.com> | 2017-03-16 21:43:01 +0000 |
---|---|---|
committer | bloodstalker <thabogre@gmail.com> | 2017-03-16 21:43:01 +0000 |
commit | 857142ea222dcc354a272a821bd9897d879923ad (patch) | |
tree | fdbd27138aa46099862c0b4eba88c139903186e4 | |
parent | moved out the report classes into a new file-mutator_report (diff) | |
download | mutator-857142ea222dcc354a272a821bd9897d879923ad.tar.gz mutator-857142ea222dcc354a272a821bd9897d879923ad.zip |
moved out the report classes into a new file-mutator_report
-rw-r--r-- | mutator_aux.h | 57 |
1 files changed, 2 insertions, 55 deletions
diff --git a/mutator_aux.h b/mutator_aux.h index a2d1c22..5385742 100644 --- a/mutator_aux.h +++ b/mutator_aux.h @@ -30,14 +30,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.* #include "clang/ASTMatchers/ASTMatchFinder.h" #include "clang/Basic/SourceManager.h" #include "clang/Rewrite/Core/Rewriter.h" -#include "tinyxml2/tinyxml2.h" /*********************************************************************************************************************/ -/*Mcros and Definitions*/ +/*Macros and definitions*/ #define CheckSLValidity(SL) \ if (!SL.isValid()) {return void();} /*********************************************************************************************************************/ using namespace clang; -using namespace tinyxml2; /*********************************************************************************************************************/ namespace Devi { enum class NodeKind {NoValue, VarDecl, FieldDecl, RecordDecl, LabelDecl, FunctionDecl, TypedefDecl, ParmVarDecl, EnumDecl, EnumConstDecl}; @@ -64,60 +62,9 @@ bool IsTheMatchInMainFile(bool MainFileFlag, bool MainFile, SourceLocation SL); bool IsTheMatchInMainFile(bool MainFileFlag, bool MainFile); /*********************************************************************************************************************/ -/*@DEVI- for both report classes, if the program gets terminated, since the destructor does not close -the report files, what happens to them is implementation-defined in case of let's say an exit, but since -we erase the files everytime a new instance of mutator-lvl0 is called, we are fine. or so i think.*/ -/*@DEVI- in case of a crash, the XML report will only hold the base node, while the JSON report will -contain all the reports up until the crash. tinyxml2 writes the nodes to file on SaveFile which is -called in SaveReport so that's why.*/ -class XMLReport -{ -public: - XMLReport(); - - void XMLCreateReport(void); - void XMLAddNode(ASTContext* ASTC, SourceLocation SL, std::string MisraRule, std::string Description); - /*overloaded for rule checks that announce the result on onendoftranslation instead of run - since they dont have access to matchresult or astcontext.*/ - void XMLAddNode(FullSourceLoc FSL, SourceLocation SL, std::string MisraRule, std::string Description); - /*another overload to support the xml output for PPCallbacks.*/ - void XMLAddNode(const SourceManager &SM, SourceLocation SL, std::string MisraRule, std::string Description); - - void XMLAddNode(std::string FilePath, std::string MisraRule, std::string Description); - - void XMLAddNode(unsigned Line, unsigned Column, std::string FileName, std::string MisraRule, std::string Description); - - void SaveReport(void); - -private: - XMLDocument XMLReportDoc; - XMLElement* RootPointer; -}; -/*********************************************************************************************************************/ -class JSONReport -{ -public: - JSONReport(); - - void JSONCreateReport(void); - void JSONAddElement(ASTContext* ASTC, SourceLocation SL, std::string MisraRule, std::string Description); - /*overload for checks that announce the result in onendoftranslation unit.*/ - void JSONAddElement(FullSourceLoc FSL, SourceLocation SL, std::string MisraRule, std::string Description); - /*overload for PPCallbacks.*/ - void JSONAddElement(const SourceManager &SM, SourceLocation SL, std::string MisraRule, std::string Description); - - void JSONAddElement(std::string FilePath, std::string MisraRule, std::string Description); - - void JSONAddElement(unsigned Line, unsigned Column, std::string FileName, std::string MisraRule, std::string Description); - - void CloseReport(void); - -private: - std::ofstream JSONRepFile; -}; -/*********************************************************************************************************************/ /*end of namespace Devi*/ } #endif /*********************************************************************************************************************/ /*last line intentionally left blank.*/ + |