void SgFunctionDeclaration::fixupCopy_symbols(SgNode* copy, SgCopyHelp & help) const { #if DEBUG_FIXUP_COPY printf ("\nIn SgFunctionDeclaration::fixupCopy_symbols(): for function = %s = %p = %s copy = %p \n",this->get_name().str(),this,this->class_name().c_str(),copy); #endif SgFunctionDeclaration* functionDeclaration_copy = isSgFunctionDeclaration(copy); ROSE_ASSERT(functionDeclaration_copy != NULL); // Call the base class fixupCopy member function SgDeclarationStatement::fixupCopy_symbols(copy,help); // Setup the scopes of the SgInitializedName objects in the paraleter list ROSE_ASSERT(get_parameterList() != NULL); get_parameterList()->fixupCopy_symbols(functionDeclaration_copy->get_parameterList(),help); // Setup the details in the SgFunctionDefinition (this may have to rebuild the sysmbol table) // printf ("In SgFunctionDeclaration::fixupCopy_symbols(): this->get_definition() = %p \n",this->get_definition()); if (this->get_definition() != NULL) { // DQ (3/15/2014): The defining declaration should not be marked (isForward() == true). if (isForward() == true) { printf ("Error: The defining declaration should not be marked (isForward() == true) \n"); printf ("SgFunctionDeclaration::fixupCopy_symbols(): (isForward() == true): functionDeclaration_copy = %p = %s \n",functionDeclaration_copy,functionDeclaration_copy->class_name().c_str()); printf (" --- functionDeclaration_copy->get_firstNondefiningDeclaration() = %p \n",functionDeclaration_copy->get_firstNondefiningDeclaration()); printf (" --- functionDeclaration_copy->get_definingDeclaration() = %p \n",functionDeclaration_copy->get_definingDeclaration()); functionDeclaration_copy->get_file_info()->display("SgFunctionDeclaration::fixupCopy_scopes(): (isForward() == true): debug"); // Reset this! // functionDeclaration_copy->unsetForward(); } ROSE_ASSERT(isForward() == false); // DQ (2/26/2009): Handle special cases where the copyHelp function is non-trivial. // Is every version of copyHelp object going to be a problem? // For the outlining, our copyHelp object does not copy defining function declarations // and substitutes a non-defining declarations, so if the copy has been built this way // then skip trying to reset the SgFunctionDefinition. // printf ("In SgFunctionDeclaration::fixupCopy_symbols(): functionDeclaration_copy->get_definition() = %p \n",functionDeclaration_copy->get_definition()); // this->get_definition()->fixupCopy_symbols(functionDeclaration_copy->get_definition(),help); if (functionDeclaration_copy->get_definition() != NULL) { this->get_definition()->fixupCopy_symbols(functionDeclaration_copy->get_definition(),help); } // If this is a declaration with a definition then it is a defining declaration // functionDeclaration_copy->set_definingDeclaration(functionDeclaration_copy); } // printf ("\nLeaving SgFunctionDeclaration::fixupCopy_symbols(): for function = %s = %p = %s copy = %p \n",this->get_name().str(),this,this->class_name().c_str(),copy); }
void Motor::toggleDirection() { if(_bidirectional) { _is_forward = !_is_forward; if(isForward()) { forward(); } else { reverse(); } } }
bool Motor::onForward() { if(_bidirectional) { if(isForward()) { if(!_has_been_forward) { return _has_been_forward = true; } // else return false; } // else return _has_been_forward = false; } // else return false; }
void SgClassDeclaration::fixupCopy_symbols(SgNode* copy, SgCopyHelp & help) const { #if DEBUG_FIXUP_COPY printf ("Inside of SgClassDeclaration::fixupCopy_symbols() for class = %s = %p = %s copy = %p (defining = %p firstNondefining = %p) \n", this->get_name().str(),this,this->class_name().c_str(),copy,this->get_definingDeclaration(),this->get_firstNondefiningDeclaration()); #endif SgClassDeclaration* classDeclaration_copy = isSgClassDeclaration(copy); ROSE_ASSERT(classDeclaration_copy != NULL); SgClassDefinition* classDefinition_original = this->get_definition(); SgClassDefinition* classDefinition_copy = classDeclaration_copy->get_definition(); // Call the base class fixupCopy member function SgDeclarationStatement::fixupCopy_symbols(copy,help); if (isForward() == false) { classDefinition_original->fixupCopy_symbols(classDefinition_copy,help); } }
bool isLeftPart(){ return (isForward()&&begin!=0)||(!isForward()&&begin!=read->getLength()-1); }