From: <bl...@us...> - 2003-03-21 07:32:29
|
Update of /cvsroot/cpptool/rfta/src/rfta In directory sc8-pr-cvs1:/tmp/cvs-serv18910/src/rfta Modified Files: CodeRewriter.cpp CodeWriterInsertTest.cpp CodeWriterInsertTest.h Log Message: * added support for inserting a single variable declaration without initializer. Index: CodeRewriter.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.cpp,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** CodeRewriter.cpp 18 Mar 2003 22:37:48 -0000 1.31 --- CodeRewriter.cpp 21 Mar 2003 07:32:25 -0000 1.32 *************** *** 348,351 **** --- 348,365 ---- CodeRewriter::visit( DeclarationStatement &statement ) { + if ( isInserting() ) + { + DeclaratorExpressionPtr declarators = statement.getDeclaration(); + + beginInsertNewStatement(); + insertText( declarators->getPrimaryType() ); + + const Declarator &declarator = declarators->getDeclaratorAt(0); + insertText( declarator.getType() ); + insertText( declarator.getName() ); + insertText( declarator.getTypeSuffix() ); + + endInsertNewStatement(); + } } Index: CodeWriterInsertTest.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterInsertTest.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** CodeWriterInsertTest.cpp 18 Mar 2003 22:37:48 -0000 1.5 --- CodeWriterInsertTest.cpp 21 Mar 2003 07:32:26 -0000 1.6 *************** *** 277,279 **** --- 277,293 ---- + void + CodeWriterInsertTest::testInsertDeclarationStatement() + { + CodeModel::DeclaratorExpressionPtr declarators( new CodeModel::DeclaratorExpression( "int " ) ); + CodeModel::Declarator declarator( "", "var", "[3]" ); + declarators->appendDeclarator( declarator ); + CodeModel::StatementPtr declarationStatement( new CodeModel::DeclarationStatement( declarators ) ); + checkGeneratedSource( declarationStatement, + "{\n" + " int var[3];\n" + "}" ); + } + + } // namespace Refactoring Index: CodeWriterInsertTest.h =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterInsertTest.h,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** CodeWriterInsertTest.h 18 Mar 2003 22:37:48 -0000 1.4 --- CodeWriterInsertTest.h 21 Mar 2003 07:32:26 -0000 1.5 *************** *** 33,36 **** --- 33,37 ---- CPPUNIT_TEST( testInsertExpressionStatement ); CPPUNIT_TEST( testInsertForStatement ); + CPPUNIT_TEST( testInsertDeclarationStatement ); CPPUNIT_TEST_SUITE_END(); *************** *** 58,61 **** --- 59,63 ---- void testInsertExpressionStatement(); void testInsertForStatement(); + void testInsertDeclarationStatement(); private: |