Example #1
0
       vector<SgType*> typeVectorFromType(SgType* sageType){
	           vector<SgType*> typeVector;
			
		   if(sageType == NULL) return typeVector;
			SgType* baseType = sageType; 
		    SgType* previousBaseType = NULL;
           
            while(previousBaseType != baseType) 
		{
		 previousBaseType = baseType; 
            
                 switch(baseType->variantT()){
		      case V_SgReferenceType:
                      case V_SgPointerType:
		       	typeVector.push_back(baseType);
                      case V_SgTypedefType:
   		        break;
                      default:
                          typeVector.push_back(baseType);
                          break;
            	      }
                 baseType = findBaseType(baseType);
		 ROSE_ASSERT(baseType != NULL);

		    }; 
		   
		   return typeVector;

       };
Example #2
0
Exponent::Exponent(string str)
{
	baseIsFrac = false;
	baseIsInt = false;
	powerIsFrac = false;
	powerIsInt = false;

	separate(str);
	findPowerType();
	findBaseType();
	simplify();
	canSimplifyToFrac();
	canSimplifyToInt();
}
Example #3
0
       vector<SgType*> typeInterpreter::typeVectorFromTypedef(SgTypedefDeclaration* typedefDeclaration){
	           vector<SgType*> typeVector;
			
			ROSE_ASSERT (typedefDeclaration != NULL);
			SgType* baseType = NULL; 
		        SgType* previousBaseType = NULL;
			
		        do
			{
				previousBaseType = baseType; 
				baseType = findBaseType(isSgType(typedefDeclaration));
				ROSE_ASSERT(baseType != NULL);
				typeVector.push_back(baseType);
			}while( baseType != previousBaseType );

		   
		   return typeVector;

       };