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 );
226 static SgType* getAssociatedType(
const SgNode* astNode );