From: <bl...@us...> - 2003-03-16 21:27:40
|
Update of /cvsroot/cpptool/rfta/src/rfta In directory sc8-pr-cvs1:/tmp/cvs-serv24813/src/rfta Modified Files: CodeModelStatements.cpp CodeRewriter.cpp CodeWriterTest.cpp CodeWriterTest.h Log Message: * added support for replacing case value. Index: CodeModelStatements.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelStatements.cpp,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** CodeModelStatements.cpp 16 Mar 2003 20:32:42 -0000 1.13 --- CodeModelStatements.cpp 16 Mar 2003 21:27:03 -0000 1.14 *************** *** 455,458 **** --- 455,465 ---- + Change + CaseStatement::getConditionChange() const + { + return conditionValueTracker_.getChange(); + } + + void CaseStatement::accept( StatementVisitor &visitor ) Index: CodeRewriter.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.cpp,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** CodeRewriter.cpp 16 Mar 2003 20:57:21 -0000 1.28 --- CodeRewriter.cpp 16 Mar 2003 21:27:03 -0000 1.29 *************** *** 259,265 **** beginInsertNewStatement(); insertText( "case " ); - statement.getConditionValue()->accept( *this ); - endInsertNewLabelStatement(); } } --- 259,269 ---- beginInsertNewStatement(); insertText( "case " ); } + + handleMandatoryChange( statement.getConditionChange(), + *statement.getConditionValue() ); + + if ( isInserting() ) + endInsertNewLabelStatement(); } Index: CodeWriterTest.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.cpp,v retrieving revision 1.29 retrieving revision 1.30 diff -C2 -d -r1.29 -r1.30 *** CodeWriterTest.cpp 16 Mar 2003 20:57:22 -0000 1.29 --- CodeWriterTest.cpp 16 Mar 2003 21:27:04 -0000 1.30 *************** *** 385,388 **** --- 385,405 ---- + void + CodeWriterTest::testModifyCaseStatement() + { + source_ = "{\n" + " case 12:\n" + "}"; + generateCompound(); + + CodeModel::CaseStatement &caseStatement = + dynamic_cast<CodeModel::CaseStatement &>( *compound_->getStatementAt(0) ); + caseStatement.setConditionValue( makeExpression( "'x'" ) ); + generateAndCheckSource( "{\n" + " case 'x':\n" + "}" ); + } + + } // namespace Refactoring Index: CodeWriterTest.h =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.h,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** CodeWriterTest.h 16 Mar 2003 20:57:22 -0000 1.24 --- CodeWriterTest.h 16 Mar 2003 21:27:05 -0000 1.25 *************** *** 33,36 **** --- 33,37 ---- CPPUNIT_TEST( testModifyDoCondition ); CPPUNIT_TEST( testModifyDoIteratedStatement ); + CPPUNIT_TEST( testModifyCaseStatement ); CPPUNIT_TEST_SUITE_END(); *************** *** 66,69 **** --- 67,72 ---- void testModifyDoCondition(); void testModifyDoIteratedStatement(); + + void testModifyCaseStatement(); private: |