Update of /cvsroot/cpptool/rfta/src/rfta
In directory sc8-pr-cvs1:/tmp/cvs-serv6289/src/rfta
Modified Files:
CodeRewriter.cpp CodeRewriter.h CodeWriterTest.cpp
CodeWriterTest.h
Log Message:
* added support for inserting do/while statement.
Index: CodeRewriter.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** CodeRewriter.cpp 15 Mar 2003 21:18:44 -0000 1.9
--- CodeRewriter.cpp 15 Mar 2003 21:29:43 -0000 1.10
***************
*** 85,98 ****
void
- CodeRewriter::setPreviousStatementEnd( CompoundStatement &statement,
- int subStatementIndex )
- {
- if ( subStatementIndex == 0 )
- {
- }
- }
-
-
- void
CodeRewriter::visit( BreakStatement &statement )
{
--- 85,88 ----
***************
*** 189,192 ****
--- 179,187 ----
CodeRewriter::visit( DoStatement &statement )
{
+ insertText( "\n" + indentManager_.getIndentSpacer() + "do" );
+ statement.getIteratedStatement()->accept( *this );
+ insertText( "\n" + indentManager_.getIndentSpacer() + "while ( " );
+ statement.getCondition()->accept( *this );
+ insertText( " );" );
}
Index: CodeRewriter.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** CodeRewriter.h 8 Mar 2003 13:11:42 -0000 1.6
--- CodeRewriter.h 15 Mar 2003 21:29:43 -0000 1.7
***************
*** 66,72 ****
void visit( NullExpression &expression );
- void setPreviousStatementEnd( CompoundStatement &statement,
- int subStatementIndex );
-
private:
enum Mode
--- 66,69 ----
Index: CodeWriterTest.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** CodeWriterTest.cpp 15 Mar 2003 21:18:44 -0000 1.11
--- CodeWriterTest.cpp 15 Mar 2003 21:29:43 -0000 1.12
***************
*** 350,352 ****
--- 350,382 ----
+ void
+ CodeWriterTest::testInsertDoStatement()
+ {
+ source_ = "{\n"
+ "}";
+
+ generateCompound();
+
+ RFTA_ASSERT_EQUAL( 0, compound_->getStatementCount() );
+
+ CodeModel::StatementPtr nullStatement( new CodeModel::NullStatement() );
+ CodeModel::CompoundStatementPtr compoundStatement( new CodeModel::CompoundStatement() );
+ compoundStatement->appendStatement( nullStatement );
+ CodeModel::DoStatementPtr doStatement(
+ new CodeModel::DoStatement( makeExpression("1234 < 5" ), compoundStatement ) );
+ compound_->appendStatement( doStatement );
+
+ rewriteSource();
+
+ std::string expectedSource = "{\n"
+ " do\n"
+ " {\n"
+ " ;\n"
+ " }\n"
+ " while ( 1234 < 5 );\n"
+ "}";
+ RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
+ }
+
+
} // namespace Refactoring
Index: CodeWriterTest.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** CodeWriterTest.h 15 Mar 2003 21:18:44 -0000 1.8
--- CodeWriterTest.h 15 Mar 2003 21:29:43 -0000 1.9
***************
*** 32,35 ****
--- 32,36 ----
CPPUNIT_TEST( testInsertDefaultStatement );
CPPUNIT_TEST( testInsertCaseStatement );
+ CPPUNIT_TEST( testInsertDoStatement );
CPPUNIT_TEST_SUITE_END();
***************
*** 56,59 ****
--- 57,61 ----
void testInsertDefaultStatement();
void testInsertCaseStatement();
+ void testInsertDoStatement();
private:
|