00001 #pragma once 00002 00003 #include <rose.h> 00004 00005 class FunctionCallInfo; 00006 00013 class ExtractFunctionArguments 00014 { 00015 public: 00016 00018 static void NormalizeTree(SgNode* tree); 00019 00020 private: 00021 00026 static bool FunctionArgumentNeedsNormalization(SgExpression*& argument); 00027 00030 static bool FunctionArgsNeedNormalization(SgExprListExp* functionArgs); 00031 00034 static bool SubtreeNeedsNormalization(SgNode* top); 00035 00038 static void RewriteFunctionCallArguments(const FunctionCallInfo& functionCallInfo); 00039 00042 static void InsertStatement(SgStatement* newStatement, SgStatement* location, const FunctionCallInfo& insertionMode); 00043 };
1.4.7