From: <bl...@us...> - 2003-03-15 21:29:45
|
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: |