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:
|