1 #ifndef ROSE_TRANSFORMATION_SUPPORT
2 #define ROSE_TRANSFORMATION_SUPPORT
6 #include "optionDeclaration.h"
9 #include "roseQueryLib.h"
40 FUNCTION_CALL_OPERATOR_CODE = 0,
43 ADD_OPERATOR_CODE = 1,
44 SUBT_OPERATOR_CODE = 2,
45 MULT_OPERATOR_CODE = 3,
46 DIV_OPERATOR_CODE = 4,
47 INTEGER_DIV_OPERATOR_CODE = 5,
48 MOD_OPERATOR_CODE = 6,
49 AND_OPERATOR_CODE = 7,
51 BITXOR_OPERATOR_CODE = 9,
52 BITAND_OPERATOR_CODE = 10,
53 BITOR_OPERATOR_CODE = 11,
54 EQ_OPERATOR_CODE = 12,
55 LT_OPERATOR_CODE = 13,
56 GT_OPERATOR_CODE = 14,
57 NE_OPERATOR_CODE = 15,
58 LE_OPERATOR_CODE = 16,
59 GE_OPERATOR_CODE = 17,
60 ASSIGN_OPERATOR_CODE = 18,
61 PLUS_ASSIGN_OPERATOR_CODE = 19,
62 MINUS_ASSIGN_OPERATOR_CODE = 20,
63 AND_ASSIGN_OPERATOR_CODE = 21,
64 IOR_ASSIGN_OPERATOR_CODE = 22,
65 MULT_ASSIGN_OPERATOR_CODE = 23,
66 DIV_ASSIGN_OPERATOR_CODE = 24,
67 MOD_ASSIGN_OPERATOR_CODE = 25,
68 XOR_ASSIGN_OPERATOR_CODE = 26,
71 PARENTHESIS_OPERATOR_CODE = 27,
72 BRACKET_OPERATOR_CODE = 28,
75 NOT_OPERATOR_CODE = 29,
76 DEREFERENCE_OPERATOR_CODE = 30,
77 ADDRESS_OPERATOR_CODE = 31,
78 LSHIFT_OPERATOR_CODE = 32,
79 RSHIFT_OPERATOR_CODE = 33,
80 LSHIFT_ASSIGN_OPERATOR_CODE = 34,
81 RSHIFT_ASSIGN_OPERATOR_CODE = 35,
82 PREFIX_PLUSPLUS_OPERATOR_CODE = 36,
83 POSTFIX_PLUSPLUS_OPERATOR_CODE = 37,
84 PREFIX_MINUSMINUS_OPERATOR_CODE = 38,
85 POSTFIX_MINUSMINUS_OPERATOR_CODE = 39,
88 OPERATOR_CODE_LAST_TAG = 99
97 static std::string stringifyOperator (std::string name);
108 static operatorCodeType classifyOverloadedOperator (
110 int numberOfParameters = 0,
111 bool prefixOperator =
false);
119 static std::string buildOperatorString (
SgNode* astNode );
125 static std::string getTypeName (
SgType* type );
133 static std::string getFunctionTypeName (
SgFunctionCallExp* functionCallExpression );
141 static std::string buildMacro ( std::string s );
160 static void getTransformationOptions (
162 std::list<OptionDeclaration> & variableNameList,
163 std::string identifingTypeName );
172 static void getTransformationOptions (
174 std::list<int> & variableNameList,
175 std::string identifingTypeName );
181 static void getTransformationOptionsFromVariableDeclarationConstructorArguments (
183 std::list<int> & returnList );
189 static void getTransformationOptionsFromVariableDeclarationConstructorArguments (
191 std::list<OptionDeclaration> & returnList );
202 static std::string internalSupportingGlobalDeclarations(
SgNode* astNode, std::string prefixString );
210 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
229 static SgType* getAssociatedType(
const SgNode* astNode );
This class represents a source file for a project (which may contian many source files and or directo...
This class represents the base class for all types.
This class represents the concept of a function declaration statement.
This class represents the concept of a scope in C++ (e.g. global scope, fuction scope, etc.).
This class represents a directory within a projects file structure of files and directories.
This class represents the concept of a class definition in C++.
This class represents the base class for all IR nodes within Sage III.
This class represents the notion of a statement.
This class represents the concept of a namespace definition.
This class represents a source project, with a list of SgFile objects and global information about th...
This class represents the concept of a C or C++ variable declaration.
This class represents the concept of a C++ function call (which is an expression).
This class represents the concept of a declaration statement.