You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(37) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(15) |
Feb
(26) |
Mar
(97) |
Apr
(224) |
May
(226) |
Jun
|
Jul
(3) |
Aug
(22) |
Sep
(48) |
Oct
|
Nov
|
Dec
(38) |
| 2004 |
Jan
(28) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(37) |
Jul
|
Aug
(73) |
Sep
|
Oct
|
Nov
|
Dec
|
|
From: <bl...@us...> - 2003-03-16 15:43:18
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring
In directory sc8-pr-cvs1:/tmp/cvs-serv12642/include/rfta/refactoring
Modified Files:
CodeModelStatements.h
Log Message:
* added tests for ReturnStatement.
Index: CodeModelStatements.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelStatements.h,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** CodeModelStatements.h 16 Mar 2003 15:33:09 -0000 1.11
--- CodeModelStatements.h 16 Mar 2003 15:43:09 -0000 1.12
***************
*** 280,287 ****
--- 280,290 ----
public:
ReturnStatement();
+
ReturnStatement( const ExpressionPtr &value );
bool hasValue() const;
+
ExpressionPtr getValue() const;
+
void setValue( const ExpressionPtr &value );
|
|
From: <bl...@us...> - 2003-03-16 15:43:17
|
Update of /cvsroot/cpptool/rfta/src/rfta
In directory sc8-pr-cvs1:/tmp/cvs-serv12642/src/rfta
Modified Files:
CodeRewriter.cpp CodeWriterTest.cpp CodeWriterTest.h
Log Message:
* added tests for ReturnStatement.
Index: CodeRewriter.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** CodeRewriter.cpp 16 Mar 2003 15:33:10 -0000 1.22
--- CodeRewriter.cpp 16 Mar 2003 15:43:09 -0000 1.23
***************
*** 412,415 ****
--- 412,418 ----
currentInsertionPos_ = statement.getSourceRange().getEndIndex() -1;
+ if ( change.type_ == Change::added )
+ insertText( " " );
+
statement.getValue()->accept( *this );
}
Index: CodeWriterTest.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.cpp,v
retrieving revision 1.24
retrieving revision 1.25
diff -C2 -d -r1.24 -r1.25
*** CodeWriterTest.cpp 16 Mar 2003 13:15:22 -0000 1.24
--- CodeWriterTest.cpp 16 Mar 2003 15:43:09 -0000 1.25
***************
*** 233,235 ****
--- 233,287 ----
+ void
+ CodeWriterTest::testModifyReturnValue()
+ {
+ source_ = "{\n"
+ " return 1234;\n"
+ "}";
+ generateCompound();
+
+ CodeModel::ReturnStatement &returnStatement =
+ dynamic_cast<CodeModel::ReturnStatement &>( *compound_->getStatementAt(0) );
+ returnStatement.setValue( makeExpression( "x * y" ) );
+ generateAndCheckSource( "{\n"
+ " return x * y;\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterTest::testRemoveReturnValue()
+ {
+ source_ = "{\n"
+ " return 1234;\n"
+ "}";
+ generateCompound();
+
+ CodeModel::ReturnStatement &returnStatement =
+ dynamic_cast<CodeModel::ReturnStatement &>( *compound_->getStatementAt(0) );
+ returnStatement.setValue( CodeModel::ExpressionPtr() );
+ generateAndCheckSource( "{\n"
+ " return ;\n"
+ "}" );
+ }
+
+
+ void
+ CodeWriterTest::testAddReturnValue()
+ {
+ source_ = "{\n"
+ " return;\n"
+ "}";
+ generateCompound();
+
+ CodeModel::ReturnStatement &returnStatement =
+ dynamic_cast<CodeModel::ReturnStatement &>( *compound_->getStatementAt(0) );
+ returnStatement.setValue( makeExpression( "1234" ) );
+ generateAndCheckSource( "{\n"
+ " return 1234;\n"
+ "}" );
+ }
+
+
+
} // namespace Refactoring
Index: CodeWriterTest.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.h,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** CodeWriterTest.h 16 Mar 2003 12:24:47 -0000 1.20
--- CodeWriterTest.h 16 Mar 2003 15:43:09 -0000 1.21
***************
*** 25,28 ****
--- 25,31 ----
CPPUNIT_TEST( testRemoveElseFromIfThenStatement );
CPPUNIT_TEST( testModifyElseFromIfThenStatement );
+ CPPUNIT_TEST( testModifyReturnValue );
+ CPPUNIT_TEST( testRemoveReturnValue );
+ CPPUNIT_TEST( testAddReturnValue );
CPPUNIT_TEST_SUITE_END();
***************
*** 42,49 ****
--- 45,57 ----
void testRemoveStatement();
void testMoveSubExpression();
+
void testModifyIfThenStatement();
void testAddElseToIfThenStatement();
void testRemoveElseFromIfThenStatement();
void testModifyElseFromIfThenStatement();
+
+ void testModifyReturnValue();
+ void testRemoveReturnValue();
+ void testAddReturnValue();
private:
|
|
From: <bl...@us...> - 2003-03-16 15:33:15
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring
In directory sc8-pr-cvs1:/tmp/cvs-serv9247/include/rfta/refactoring
Modified Files:
CodeModelElement.h CodeModelForward.h CodeModelStatements.h
Log Message:
* refactored to use OptionalChangeTracker in statements
Index: CodeModelElement.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelElement.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** CodeModelElement.h 16 Mar 2003 14:39:13 -0000 1.9
--- CodeModelElement.h 16 Mar 2003 15:33:09 -0000 1.10
***************
*** 117,121 ****
! // Change.type_ can only either replaced or unmodified.
template<typename TrackedType
,typename ConstraintPolicy = NotNullConstraintPolicy>
--- 117,121 ----
! // The tracked element always exist, so change may only be unmodified or replaced.
template<typename TrackedType
,typename ConstraintPolicy = NotNullConstraintPolicy>
***************
*** 125,128 ****
--- 125,129 ----
ChangeTracker( const TrackedType &element )
: element_( element )
+ , change_( Change::added )
{
ConstraintPolicy::checkConstraint( element );
***************
*** 167,170 ****
--- 168,242 ----
typedef ChangeTracker<StatementPtr> StatementChangeTracker;
typedef ChangeTracker<ExpressionPtr> ExpressionChangeTracker;
+
+
+
+ // Tracked element may not exist, so change may be of any types.
+ template<typename TrackedType>
+ class OptionalChangeTracker
+ {
+ public:
+ OptionalChangeTracker()
+ : change_( Change::added )
+ {
+ }
+
+ OptionalChangeTracker( const TrackedType &element )
+ : element_( element )
+ , change_( Change::added )
+ {
+ }
+
+ void setElementIsFromSource()
+ {
+ change_.type_ = Change::unmodified;
+ change_.oldRange_ = hasElement() ? element_->getSourceRange()
+ : SourceRange();
+ }
+
+ void setElement( const TrackedType &newElement )
+ {
+ if ( newElement )
+ {
+ change_.type_ = hadElementInSource() ? Change::replaced
+ : Change::added;
+ }
+ else
+ {
+ change_.type_ = hadElementInSource() ? Change::removed
+ : Change::unmodified;
+ }
+
+ element_ = newElement;
+ }
+
+ bool hasElement() const
+ {
+ return element_;
+ }
+
+ TrackedType getElement() const
+ {
+ return element_;
+ }
+
+ Change getChange() const
+ {
+ return change_;
+ }
+
+ private:
+ bool hadElementInSource() const
+ {
+ return !change_.oldRange_.isEmpty();
+ }
+
+ Change change_;
+ TrackedType element_;
+ };
+
+
+ typedef OptionalChangeTracker<StatementPtr> OptionalStatementChangeTracker;
+ typedef OptionalChangeTracker<ExpressionPtr> OptionalExpressionChangeTracker;
+
Index: CodeModelForward.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelForward.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** CodeModelForward.h 16 Mar 2003 13:51:06 -0000 1.6
--- CodeModelForward.h 16 Mar 2003 15:33:09 -0000 1.7
***************
*** 13,16 ****
--- 13,17 ----
class Element;
+ class Label;
class BreakStatement;
***************
*** 49,52 ****
--- 50,54 ----
typedef boost::shared_ptr<Element> ElementPtr;
+ typedef boost::shared_ptr<Label> LabelPtr;
typedef boost::shared_ptr<DeclaratorExpression> DeclaratorExpressionPtr;
typedef boost::shared_ptr<Expression> ExpressionPtr;
Index: CodeModelStatements.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelStatements.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** CodeModelStatements.h 16 Mar 2003 14:39:13 -0000 1.10
--- CodeModelStatements.h 16 Mar 2003 15:33:09 -0000 1.11
***************
*** 86,89 ****
--- 86,92 ----
void accept( StatementVisitor &visitor );
+ protected: // overridden from CodeElement
+ void setElementIsFromSource();
+
private:
ExpressionChangeTracker conditionTracker_;
***************
*** 116,124 ****
void accept( StatementVisitor &visitor );
private:
! Change thenStatementChange_;
! Change elseStatementChange_;
! StatementPtr thenStatement_;
! StatementPtr elseStatement_;
};
--- 119,128 ----
void accept( StatementVisitor &visitor );
+ private: // overridden from CodeElement
+ void setElementIsFromSource();
+
private:
! StatementChangeTracker thenStatementTracker_;
! OptionalStatementChangeTracker elseStatementTracker_;
};
***************
*** 136,139 ****
--- 140,146 ----
void accept( StatementVisitor &visitor );
+ protected: // overridden from CodeElement
+ void setElementIsFromSource();
+
private:
StatementChangeTracker iteratedStatementTracker_;
***************
*** 180,183 ****
--- 187,193 ----
void accept( StatementVisitor &visitor );
+ private: // overridden from CodeElement
+ void setElementIsFromSource();
+
private:
StatementPtr declarationStatement_;
***************
*** 198,201 ****
--- 208,214 ----
void accept( StatementVisitor &visitor );
+ private: // overridden from CodeElement
+ void setElementIsFromSource();
+
private:
ChangeTracker<CompoundStatementPtr> statementsTracker_;
***************
*** 211,254 ****
- class LabelHolderStatement
- {
- public:
- LabelHolderStatement( const std::string &labelName );
-
- virtual ~LabelHolderStatement()
- {
- }
-
- const std::string getLabelName() const;
-
- void setLabelName( const std::string &labelName );
-
- private:
- ChangeTracker<std::string,NoConstraintPolicy> labelNameTracker_;
- };
-
-
- class LabelStatement : public Statement
- , public LabelHolderStatement
- {
- public:
- LabelStatement( const std::string &labelName );
-
- // overriden from Statement
- void accept( StatementVisitor &visitor );
- };
-
-
- class GotoStatement : public FlowControlStatement
- , public LabelHolderStatement
- {
- public:
- GotoStatement( const std::string &labelName );
-
- // overriden from Statement
- void accept( StatementVisitor &visitor );
- };
-
-
class SwitchLabelStatement : public Statement
{
--- 224,227 ----
***************
*** 271,274 ****
--- 244,250 ----
void accept( StatementVisitor &visitor );
+ private: // overridden from CodeElement
+ void setElementIsFromSource();
+
private:
ExpressionChangeTracker conditionValueTracker_;
***************
*** 319,324 ****
private:
! ExpressionPtr value_;
! Change change_;
};
--- 295,299 ----
private:
! OptionalExpressionChangeTracker valueTracker_;
};
***************
*** 335,338 ****
--- 310,316 ----
void accept( StatementVisitor &visitor );
+ private: // overridden from CodeElement
+ void setElementIsFromSource();
+
private:
ExpressionChangeTracker expressionTracker_;
***************
*** 359,362 ****
--- 337,397 ----
{
public:
+ // overriden from Statement
+ void accept( StatementVisitor &visitor );
+ };
+
+
+ class Label : public Element
+ {
+ public:
+ Label();
+
+ Label( const std::string &labelName );
+
+ const std::string getLabelName() const;
+
+ private:
+ const std::string labelName_;
+ };
+
+
+ class LabelHolderStatement
+ {
+ public:
+ LabelHolderStatement( const LabelPtr &label );
+
+ virtual ~LabelHolderStatement()
+ {
+ }
+
+ LabelPtr getLabel() const;
+
+ void setLabel( const LabelPtr &labelName );
+
+ private: // overridden from CodeElement
+ void setElementIsFromSource();
+
+ private:
+ ChangeTracker<LabelPtr> labelTracker_;
+ };
+
+
+ class LabelStatement : public Statement
+ , public LabelHolderStatement
+ {
+ public:
+ LabelStatement( const LabelPtr &labelName );
+
+ // overriden from Statement
+ void accept( StatementVisitor &visitor );
+ };
+
+
+ class GotoStatement : public FlowControlStatement
+ , public LabelHolderStatement
+ {
+ public:
+ GotoStatement( const LabelPtr &labelName );
+
// overriden from Statement
void accept( StatementVisitor &visitor );
|
|
From: <bl...@us...> - 2003-03-16 15:33:15
|
Update of /cvsroot/cpptool/rfta/src/rfta
In directory sc8-pr-cvs1:/tmp/cvs-serv9247/src/rfta
Modified Files:
CodeModelStatements.cpp CodeRewriter.cpp
CodeWriterInsertTest.cpp
Log Message:
* refactored to use OptionalChangeTracker in statements
Index: CodeModelStatements.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelStatements.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** CodeModelStatements.cpp 16 Mar 2003 14:39:13 -0000 1.10
--- CodeModelStatements.cpp 16 Mar 2003 15:33:10 -0000 1.11
***************
*** 150,158 ****
IfStatement::IfStatement( const ExpressionPtr &condition,
const StatementPtr &thenStatement )
: ConditionStatement( condition )
! , thenStatement_( thenStatement )
{
}
--- 150,165 ----
+ void
+ ConditionStatement::setElementIsFromSource()
+ {
+ conditionTracker_.setElementIsFromSource();
+ }
+
+
IfStatement::IfStatement( const ExpressionPtr &condition,
const StatementPtr &thenStatement )
: ConditionStatement( condition )
! , thenStatementTracker_( thenStatement )
{
}
***************
*** 163,168 ****
const StatementPtr &elseStatement )
: ConditionStatement( condition )
! , thenStatement_( thenStatement )
! , elseStatement_( elseStatement )
{
}
--- 170,175 ----
const StatementPtr &elseStatement )
: ConditionStatement( condition )
! , thenStatementTracker_( thenStatement )
! , elseStatementTracker_( elseStatement )
{
}
***************
*** 172,176 ****
IfStatement::getThenStatement() const
{
! return thenStatement_;
}
--- 179,183 ----
IfStatement::getThenStatement() const
{
! return thenStatementTracker_.getElement();
}
***************
*** 179,185 ****
IfStatement::setThenStatement( const StatementPtr &statement )
{
! thenStatementChange_.type_ = Change::replaced;
! thenStatementChange_.oldRange_ = thenStatement_->getSourceRange();
! thenStatement_ = statement;
}
--- 186,190 ----
IfStatement::setThenStatement( const StatementPtr &statement )
{
! thenStatementTracker_.setElement( statement );
}
***************
*** 188,192 ****
IfStatement::getThenStatementChange() const
{
! return thenStatementChange_;
}
--- 193,197 ----
IfStatement::getThenStatementChange() const
{
! return thenStatementTracker_.getChange();
}
***************
*** 195,199 ****
IfStatement::hasElseStatement() const
{
! return elseStatement_;
}
--- 200,204 ----
IfStatement::hasElseStatement() const
{
! return elseStatementTracker_.hasElement();
}
***************
*** 202,206 ****
IfStatement::getElseStatement() const
{
! return elseStatement_;
}
--- 207,211 ----
IfStatement::getElseStatement() const
{
! return elseStatementTracker_.getElement();
}
***************
*** 209,224 ****
IfStatement::setElseStatement( const StatementPtr &statement )
{
! if ( hasElseStatement() && elseStatementChange_.type_ == Change::unmodified )
! {
! elseStatementChange_.type_ = Change::replaced;
! elseStatementChange_.oldRange_ = elseStatement_->getSourceRange();
! }
! else
! elseStatementChange_.type_ = Change::added;
!
! if ( !statement )
! elseStatementChange_.type_ = Change::removed;
!
! elseStatement_ = statement;
}
--- 214,218 ----
IfStatement::setElseStatement( const StatementPtr &statement )
{
! elseStatementTracker_.setElement( statement );
}
***************
*** 227,231 ****
IfStatement::getElseStatementChange() const
{
! return elseStatementChange_;
}
--- 221,225 ----
IfStatement::getElseStatementChange() const
{
! return elseStatementTracker_.getChange();
}
***************
*** 238,241 ****
--- 232,244 ----
+ void
+ IfStatement::setElementIsFromSource()
+ {
+ ConditionStatement::setElementIsFromSource();
+ thenStatementTracker_.setElementIsFromSource();
+ elseStatementTracker_.setElementIsFromSource();
+ }
+
+
IterationStatement::IterationStatement( const ExpressionPtr &condition,
***************
*** 269,272 ****
--- 272,283 ----
+ void
+ IterationStatement::setElementIsFromSource()
+ {
+ ConditionStatement::setElementIsFromSource();
+ iteratedStatementTracker_.setElementIsFromSource();
+ }
+
+
WhileStatement::WhileStatement( const ExpressionPtr &condition,
***************
*** 348,351 ****
--- 359,369 ----
+ void
+ ForStatement::setElementIsFromSource()
+ {
+ IterationStatement::setElementIsFromSource();
+ }
+
+
SwitchStatement::SwitchStatement( const ExpressionPtr &condition,
***************
*** 379,426 ****
- LabelHolderStatement::LabelHolderStatement( const std::string &labelName )
- : labelNameTracker_( labelName )
- {
- }
-
-
- const std::string
- LabelHolderStatement::getLabelName() const
- {
- return labelNameTracker_.getElement();
- }
-
-
void
! LabelHolderStatement::setLabelName( const std::string &labelName )
! {
! labelNameTracker_.setElement( labelName );
! }
!
!
!
! LabelStatement::LabelStatement( const std::string &labelName )
! : LabelHolderStatement( labelName )
! {
! }
!
! void
! LabelStatement::accept( StatementVisitor &visitor )
! {
! visitor.visit( *this );
! }
!
!
!
! GotoStatement::GotoStatement( const std::string &labelName )
! : LabelHolderStatement( labelName )
! {
! }
!
! void
! GotoStatement::accept( StatementVisitor &visitor )
{
! FlowControlStatement::accept( visitor );
! visitor.visit( *this );
}
--- 397,405 ----
void
! SwitchStatement::setElementIsFromSource()
{
! ConditionStatement::setElementIsFromSource();
! statementsTracker_.setElementIsFromSource();
}
***************
*** 463,466 ****
--- 442,452 ----
+ void
+ CaseStatement::setElementIsFromSource()
+ {
+ conditionValueTracker_.setElementIsFromSource();
+ }
+
+
void
***************
*** 505,509 ****
ReturnStatement::ReturnStatement( const ExpressionPtr &value )
! : value_( value )
{
}
--- 491,495 ----
ReturnStatement::ReturnStatement( const ExpressionPtr &value )
! : valueTracker_( value )
{
}
***************
*** 513,517 ****
ReturnStatement::hasValue() const
{
! return value_;
}
--- 499,503 ----
ReturnStatement::hasValue() const
{
! return valueTracker_.hasElement();
}
***************
*** 520,524 ****
ReturnStatement::getValue() const
{
! return value_;
}
--- 506,510 ----
ReturnStatement::getValue() const
{
! return valueTracker_.getElement();
}
***************
*** 527,542 ****
ReturnStatement::setValue( const ExpressionPtr &value )
{
! if ( hasValue() && change_.type_ == Change::unmodified )
! {
! change_.type_ = Change::replaced;
! change_.oldRange_ = value_->getSourceRange();
! }
! else
! change_.type_ = Change::added;
- if ( !value )
- change_.type_ = Change::removed;
! value_ = value;
}
--- 513,524 ----
ReturnStatement::setValue( const ExpressionPtr &value )
{
! valueTracker_.setElement( value );
! }
! Change
! ReturnStatement::getValueChange() const
! {
! return valueTracker_.getChange();
}
***************
*** 553,564 ****
ReturnStatement::setElementIsFromSource()
{
! change_.type_ = Change::unmodified;
! }
!
!
! Change
! ReturnStatement::getValueChange() const
! {
! return change_;
}
--- 535,539 ----
ReturnStatement::setElementIsFromSource()
{
! valueTracker_.setElementIsFromSource();
}
***************
*** 592,595 ****
--- 567,577 ----
+ void
+ ExpressionStatement::setElementIsFromSource()
+ {
+ expressionTracker_.setElementIsFromSource();
+ }
+
+
DeclarationStatement::DeclarationStatement(
***************
*** 625,628 ****
--- 607,684 ----
NullStatement::accept( StatementVisitor &visitor )
{
+ visitor.visit( *this );
+ }
+
+
+
+ Label::Label()
+ {
+ }
+
+
+ Label::Label( const std::string &labelName )
+ : labelName_( labelName )
+ {
+ }
+
+
+ const std::string
+ Label::getLabelName() const
+ {
+ return isFromSource() ? getSourceText() : labelName_;
+ }
+
+
+
+ LabelHolderStatement::LabelHolderStatement( const LabelPtr &label )
+ : labelTracker_( label )
+ {
+ }
+
+
+ LabelPtr
+ LabelHolderStatement::getLabel() const
+ {
+ return labelTracker_.getElement();
+ }
+
+
+ void
+ LabelHolderStatement::setLabel( const LabelPtr &label )
+ {
+ labelTracker_.setElement( label );
+ }
+
+
+ void
+ LabelHolderStatement::setElementIsFromSource()
+ {
+ labelTracker_.setElementIsFromSource();
+ }
+
+
+
+ LabelStatement::LabelStatement( const LabelPtr &label )
+ : LabelHolderStatement( label )
+ {
+ }
+
+ void
+ LabelStatement::accept( StatementVisitor &visitor )
+ {
+ visitor.visit( *this );
+ }
+
+
+
+ GotoStatement::GotoStatement( const LabelPtr &label )
+ : LabelHolderStatement( label )
+ {
+ }
+
+ void
+ GotoStatement::accept( StatementVisitor &visitor )
+ {
+ FlowControlStatement::accept( visitor );
visitor.visit( *this );
}
Index: CodeRewriter.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** CodeRewriter.cpp 16 Mar 2003 13:44:25 -0000 1.21
--- CodeRewriter.cpp 16 Mar 2003 15:33:10 -0000 1.22
***************
*** 276,280 ****
{
beginInsertNewStatement();
! insertText( "goto " + statement.getLabelName() );
endInsertNewStatement();
}
--- 276,280 ----
{
beginInsertNewStatement();
! insertText( "goto " + statement.getLabel()->getLabelName() );
endInsertNewStatement();
}
***************
*** 380,384 ****
CodeRewriter::visit( LabelStatement &statement )
{
! insertText( "\n" + statement.getLabelName() + ":" );
}
--- 380,384 ----
CodeRewriter::visit( LabelStatement &statement )
{
! insertText( "\n" + statement.getLabel()->getLabelName() + ":" );
}
Index: CodeWriterInsertTest.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterInsertTest.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** CodeWriterInsertTest.cpp 16 Mar 2003 10:23:07 -0000 1.3
--- CodeWriterInsertTest.cpp 16 Mar 2003 15:33:10 -0000 1.4
***************
*** 191,195 ****
CodeWriterInsertTest::testInsertLabelStatement()
{
! CodeModel::StatementPtr labelStatement( new CodeModel::LabelStatement( "error" ) );
checkGeneratedSource( labelStatement,
"{\n"
--- 191,196 ----
CodeWriterInsertTest::testInsertLabelStatement()
{
! CodeModel::LabelPtr label( new CodeModel::Label( "error" ) );
! CodeModel::StatementPtr labelStatement( new CodeModel::LabelStatement( label ) );
checkGeneratedSource( labelStatement,
"{\n"
***************
*** 202,206 ****
CodeWriterInsertTest::testInsertGotoStatement()
{
! CodeModel::StatementPtr gotoStatement( new CodeModel::GotoStatement( "error" ) );
checkGeneratedSource( gotoStatement,
"{\n"
--- 203,208 ----
CodeWriterInsertTest::testInsertGotoStatement()
{
! CodeModel::LabelPtr label( new CodeModel::Label( "error" ) );
! CodeModel::StatementPtr gotoStatement( new CodeModel::GotoStatement( label ) );
checkGeneratedSource( gotoStatement,
"{\n"
|
|
From: <bl...@us...> - 2003-03-16 14:39:19
|
Update of /cvsroot/cpptool/rfta/src/rfta
In directory sc8-pr-cvs1:/tmp/cvs-serv22508/src/rfta
Modified Files:
CodeModelStatements.cpp
Log Message:
* refactored to use ChangeTracker in statements
Index: CodeModelStatements.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelStatements.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** CodeModelStatements.cpp 16 Mar 2003 13:51:09 -0000 1.9
--- CodeModelStatements.cpp 16 Mar 2003 14:39:13 -0000 1.10
***************
*** 124,128 ****
ConditionStatement::ConditionStatement( const ExpressionPtr &condition )
! : condition_( condition )
{
}
--- 124,128 ----
ConditionStatement::ConditionStatement( const ExpressionPtr &condition )
! : conditionTracker_( condition )
{
}
***************
*** 132,136 ****
ConditionStatement::getCondition() const
{
! return condition_;
}
--- 132,136 ----
ConditionStatement::getCondition() const
{
! return conditionTracker_.getElement();
}
***************
*** 139,143 ****
ConditionStatement::setCondition( const ExpressionPtr &condition )
{
! condition_ = condition;
}
--- 139,143 ----
ConditionStatement::setCondition( const ExpressionPtr &condition )
{
! conditionTracker_.setElement( condition );
}
***************
*** 242,246 ****
const StatementPtr &iteratedStatement )
: ConditionStatement( condition )
! , iteratedStatement_( iteratedStatement )
{
}
--- 242,246 ----
const StatementPtr &iteratedStatement )
: ConditionStatement( condition )
! , iteratedStatementTracker_( iteratedStatement )
{
}
***************
*** 250,254 ****
IterationStatement::getIteratedStatement() const
{
! return iteratedStatement_;
}
--- 250,254 ----
IterationStatement::getIteratedStatement() const
{
! return iteratedStatementTracker_.getElement();
}
***************
*** 257,261 ****
IterationStatement::setIteratedStatement( const StatementPtr &statement )
{
! iteratedStatement_ = statement;
}
--- 257,261 ----
IterationStatement::setIteratedStatement( const StatementPtr &statement )
{
! iteratedStatementTracker_.setElement( statement );
}
***************
*** 352,356 ****
const CompoundStatementPtr &statements )
: ConditionStatement( condition )
! , statements_( statements )
{
}
--- 352,356 ----
const CompoundStatementPtr &statements )
: ConditionStatement( condition )
! , statementsTracker_( statements )
{
}
***************
*** 360,364 ****
SwitchStatement::getStatements() const
{
! return statements_;
}
--- 360,364 ----
SwitchStatement::getStatements() const
{
! return statementsTracker_.getElement();
}
***************
*** 367,371 ****
SwitchStatement::setStatement( const CompoundStatementPtr &statements )
{
! statements_ = statements;
}
--- 367,371 ----
SwitchStatement::setStatement( const CompoundStatementPtr &statements )
{
! statementsTracker_.setElement( statements );
}
***************
*** 380,384 ****
LabelHolderStatement::LabelHolderStatement( const std::string &labelName )
! : labelName_( labelName )
{
}
--- 380,384 ----
LabelHolderStatement::LabelHolderStatement( const std::string &labelName )
! : labelNameTracker_( labelName )
{
}
***************
*** 388,392 ****
LabelHolderStatement::getLabelName() const
{
! return labelName_;
}
--- 388,392 ----
LabelHolderStatement::getLabelName() const
{
! return labelNameTracker_.getElement();
}
***************
*** 395,399 ****
LabelHolderStatement::setLabelName( const std::string &labelName )
{
! labelName_ = labelName;
}
--- 395,399 ----
LabelHolderStatement::setLabelName( const std::string &labelName )
{
! labelNameTracker_.setElement( labelName );
}
***************
*** 436,440 ****
CaseStatement::CaseStatement( const ExpressionPtr &conditionValue )
! : conditionValue_( conditionValue )
{
}
--- 436,440 ----
CaseStatement::CaseStatement( const ExpressionPtr &conditionValue )
! : conditionValueTracker_( conditionValue )
{
}
***************
*** 444,448 ****
CaseStatement::getConditionValue() const
{
! return conditionValue_;
}
--- 444,448 ----
CaseStatement::getConditionValue() const
{
! return conditionValueTracker_.getElement();
}
***************
*** 451,455 ****
CaseStatement::setConditionValue( const ExpressionPtr &conditionValue )
{
! conditionValue_ = conditionValue;
}
--- 451,455 ----
CaseStatement::setConditionValue( const ExpressionPtr &conditionValue )
{
! conditionValueTracker_.setElement( conditionValue );
}
***************
*** 566,570 ****
ExpressionStatement::ExpressionStatement( const ExpressionPtr &expression )
! : expression_( expression )
{
}
--- 566,570 ----
ExpressionStatement::ExpressionStatement( const ExpressionPtr &expression )
! : expressionTracker_( expression )
{
}
***************
*** 574,578 ****
ExpressionStatement::getExpression() const
{
! return expression_;
}
--- 574,578 ----
ExpressionStatement::getExpression() const
{
! return expressionTracker_.getElement();
}
***************
*** 581,585 ****
ExpressionStatement::setExpression( const ExpressionPtr &expression )
{
! expression_ = expression;
}
--- 581,585 ----
ExpressionStatement::setExpression( const ExpressionPtr &expression )
{
! expressionTracker_.setElement( expression );
}
|
|
From: <bl...@us...> - 2003-03-16 14:39:19
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring
In directory sc8-pr-cvs1:/tmp/cvs-serv22508/include/rfta/refactoring
Modified Files:
CodeModelElement.h CodeModelStatements.h
Log Message:
* refactored to use ChangeTracker in statements
Index: CodeModelElement.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelElement.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** CodeModelElement.h 16 Mar 2003 13:51:06 -0000 1.8
--- CodeModelElement.h 16 Mar 2003 14:39:13 -0000 1.9
***************
*** 6,12 ****
#define RFTA_CODEMODELELEMENT_H
! #include <rfta/refactoring/Config.h>
#include <rfta/parser/SourceRange.h>
#include <rfta/parser/ASTNodeForward.h>
namespace Refactoring { namespace CodeModel
--- 6,13 ----
#define RFTA_CODEMODELELEMENT_H
! #include <rfta/refactoring/CodeModelForward.h>
#include <rfta/parser/SourceRange.h>
#include <rfta/parser/ASTNodeForward.h>
+ #include <stdexcept>
namespace Refactoring { namespace CodeModel
***************
*** 96,103 ****
--- 97,170 ----
+ struct NoConstraintPolicy
+ {
+ template<typename Type>
+ static void checkConstraint( const Type & )
+ {
+ }
+ };
+
+ struct NotNullConstraintPolicy
+ {
+ template<typename Type>
+ static void checkConstraint( const Type &pointer )
+ {
+ if ( !pointer )
+ throw std::invalid_argument( "ChangeTracker: parameter can not be null." );
+ }
+ };
+
+
+ // Change.type_ can only either replaced or unmodified.
+ template<typename TrackedType
+ ,typename ConstraintPolicy = NotNullConstraintPolicy>
class ChangeTracker
{
+ public:
+ ChangeTracker( const TrackedType &element )
+ : element_( element )
+ {
+ ConstraintPolicy::checkConstraint( element );
+ }
+
+ void setElementIsFromSource()
+ {
+ change_.type_ = Change::unmodified;
+ change_.oldRange_ = hasElement() ? element_->getSourceRange()
+ : SourceRange();
+ }
+
+ void setElement( const TrackedType &newElement )
+ {
+ ConstraintPolicy::checkConstraint( newElement );
+
+ change_.type_ = Change::replaced;
+ element_ = newElement;
+ }
+
+ bool hasElement() const
+ {
+ return element_;
+ }
+
+ TrackedType getElement() const
+ {
+ return element_;
+ }
+
+ Change getChange() const
+ {
+ return change_;
+ }
+
+ private:
+ Change change_;
+ TrackedType element_;
};
+
+
+ typedef ChangeTracker<StatementPtr> StatementChangeTracker;
+ typedef ChangeTracker<ExpressionPtr> ExpressionChangeTracker;
Index: CodeModelStatements.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelStatements.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** CodeModelStatements.h 16 Mar 2003 13:51:06 -0000 1.9
--- CodeModelStatements.h 16 Mar 2003 14:39:13 -0000 1.10
***************
*** 80,83 ****
--- 80,84 ----
ExpressionPtr getCondition() const;
+
void setCondition( const ExpressionPtr &condition );
***************
*** 86,90 ****
private:
! ExpressionPtr condition_;
};
--- 87,91 ----
private:
! ExpressionChangeTracker conditionTracker_;
};
***************
*** 136,140 ****
private:
! StatementPtr iteratedStatement_;
};
--- 137,141 ----
private:
! StatementChangeTracker iteratedStatementTracker_;
};
***************
*** 198,202 ****
private:
! CompoundStatementPtr statements_;
};
--- 199,203 ----
private:
! ChangeTracker<CompoundStatementPtr> statementsTracker_;
};
***************
*** 220,227 ****
const std::string getLabelName() const;
void setLabelName( const std::string &labelName );
private:
! std::string labelName_;
};
--- 221,229 ----
const std::string getLabelName() const;
+
void setLabelName( const std::string &labelName );
private:
! ChangeTracker<std::string,NoConstraintPolicy> labelNameTracker_;
};
***************
*** 263,266 ****
--- 265,269 ----
ExpressionPtr getConditionValue() const;
+
void setConditionValue( const ExpressionPtr &conditionValue );
***************
*** 269,273 ****
private:
! ExpressionPtr conditionValue_;
};
--- 272,276 ----
private:
! ExpressionChangeTracker conditionValueTracker_;
};
***************
*** 333,337 ****
private:
! ExpressionPtr expression_;
};
--- 336,340 ----
private:
! ExpressionChangeTracker expressionTracker_;
};
|
|
From: <bl...@us...> - 2003-03-16 13:51:40
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring
In directory sc8-pr-cvs1:/tmp/cvs-serv5148/include/rfta/refactoring
Modified Files:
CodeModelElement.h CodeModelExpressions.h CodeModelForward.h
CodeModelStatements.h
Log Message:
* renamed Element::originalTextSet() to setElementIsFromSource().
Index: CodeModelElement.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelElement.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** CodeModelElement.h 16 Mar 2003 13:44:24 -0000 1.7
--- CodeModelElement.h 16 Mar 2003 13:51:06 -0000 1.8
***************
*** 14,17 ****
--- 14,51 ----
+ /// This class represents
+ class Element
+ {
+ public:
+ Element();
+
+ virtual ~Element();
+
+ /// Indicates if the elements was created by the parser (if so, then it has a source range).
+ bool isFromSource() const;
+
+ /** Returns the source text for this element.
+ * \return Source text for this element if it was parsed, otherwise returns an empty string.
+ */
+ const std::string getSourceText() const;
+
+ /** Returns the source range for this element.
+ * \return Source range of this element if it was parser, an empty source range otherwise.
+ */
+ const SourceRange getSourceRange() const;
+
+ /** Set the source for this element.
+ */
+ void setSource( const ASTNodePtr &node );
+
+ private:
+ /** Called after setSource() is called.
+ */
+ virtual void setElementIsFromSource();
+
+ ASTNodePtr node_;
+ };
+
+
class Change
{
***************
*** 62,94 ****
- /// This class represents
- class Element
- {
- public:
- Element();
-
- virtual ~Element();
-
- /// Indicates if the elements was created by the parser (if so, then it has a source range).
- bool isFromSource() const;
-
- /** Returns the source text for this element.
- * \return Source text for this element if it was parsed, otherwise returns an empty string.
- */
- const std::string getSourceText() const;
-
- /** Returns the source range for this element.
- * \return Source range of this element if it was parser, an empty source range otherwise.
- */
- const SourceRange getSourceRange() const;
-
- /** Set the source for this element.
- */
- void setSource( const ASTNodePtr &node );
-
- private:
- virtual void originalTextSet();
! ASTNodePtr node_;
};
--- 96,102 ----
! class ChangeTracker
! {
};
Index: CodeModelExpressions.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelExpressions.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** CodeModelExpressions.h 16 Mar 2003 13:44:24 -0000 1.8
--- CodeModelExpressions.h 16 Mar 2003 13:51:06 -0000 1.9
***************
*** 41,45 ****
private: // overridden from CodeElement
! void originalTextSet();
private:
--- 41,45 ----
private: // overridden from CodeElement
! void setElementIsFromSource();
private:
Index: CodeModelForward.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelForward.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** CodeModelForward.h 15 Mar 2003 21:29:40 -0000 1.5
--- CodeModelForward.h 16 Mar 2003 13:51:06 -0000 1.6
***************
*** 48,51 ****
--- 48,52 ----
class StatementVisitor;
+ typedef boost::shared_ptr<Element> ElementPtr;
typedef boost::shared_ptr<DeclaratorExpression> DeclaratorExpressionPtr;
typedef boost::shared_ptr<Expression> ExpressionPtr;
Index: CodeModelStatements.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelStatements.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** CodeModelStatements.h 16 Mar 2003 13:15:07 -0000 1.8
--- CodeModelStatements.h 16 Mar 2003 13:51:06 -0000 1.9
***************
*** 63,67 ****
private: // overridden from CodeElement
! void originalTextSet();
private:
--- 63,67 ----
private: // overridden from CodeElement
! void setElementIsFromSource();
private:
***************
*** 313,317 ****
private: // overridden from CodeElement
! void originalTextSet();
private:
--- 313,317 ----
private: // overridden from CodeElement
! void setElementIsFromSource();
private:
|
|
From: <bl...@us...> - 2003-03-16 13:51:14
|
Update of /cvsroot/cpptool/rfta/src In directory sc8-pr-cvs1:/tmp/cvs-serv5148/src Modified Files: rfta.opt Log Message: * renamed Element::originalTextSet() to setElementIsFromSource(). Index: rfta.opt =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta.opt,v retrieving revision 1.87 retrieving revision 1.88 diff -C2 -d -r1.87 -r1.88 Binary files /tmp/cvst8vIkZ and /tmp/cvsCHBhnP differ |
|
From: <bl...@us...> - 2003-03-16 13:51:13
|
Update of /cvsroot/cpptool/rfta/src/rfta
In directory sc8-pr-cvs1:/tmp/cvs-serv5148/src/rfta
Modified Files:
CodeModelElement.cpp CodeModelExpressions.cpp
CodeModelStatements.cpp
Log Message:
* renamed Element::originalTextSet() to setElementIsFromSource().
Index: CodeModelElement.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelElement.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** CodeModelElement.cpp 16 Mar 2003 13:44:25 -0000 1.7
--- CodeModelElement.cpp 16 Mar 2003 13:51:08 -0000 1.8
***************
*** 23,32 ****
- void
- Element::originalTextSet()
- {
- }
-
-
bool
Element::isFromSource() const
--- 23,26 ----
***************
*** 58,62 ****
{
node_ = node;
! originalTextSet();
}
--- 52,62 ----
{
node_ = node;
! setElementIsFromSource();
! }
!
!
! void
! Element::setElementIsFromSource()
! {
}
Index: CodeModelExpressions.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelExpressions.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** CodeModelExpressions.cpp 16 Mar 2003 13:44:25 -0000 1.7
--- CodeModelExpressions.cpp 16 Mar 2003 13:51:09 -0000 1.8
***************
*** 52,56 ****
void
! GenericExpression::originalTextSet()
{
valueChange_.type_ = Change::unmodified;
--- 52,56 ----
void
! GenericExpression::setElementIsFromSource()
{
valueChange_.type_ = Change::unmodified;
Index: CodeModelStatements.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelStatements.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** CodeModelStatements.cpp 16 Mar 2003 13:44:25 -0000 1.8
--- CodeModelStatements.cpp 16 Mar 2003 13:51:09 -0000 1.9
***************
*** 100,104 ****
void
! CompoundStatement::originalTextSet()
{
for ( Statements::iterator it = statements_.begin(); it != statements_.end(); ++it )
--- 100,104 ----
void
! CompoundStatement::setElementIsFromSource()
{
for ( Statements::iterator it = statements_.begin(); it != statements_.end(); ++it )
***************
*** 551,555 ****
void
! ReturnStatement::originalTextSet()
{
change_.type_ = Change::unmodified;
--- 551,555 ----
void
! ReturnStatement::setElementIsFromSource()
{
change_.type_ = Change::unmodified;
|
Update of /cvsroot/cpptool/rfta/src/rfta
In directory sc8-pr-cvs1:/tmp/cvs-serv2880/src/rfta
Modified Files:
CodeModel.cpp CodeModelElement.cpp CodeModelExpressions.cpp
CodeModelGeneratorTest.cpp CodeModelStatements.cpp
CodeRewriter.cpp
Log Message:
* refactored: inlined class ElementText in Element and renamed methods.
Index: CodeModel.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModel.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** CodeModel.cpp 16 Mar 2003 13:15:22 -0000 1.6
--- CodeModel.cpp 16 Mar 2003 13:44:25 -0000 1.7
***************
*** 80,84 ****
}
! compound->setOriginalText( ElementText( compoundNode ) );
return compound;
}
--- 80,84 ----
}
! setElementSource( *compound, compoundNode );
return compound;
}
***************
*** 98,103 ****
GeneratorFunction function = it->second;
StatementPtr statement = (this->*function)( statementNode );
! // statement->setSourceRange( statementNode->getRange() );
! statement->setOriginalText( ElementText( statementNode ) );
return statement;
}
--- 98,102 ----
GeneratorFunction function = it->second;
StatementPtr statement = (this->*function)( statementNode );
! setElementSource( *statement, statementNode );
return statement;
}
***************
*** 309,313 ****
std::string value = expressionNode->getOriginalText();
ExpressionPtr expression( new GenericExpression() );
! expression->setOriginalText( ElementText( expressionNode ) );
return expression;
}
--- 308,312 ----
std::string value = expressionNode->getOriginalText();
ExpressionPtr expression( new GenericExpression() );
! setElementSource( *expression, expressionNode );
return expression;
}
***************
*** 318,323 ****
{
ExpressionPtr expression( new NullExpression() );
! // expression->setSourceRange( expressionNode->getRange() );
! expression->setOriginalText( ElementText( expressionNode ) );
return expression;
}
--- 317,321 ----
{
ExpressionPtr expression( new NullExpression() );
! setElementSource( *expression, expressionNode );
return expression;
}
***************
*** 329,334 ****
const std::string primaryType( getDeclaratorPrimaryType( expression ) );
DeclaratorExpressionPtr declaratorExpression( new DeclaratorExpression( primaryType ) );
! declaratorExpression->setOriginalText( ElementText( expression ) );
! // declaratorExpression->setSourceRange( expression->getRange() );
for ( int index = 0; index < expression->getChildCount(); ++index )
--- 327,331 ----
const std::string primaryType( getDeclaratorPrimaryType( expression ) );
DeclaratorExpressionPtr declaratorExpression( new DeclaratorExpression( primaryType ) );
! setElementSource( *declaratorExpression, expression );
for ( int index = 0; index < expression->getChildCount(); ++index )
***************
*** 386,391 ****
initializerNode->getProperty( ASTNodeProperties::valueProperty );
ExpressionPtr value = generateExpression( valueNode );
! value->setOriginalText( ElementText( valueNode ) );
! // value->setSourceRange( valueNode->getRange() );
ExpressionPtr initializer;
--- 383,387 ----
initializerNode->getProperty( ASTNodeProperties::valueProperty );
ExpressionPtr value = generateExpression( valueNode );
! setElementSource( *value, valueNode );
ExpressionPtr initializer;
***************
*** 395,402 ****
initializer.reset( new ConstructorInitializerExpression( value ) );
! // initializer->setSourceRange( initializerNode->getRange() );
! initializer->setOriginalText( ElementText( initializerNode ) );
return initializer;
}
--- 391,404 ----
initializer.reset( new ConstructorInitializerExpression( value ) );
! setElementSource( *initializer, initializerNode );
return initializer;
+ }
+
+
+ void
+ Generator::setElementSource( Element &element, const ASTNodePtr &node )
+ {
+ element.setSource( node );
}
Index: CodeModelElement.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelElement.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** CodeModelElement.cpp 16 Mar 2003 13:15:22 -0000 1.6
--- CodeModelElement.cpp 16 Mar 2003 13:44:25 -0000 1.7
***************
*** 13,64 ****
! ElementText::ElementText()
! : hasNewText_( true )
{
}
! ElementText::ElementText( const ASTNodePtr &node )
! : node_( node )
! , hasNewText_( false )
{
}
- ElementText::ElementText( const std::string &text )
- : newText_( text )
- , hasNewText_( true )
- {
- }
-
- /*
void
! ElementText::setText( const std::string &newText )
! {
! hasNewText_ = true;
! newText_ = newText;
! }
! */
!
! const std::string
! ElementText::getOriginalText() const
! {
! if ( hasNewText_ )
! return newText_;
! return node_->getOriginalText();
! }
!
!
! const SourceRange
! ElementText::getOriginalSourceRange() const
{
- if ( node_ )
- return node_->getRange();
- return SourceRange();
}
bool
! ElementText::hasOriginalSourceRange() const
{
return node_;
--- 13,34 ----
! Element::Element()
{
}
! Element::~Element()
{
}
void
! Element::originalTextSet()
{
}
bool
! Element::isFromSource() const
{
return node_;
***************
*** 66,104 ****
! Element::Element()
{
}
! Element::~Element()
{
}
void
! Element::setOriginalText( const ElementText &text )
{
! text_ = text;
originalTextSet();
- }
-
- /*
- void
- Element::setText( const std::string &text )
- {
- text_.setText( text );
- }
- */
-
- const ElementText &
- Element::getText() const
- {
- return text_;
- }
-
-
- void
- Element::originalTextSet()
- {
}
--- 36,62 ----
! const std::string
! Element::getSourceText() const
{
+ if ( node_ )
+ return node_->getOriginalText();
+ return std::string();
}
! const SourceRange
! Element::getSourceRange() const
{
+ if ( node_ )
+ return node_->getRange();
+ return SourceRange();
}
void
! Element::setSource( const ASTNodePtr &node )
{
! node_ = node;
originalTextSet();
}
Index: CodeModelExpressions.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelExpressions.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** CodeModelExpressions.cpp 16 Mar 2003 13:15:22 -0000 1.6
--- CodeModelExpressions.cpp 16 Mar 2003 13:44:25 -0000 1.7
***************
*** 24,31 ****
const std::string
! GenericExpression::getTextValue() const
{
if ( valueChange_.isUnmodified() )
! return getText().getOriginalText();
return value_;
}
--- 24,31 ----
const std::string
! GenericExpression::getValueText() const
{
if ( valueChange_.isUnmodified() )
! return getSourceText();
return value_;
}
***************
*** 38,42 ****
{
valueChange_.type_ = Change::replaced;
! valueChange_.oldRange_ = getText().getOriginalSourceRange();
}
value_ = value;
--- 38,42 ----
{
valueChange_.type_ = Change::replaced;
! valueChange_.oldRange_ = getSourceRange();
}
value_ = value;
Index: CodeModelGeneratorTest.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelGeneratorTest.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** CodeModelGeneratorTest.cpp 15 Mar 2003 16:57:39 -0000 1.2
--- CodeModelGeneratorTest.cpp 16 Mar 2003 13:44:25 -0000 1.3
***************
*** 62,66 ****
CodeModel::AssignInitializerExpression &initializer =
dynamic_cast<CodeModel::AssignInitializerExpression &>( *declarator.getInitializer() );
! RFTA_ASSERT_EQUAL( "3", initializer.getValue()->getText().getOriginalText() );
}
--- 62,66 ----
CodeModel::AssignInitializerExpression &initializer =
dynamic_cast<CodeModel::AssignInitializerExpression &>( *declarator.getInitializer() );
! RFTA_ASSERT_EQUAL( "3", initializer.getValue()->getSourceText() );
}
Index: CodeModelStatements.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelStatements.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** CodeModelStatements.cpp 16 Mar 2003 11:49:51 -0000 1.7
--- CodeModelStatements.cpp 16 Mar 2003 13:44:25 -0000 1.8
***************
*** 25,29 ****
StatementChange &change = statements_.at( getActualIndex( index ) );
change.type_ = Change::removed;
! change.oldRange_ = change.statement_->getText().getOriginalSourceRange();
change.statement_.reset();
}
--- 25,29 ----
StatementChange &change = statements_.at( getActualIndex( index ) );
change.type_ = Change::removed;
! change.oldRange_ = change.statement_->getSourceRange();
change.statement_.reset();
}
***************
*** 52,56 ****
StatementChange &change = statements_.at( getActualIndex( index ) );
change.type_ = Change::replaced;
! change.oldRange_ = change.statement_->getText().getOriginalSourceRange();
change.statement_ = statement;
}
--- 52,56 ----
StatementChange &change = statements_.at( getActualIndex( index ) );
change.type_ = Change::replaced;
! change.oldRange_ = change.statement_->getSourceRange();
change.statement_ = statement;
}
***************
*** 180,184 ****
{
thenStatementChange_.type_ = Change::replaced;
! thenStatementChange_.oldRange_ = thenStatement_->getText().getOriginalSourceRange();
thenStatement_ = statement;
}
--- 180,184 ----
{
thenStatementChange_.type_ = Change::replaced;
! thenStatementChange_.oldRange_ = thenStatement_->getSourceRange();
thenStatement_ = statement;
}
***************
*** 212,216 ****
{
elseStatementChange_.type_ = Change::replaced;
! elseStatementChange_.oldRange_ = elseStatement_->getText().getOriginalSourceRange();
}
else
--- 212,216 ----
{
elseStatementChange_.type_ = Change::replaced;
! elseStatementChange_.oldRange_ = elseStatement_->getSourceRange();
}
else
***************
*** 530,534 ****
{
change_.type_ = Change::replaced;
! change_.oldRange_ = value_->getText().getOriginalSourceRange();
}
else
--- 530,534 ----
{
change_.type_ = Change::replaced;
! change_.oldRange_ = value_->getSourceRange();
}
else
Index: CodeRewriter.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** CodeRewriter.cpp 16 Mar 2003 13:15:22 -0000 1.20
--- CodeRewriter.cpp 16 Mar 2003 13:44:25 -0000 1.21
***************
*** 167,173 ****
indentManager_.enterNewCompoundStatement();
}
! else if ( statement.getText().hasOriginalSourceRange() )
{
! nextStatementInsertionPos = statement.getText().getOriginalSourceRange().getStartIndex() + 1;
indentManager_.enterExistingCompoundStatement( nextStatementInsertionPos - 1 );
}
--- 167,173 ----
indentManager_.enterNewCompoundStatement();
}
! else if ( statement.isFromSource() )
{
! nextStatementInsertionPos = statement.getSourceRange().getStartIndex() + 1;
indentManager_.enterExistingCompoundStatement( nextStatementInsertionPos - 1 );
}
***************
*** 185,191 ****
if ( change.type_ == Change::unmodified )
! nextStatementInsertionPos = change.statement_->getText().getOriginalSourceRange().getEndIndex();
else if ( change.type_ == Change::replaced )
! deleteText( change.statement_->getText().getOriginalSourceRange() );
ModeModifier mode( mode_, change.type_ == Change::unmodified ? updating : inserting );
--- 185,191 ----
if ( change.type_ == Change::unmodified )
! nextStatementInsertionPos = change.statement_->getSourceRange().getEndIndex();
else if ( change.type_ == Change::replaced )
! deleteText( change.statement_->getSourceRange() );
ModeModifier mode( mode_, change.type_ == Change::unmodified ? updating : inserting );
***************
*** 297,302 ****
indentManager_.enterNewIfStatement();
}
! else if ( statement.getText().hasOriginalSourceRange() )
! indentManager_.enterExistingIfStatement( statement.getText().getOriginalSourceRange().getStartIndex() );
Change thenChange = statement.getThenStatementChange();
--- 297,302 ----
indentManager_.enterNewIfStatement();
}
! else if ( statement.isFromSource() )
! indentManager_.enterExistingIfStatement( statement.getSourceRange().getStartIndex() );
Change thenChange = statement.getThenStatementChange();
***************
*** 328,333 ****
startIndex = thenChange.oldRange_.getEndIndex();
else
! startIndex = statement.getThenStatement()->getText().getOriginalSourceRange().getEndIndex();
! int endIndex = statement.getText().getOriginalSourceRange().getEndIndex();
deleteText( SourceRange( startIndex, endIndex - startIndex ) );
}
--- 328,333 ----
startIndex = thenChange.oldRange_.getEndIndex();
else
! startIndex = statement.getThenStatement()->getSourceRange().getEndIndex();
! int endIndex = statement.getSourceRange().getEndIndex();
deleteText( SourceRange( startIndex, endIndex - startIndex ) );
}
***************
*** 342,346 ****
currentInsertionPos_ = thenChange.oldRange_.getEndIndex();
else
! currentInsertionPos_ = statement.getThenStatement()->getText().getOriginalSourceRange().getEndIndex();
}
}
--- 342,346 ----
currentInsertionPos_ = thenChange.oldRange_.getEndIndex();
else
! currentInsertionPos_ = statement.getThenStatement()->getSourceRange().getEndIndex();
}
}
***************
*** 398,402 ****
CodeRewriter::visit( ReturnStatement &statement )
{
- const ElementText &text = statement.getText();
if ( isUpdating() )
{
--- 398,401 ----
***************
*** 411,415 ****
if ( mode_ == inserting )
! currentInsertionPos_ = statement.getText().getOriginalSourceRange().getEndIndex() -1;
statement.getValue()->accept( *this );
--- 410,414 ----
if ( mode_ == inserting )
! currentInsertionPos_ = statement.getSourceRange().getEndIndex() -1;
statement.getValue()->accept( *this );
***************
*** 491,499 ****
{
if ( isInserting() )
! insertText( expression.getTextValue() );
else
{
! replaceText( expression.getText().getOriginalSourceRange(),
! expression.getTextValue() );
}
}
--- 490,498 ----
{
if ( isInserting() )
! insertText( expression.getValueText() );
else
{
! replaceText( expression.getSourceRange(),
! expression.getValueText() );
}
}
|
|
From: <bl...@us...> - 2003-03-16 13:44:27
|
Update of /cvsroot/cpptool/rfta/src In directory sc8-pr-cvs1:/tmp/cvs-serv2880/src Modified Files: rfta.opt Log Message: * refactored: inlined class ElementText in Element and renamed methods. Index: rfta.opt =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta.opt,v retrieving revision 1.86 retrieving revision 1.87 diff -C2 -d -r1.86 -r1.87 Binary files /tmp/cvstA02Pk and /tmp/cvsqXKiex differ |
|
From: <bl...@us...> - 2003-03-16 13:44:27
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring
In directory sc8-pr-cvs1:/tmp/cvs-serv2880/include/rfta/refactoring
Modified Files:
CodeModel.h CodeModelElement.h CodeModelExpressions.h
Log Message:
* refactored: inlined class ElementText in Element and renamed methods.
Index: CodeModel.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModel.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** CodeModel.h 22 Dec 2002 11:43:15 -0000 1.1
--- CodeModel.h 16 Mar 2003 13:44:24 -0000 1.2
***************
*** 53,56 ****
--- 53,58 ----
private:
+ void setElementSource( Element &element, const ASTNodePtr &node );
+
const std::string getDeclaratorPrimaryType( const ASTNodePtr &declaratorNode );
const Declarator makeVariableDeclarator( const ASTNodePtr &variableDeclaratorNode );
Index: CodeModelElement.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelElement.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** CodeModelElement.h 16 Mar 2003 13:15:06 -0000 1.6
--- CodeModelElement.h 16 Mar 2003 13:44:24 -0000 1.7
***************
*** 14,39 ****
- class ElementText
- {
- public:
- ElementText();
- explicit ElementText( const ASTNodePtr &node );
- explicit ElementText( const std::string &text );
-
- // void setText( const std::string &newText );
-
- const std::string getOriginalText() const;
-
- const SourceRange getOriginalSourceRange() const;
-
- bool hasOriginalSourceRange() const;
-
- private:
- ASTNodePtr node_;
- std::string newText_;
- bool hasNewText_;
- };
-
-
class Change
{
--- 14,17 ----
***************
*** 92,104 ****
virtual ~Element();
! void setOriginalText( const ElementText &text );
! // void setText( const std::string &text );
! const ElementText &getText() const;
private:
virtual void originalTextSet();
! ElementText text_;
};
--- 70,94 ----
virtual ~Element();
! /// Indicates if the elements was created by the parser (if so, then it has a source range).
! bool isFromSource() const;
! /** Returns the source text for this element.
! * \return Source text for this element if it was parsed, otherwise returns an empty string.
! */
! const std::string getSourceText() const;
!
! /** Returns the source range for this element.
! * \return Source range of this element if it was parser, an empty source range otherwise.
! */
! const SourceRange getSourceRange() const;
!
! /** Set the source for this element.
! */
! void setSource( const ASTNodePtr &node );
private:
virtual void originalTextSet();
! ASTNodePtr node_;
};
Index: CodeModelExpressions.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelExpressions.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** CodeModelExpressions.h 16 Mar 2003 13:15:07 -0000 1.7
--- CodeModelExpressions.h 16 Mar 2003 13:44:24 -0000 1.8
***************
*** 31,35 ****
GenericExpression( const std::string &value = "" );
! const std::string getTextValue() const;
void setValueText( const std::string &value );
--- 31,35 ----
GenericExpression( const std::string &value = "" );
! const std::string getValueText() const;
void setValueText( const std::string &value );
|
|
From: <bl...@us...> - 2003-03-16 13:15:42
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring
In directory sc8-pr-cvs1:/tmp/cvs-serv25283/include/rfta/refactoring
Modified Files:
CodeModelElement.h CodeModelExpressions.h
CodeModelStatements.h
Log Message:
* refactored so that GenericExpression don't rely on ElementText::setText().
Index: CodeModelElement.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelElement.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** CodeModelElement.h 12 Mar 2003 07:46:09 -0000 1.5
--- CodeModelElement.h 16 Mar 2003 13:15:06 -0000 1.6
***************
*** 21,25 ****
explicit ElementText( const std::string &text );
! void setText( const std::string &newText );
const std::string getOriginalText() const;
--- 21,25 ----
explicit ElementText( const std::string &text );
! // void setText( const std::string &newText );
const std::string getOriginalText() const;
***************
*** 29,38 ****
bool hasOriginalSourceRange() const;
- bool isOriginalText() const;
-
- bool isModifiedText() const;
-
- bool isNewText() const;
-
private:
ASTNodePtr node_;
--- 29,32 ----
***************
*** 42,45 ****
--- 36,87 ----
+ class Change
+ {
+ public:
+ enum ChangeType
+ {
+ added = 0,
+ replaced,
+ removed,
+ unmodified
+ };
+
+ Change()
+ : type_( unmodified )
+ {
+ }
+
+ Change( ChangeType type,
+ const SourceRange &oldRange = SourceRange() )
+ : type_( type )
+ , oldRange_( oldRange )
+ {
+ }
+
+ bool wasReplaced() const
+ {
+ return type_ == replaced;
+ }
+
+ bool wasRemoved() const
+ {
+ return type_ == removed;
+ }
+
+ bool wasAdded() const
+ {
+ return type_ == added;
+ }
+
+ bool isUnmodified() const
+ {
+ return type_ == unmodified;
+ }
+
+ ChangeType type_;
+ SourceRange oldRange_;
+ };
+
+
/// This class represents
class Element
***************
*** 51,55 ****
void setOriginalText( const ElementText &text );
! void setText( const std::string &text );
const ElementText &getText() const;
--- 93,97 ----
void setOriginalText( const ElementText &text );
! // void setText( const std::string &text );
const ElementText &getText() const;
Index: CodeModelExpressions.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelExpressions.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** CodeModelExpressions.h 12 Mar 2003 07:46:09 -0000 1.6
--- CodeModelExpressions.h 16 Mar 2003 13:15:07 -0000 1.7
***************
*** 29,43 ****
{
public:
! GenericExpression( const ElementText &value );
! GenericExpression( const std::string &value );
! // const std::string getValue() const;
! // void setValue( const std::string &value );
// overridden from Expression
void accept( ExpressionVisitor &visitor );
private:
! // std::string value_;
};
--- 29,49 ----
{
public:
! GenericExpression( const std::string &value = "" );
! const std::string getTextValue() const;
!
! void setValueText( const std::string &value );
!
! Change getValueChange() const;
// overridden from Expression
void accept( ExpressionVisitor &visitor );
+ private: // overridden from CodeElement
+ void originalTextSet();
+
private:
! std::string value_;
! Change valueChange_;
};
Index: CodeModelStatements.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelStatements.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** CodeModelStatements.h 16 Mar 2003 11:49:48 -0000 1.7
--- CodeModelStatements.h 16 Mar 2003 13:15:07 -0000 1.8
***************
*** 17,68 ****
- class Change
- {
- public:
- enum ChangeType
- {
- added = 0,
- replaced,
- removed,
- unmodified
- };
-
- Change()
- : type_( unmodified )
- {
- }
-
- Change( ChangeType type,
- const SourceRange &oldRange = SourceRange() )
- : type_( type )
- , oldRange_( oldRange )
- {
- }
-
- bool wasReplaced() const
- {
- return type_ == replaced;
- }
-
- bool wasRemoved() const
- {
- return type_ == removed;
- }
-
- bool wasAdded() const
- {
- return type_ == added;
- }
-
- bool isUnmodified() const
- {
- return type_ == unmodified;
- }
-
- ChangeType type_;
- SourceRange oldRange_;
- };
-
-
class Statement : public Element
{
--- 17,20 ----
|
|
From: <bl...@us...> - 2003-03-16 13:15:26
|
Update of /cvsroot/cpptool/rfta/src/rfta
In directory sc8-pr-cvs1:/tmp/cvs-serv25283/src/rfta
Modified Files:
CodeModel.cpp CodeModelElement.cpp CodeModelExpressions.cpp
CodeRewriter.cpp CodeWriterTest.cpp
Log Message:
* refactored so that GenericExpression don't rely on ElementText::setText().
Index: CodeModel.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModel.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** CodeModel.cpp 8 Mar 2003 13:11:42 -0000 1.5
--- CodeModel.cpp 16 Mar 2003 13:15:22 -0000 1.6
***************
*** 308,313 ****
{
std::string value = expressionNode->getOriginalText();
! ExpressionPtr expression( new GenericExpression( ElementText( value ) ) );
! // expression->setSourceRange( expressionNode->getRange() );
expression->setOriginalText( ElementText( expressionNode ) );
return expression;
--- 308,312 ----
{
std::string value = expressionNode->getOriginalText();
! ExpressionPtr expression( new GenericExpression() );
expression->setOriginalText( ElementText( expressionNode ) );
return expression;
Index: CodeModelElement.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelElement.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** CodeModelElement.cpp 7 Mar 2003 09:41:11 -0000 1.5
--- CodeModelElement.cpp 16 Mar 2003 13:15:22 -0000 1.6
***************
*** 32,36 ****
}
!
void
ElementText::setText( const std::string &newText )
--- 32,36 ----
}
! /*
void
ElementText::setText( const std::string &newText )
***************
*** 39,43 ****
newText_ = newText;
}
!
const std::string
--- 39,43 ----
newText_ = newText;
}
! */
const std::string
***************
*** 66,96 ****
- bool
- ElementText::isOriginalText() const
- {
- return node_ && !hasNewText_;
- }
-
-
- bool
- ElementText::isModifiedText() const
- {
- return node_ && hasNewText_;
- }
-
-
- bool
- ElementText::isNewText() const
- {
- return !node_ && hasNewText_ ;
- }
-
-
-
-
Element::Element()
- // : wasReplaced_( false )
{
- // unsetSourceRange();
}
--- 66,71 ----
***************
*** 108,112 ****
}
!
void
Element::setText( const std::string &text )
--- 83,87 ----
}
! /*
void
Element::setText( const std::string &text )
***************
*** 114,118 ****
text_.setText( text );
}
!
const ElementText &
--- 89,93 ----
text_.setText( text );
}
! */
const ElementText &
Index: CodeModelExpressions.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelExpressions.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** CodeModelExpressions.cpp 7 Mar 2003 09:41:11 -0000 1.5
--- CodeModelExpressions.cpp 16 Mar 2003 13:15:22 -0000 1.6
***************
*** 16,34 ****
- GenericExpression::GenericExpression( const ElementText &value )
- {
- setOriginalText( value );
- }
-
-
GenericExpression::GenericExpression( const std::string &value )
{
- setText( value );
}
! /*
const std::string
! GenericExpression::getValue() const
{
return value_;
}
--- 16,31 ----
GenericExpression::GenericExpression( const std::string &value )
+ : value_( value )
+ , valueChange_( Change( Change::replaced ) )
{
}
!
const std::string
! GenericExpression::getTextValue() const
{
+ if ( valueChange_.isUnmodified() )
+ return getText().getOriginalText();
return value_;
}
***************
*** 36,45 ****
void
! GenericExpression::setValue( const std::string &value )
{
! replace();
value_ = value;
}
! */
void
--- 33,60 ----
void
! GenericExpression::setValueText( const std::string &value )
{
! if ( valueChange_.isUnmodified() )
! {
! valueChange_.type_ = Change::replaced;
! valueChange_.oldRange_ = getText().getOriginalSourceRange();
! }
value_ = value;
}
!
!
! Change
! GenericExpression::getValueChange() const
! {
! return valueChange_;
! }
!
!
! void
! GenericExpression::originalTextSet()
! {
! valueChange_.type_ = Change::unmodified;
! }
!
void
Index: CodeRewriter.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** CodeRewriter.cpp 16 Mar 2003 12:24:47 -0000 1.19
--- CodeRewriter.cpp 16 Mar 2003 13:15:22 -0000 1.20
***************
*** 491,513 ****
{
if ( isInserting() )
! insertText( expression.getText().getOriginalText() );
! else if ( expression.getText().isModifiedText() )
! {
! replaceText( expression.getText().getOriginalSourceRange(),
! expression.getText().getOriginalText() );
! }
!
!
! #if 0
! if ( expression.getText().isModifiedText() )
{
replaceText( expression.getText().getOriginalSourceRange(),
! expression.getText().getOriginalText() );
! }
! else if ( expression.getText().isNewText() )
! {
! insertText( expression.getText().getOriginalText() );
}
- #endif
}
--- 491,500 ----
{
if ( isInserting() )
! insertText( expression.getTextValue() );
! else
{
replaceText( expression.getText().getOriginalSourceRange(),
! expression.getTextValue() );
}
}
Index: CodeWriterTest.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.cpp,v
retrieving revision 1.23
retrieving revision 1.24
diff -C2 -d -r1.23 -r1.24
*** CodeWriterTest.cpp 16 Mar 2003 12:24:47 -0000 1.23
--- CodeWriterTest.cpp 16 Mar 2003 13:15:22 -0000 1.24
***************
*** 55,59 ****
dynamic_cast<CodeModel::GenericExpression &>(
*ifStatement.getCondition() );
! condition.setText( "false" );
rewriteSource();
--- 55,59 ----
dynamic_cast<CodeModel::GenericExpression &>(
*ifStatement.getCondition() );
! condition.setValueText( "false" );
rewriteSource();
|
|
From: <bl...@us...> - 2003-03-16 13:15:24
|
Update of /cvsroot/cpptool/rfta/src In directory sc8-pr-cvs1:/tmp/cvs-serv25283/src Modified Files: rfta.opt Log Message: * refactored so that GenericExpression don't rely on ElementText::setText(). Index: rfta.opt =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta.opt,v retrieving revision 1.85 retrieving revision 1.86 diff -C2 -d -r1.85 -r1.86 Binary files /tmp/cvsabwB9A and /tmp/cvse8mYL3 differ |
|
From: <bl...@us...> - 2003-03-16 12:24:50
|
Update of /cvsroot/cpptool/rfta/src/rfta
In directory sc8-pr-cvs1:/tmp/cvs-serv10207/src/rfta
Modified Files:
CodeRewriter.cpp CodeWriterTest.cpp CodeWriterTest.h
Log Message:
* added support for replacing else clause of an if statement.
Index: CodeRewriter.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** CodeRewriter.cpp 16 Mar 2003 11:49:51 -0000 1.18
--- CodeRewriter.cpp 16 Mar 2003 12:24:47 -0000 1.19
***************
*** 354,359 ****
beginInsertNewStatement();
insertText( "else" );
- indentManager_.enterNewElseStatement();
}
Mode elseMode;
--- 354,361 ----
beginInsertNewStatement();
insertText( "else" );
}
+
+ if ( isInserting() || (isUpdating() && !elseChange.isUnmodified() ) )
+ indentManager_.enterNewElseStatement();
Mode elseMode;
Index: CodeWriterTest.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.cpp,v
retrieving revision 1.22
retrieving revision 1.23
diff -C2 -d -r1.22 -r1.23
*** CodeWriterTest.cpp 16 Mar 2003 11:55:45 -0000 1.22
--- CodeWriterTest.cpp 16 Mar 2003 12:24:47 -0000 1.23
***************
*** 210,212 ****
--- 210,235 ----
+ void
+ CodeWriterTest::testModifyElseFromIfThenStatement()
+ {
+ source_ = "{\n"
+ " if ( true )\n"
+ " return 5;\n"
+ " else\n"
+ " return 7;\n"
+ "}";
+ generateCompound();
+
+ CodeModel::IfStatement &ifStatement =
+ dynamic_cast<CodeModel::IfStatement &>( *compound_->getStatementAt(0) );
+ ifStatement.setElseStatement( makeBreakStatement() );
+ generateAndCheckSource( "{\n"
+ " if ( true )\n"
+ " return 5;\n"
+ " else\n"
+ " break;\n"
+ "}" );
+ }
+
+
} // namespace Refactoring
Index: CodeWriterTest.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.h,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** CodeWriterTest.h 16 Mar 2003 11:55:45 -0000 1.19
--- CodeWriterTest.h 16 Mar 2003 12:24:47 -0000 1.20
***************
*** 24,27 ****
--- 24,28 ----
CPPUNIT_TEST( testAddElseToIfThenStatement );
CPPUNIT_TEST( testRemoveElseFromIfThenStatement );
+ CPPUNIT_TEST( testModifyElseFromIfThenStatement );
CPPUNIT_TEST_SUITE_END();
***************
*** 44,47 ****
--- 45,49 ----
void testAddElseToIfThenStatement();
void testRemoveElseFromIfThenStatement();
+ void testModifyElseFromIfThenStatement();
private:
|
|
From: <bl...@us...> - 2003-03-16 12:24:49
|
Update of /cvsroot/cpptool/rfta/src In directory sc8-pr-cvs1:/tmp/cvs-serv10207/src Modified Files: rfta.opt Log Message: * added support for replacing else clause of an if statement. Index: rfta.opt =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta.opt,v retrieving revision 1.84 retrieving revision 1.85 diff -C2 -d -r1.84 -r1.85 Binary files /tmp/cvsUv5aVy and /tmp/cvs8CTltZ differ |
|
From: <bl...@us...> - 2003-03-16 11:55:48
|
Update of /cvsroot/cpptool/rfta/src/rfta
In directory sc8-pr-cvs1:/tmp/cvs-serv29813/src/rfta
Modified Files:
CodeWriterTest.cpp CodeWriterTest.h
Log Message:
* added support for removing else clause from an if statement.
Index: CodeWriterTest.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.cpp,v
retrieving revision 1.21
retrieving revision 1.22
diff -C2 -d -r1.21 -r1.22
*** CodeWriterTest.cpp 16 Mar 2003 11:49:51 -0000 1.21
--- CodeWriterTest.cpp 16 Mar 2003 11:55:45 -0000 1.22
***************
*** 189,191 ****
--- 189,212 ----
+ void
+ CodeWriterTest::testRemoveElseFromIfThenStatement()
+ {
+ source_ = "{\n"
+ " if ( true )\n"
+ " return;\n"
+ " else\n"
+ " break;\n"
+ "}";
+ generateCompound();
+
+ CodeModel::IfStatement &ifStatement =
+ dynamic_cast<CodeModel::IfStatement &>( *compound_->getStatementAt(0) );
+ ifStatement.setElseStatement( CodeModel::StatementPtr() );
+ generateAndCheckSource( "{\n"
+ " if ( true )\n"
+ " return;\n"
+ "}" );
+ }
+
+
} // namespace Refactoring
Index: CodeWriterTest.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -C2 -d -r1.18 -r1.19
*** CodeWriterTest.h 16 Mar 2003 11:49:51 -0000 1.18
--- CodeWriterTest.h 16 Mar 2003 11:55:45 -0000 1.19
***************
*** 23,26 ****
--- 23,27 ----
CPPUNIT_TEST( testModifyIfThenStatement );
CPPUNIT_TEST( testAddElseToIfThenStatement );
+ CPPUNIT_TEST( testRemoveElseFromIfThenStatement );
CPPUNIT_TEST_SUITE_END();
***************
*** 42,45 ****
--- 43,47 ----
void testModifyIfThenStatement();
void testAddElseToIfThenStatement();
+ void testRemoveElseFromIfThenStatement();
private:
|
|
From: <bl...@us...> - 2003-03-16 11:55:48
|
Update of /cvsroot/cpptool/rfta/src In directory sc8-pr-cvs1:/tmp/cvs-serv29813/src Modified Files: rfta.opt Log Message: * added support for removing else clause from an if statement. Index: rfta.opt =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta.opt,v retrieving revision 1.83 retrieving revision 1.84 diff -C2 -d -r1.83 -r1.84 Binary files /tmp/cvsi8IY3s and /tmp/cvsqyqcKN differ |
|
From: <bl...@us...> - 2003-03-16 11:50:21
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring
In directory sc8-pr-cvs1:/tmp/cvs-serv26837/include/rfta/refactoring
Modified Files:
CodeModelStatements.h
Log Message:
* added support for adding else clause to an if statement.
Index: CodeModelStatements.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelStatements.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** CodeModelStatements.h 16 Mar 2003 10:23:05 -0000 1.6
--- CodeModelStatements.h 16 Mar 2003 11:49:48 -0000 1.7
***************
*** 45,48 ****
--- 45,58 ----
}
+ bool wasRemoved() const
+ {
+ return type_ == removed;
+ }
+
+ bool wasAdded() const
+ {
+ return type_ == added;
+ }
+
bool isUnmodified() const
{
***************
*** 147,150 ****
--- 157,162 ----
StatementPtr getElseStatement() const;
void setElseStatement( const StatementPtr &statement );
+
+ Change getElseStatementChange() const;
// overriden from Statement
***************
*** 153,156 ****
--- 165,169 ----
private:
Change thenStatementChange_;
+ Change elseStatementChange_;
StatementPtr thenStatement_;
StatementPtr elseStatement_;
|
|
From: <bl...@us...> - 2003-03-16 11:50:00
|
Update of /cvsroot/cpptool/rfta/src/rfta
In directory sc8-pr-cvs1:/tmp/cvs-serv26837/src/rfta
Modified Files:
CodeModelStatements.cpp CodeRewriter.cpp CodeWriterTest.cpp
CodeWriterTest.h
Log Message:
* added support for adding else clause to an if statement.
Index: CodeModelStatements.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelStatements.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** CodeModelStatements.cpp 16 Mar 2003 10:23:07 -0000 1.6
--- CodeModelStatements.cpp 16 Mar 2003 11:49:51 -0000 1.7
***************
*** 209,213 ****
--- 209,231 ----
IfStatement::setElseStatement( const StatementPtr &statement )
{
+ if ( hasElseStatement() && elseStatementChange_.type_ == Change::unmodified )
+ {
+ elseStatementChange_.type_ = Change::replaced;
+ elseStatementChange_.oldRange_ = elseStatement_->getText().getOriginalSourceRange();
+ }
+ else
+ elseStatementChange_.type_ = Change::added;
+
+ if ( !statement )
+ elseStatementChange_.type_ = Change::removed;
+
elseStatement_ = statement;
+ }
+
+
+ Change
+ IfStatement::getElseStatementChange() const
+ {
+ return elseStatementChange_;
}
Index: CodeRewriter.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.cpp,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** CodeRewriter.cpp 16 Mar 2003 10:23:07 -0000 1.17
--- CodeRewriter.cpp 16 Mar 2003 11:49:51 -0000 1.18
***************
*** 318,329 ****
statement.getThenStatement()->accept( *this );
}
if ( statement.hasElseStatement() )
{
restorer.restoreIndentLevel();
IndentLevelManager::IndentRestorer restorer2( indentManager_ );
! beginInsertNewStatement();
! insertText( "else" );
! if ( isInserting() )
indentManager_.enterNewElseStatement();
statement.getElseStatement()->accept( *this );
}
--- 318,367 ----
statement.getThenStatement()->accept( *this );
}
+
+ Change elseChange = statement.getElseStatementChange();
+ if ( isUpdating() && !elseChange.isUnmodified() )
+ {
+ if ( elseChange.wasRemoved() )
+ {
+ int startIndex;
+ if ( thenChange.wasReplaced() )
+ startIndex = thenChange.oldRange_.getEndIndex();
+ else
+ startIndex = statement.getThenStatement()->getText().getOriginalSourceRange().getEndIndex();
+ int endIndex = statement.getText().getOriginalSourceRange().getEndIndex();
+ deleteText( SourceRange( startIndex, endIndex - startIndex ) );
+ }
+ else if ( elseChange.wasReplaced() )
+ {
+ currentInsertionPos_ = elseChange.oldRange_.getEndIndex();
+ deleteStatement( elseChange.oldRange_ );
+ }
+ else // added
+ {
+ if ( thenChange.wasReplaced() )
+ currentInsertionPos_ = thenChange.oldRange_.getEndIndex();
+ else
+ currentInsertionPos_ = statement.getThenStatement()->getText().getOriginalSourceRange().getEndIndex();
+ }
+ }
+
if ( statement.hasElseStatement() )
{
restorer.restoreIndentLevel();
IndentLevelManager::IndentRestorer restorer2( indentManager_ );
! if ( isInserting() || ( isUpdating() && elseChange.wasAdded() ) )
! {
! beginInsertNewStatement();
! insertText( "else" );
indentManager_.enterNewElseStatement();
+ }
+
+ Mode elseMode;
+ if ( isInserting() || !elseChange.isUnmodified() )
+ elseMode = inserting;
+ else
+ elseMode = updating;
+
+ ModeModifier mode( mode_, elseMode );
statement.getElseStatement()->accept( *this );
}
Index: CodeWriterTest.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -C2 -d -r1.20 -r1.21
*** CodeWriterTest.cpp 16 Mar 2003 10:23:07 -0000 1.20
--- CodeWriterTest.cpp 16 Mar 2003 11:49:51 -0000 1.21
***************
*** 168,170 ****
--- 168,191 ----
+ void
+ CodeWriterTest::testAddElseToIfThenStatement()
+ {
+ source_ = "{\n"
+ " if ( true )\n"
+ " return;\n"
+ "}";
+ generateCompound();
+
+ CodeModel::IfStatement &ifStatement =
+ dynamic_cast<CodeModel::IfStatement &>( *compound_->getStatementAt(0) );
+ ifStatement.setElseStatement( makeBreakStatement() );
+ generateAndCheckSource( "{\n"
+ " if ( true )\n"
+ " return;\n"
+ " else\n"
+ " break;\n"
+ "}" );
+ }
+
+
} // namespace Refactoring
Index: CodeWriterTest.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** CodeWriterTest.h 16 Mar 2003 10:23:07 -0000 1.17
--- CodeWriterTest.h 16 Mar 2003 11:49:51 -0000 1.18
***************
*** 22,25 ****
--- 22,26 ----
CPPUNIT_TEST( testMoveSubExpression );
CPPUNIT_TEST( testModifyIfThenStatement );
+ CPPUNIT_TEST( testAddElseToIfThenStatement );
CPPUNIT_TEST_SUITE_END();
***************
*** 40,43 ****
--- 41,45 ----
void testMoveSubExpression();
void testModifyIfThenStatement();
+ void testAddElseToIfThenStatement();
private:
|
|
From: <bl...@us...> - 2003-03-16 11:49:56
|
Update of /cvsroot/cpptool/rfta/src In directory sc8-pr-cvs1:/tmp/cvs-serv26837/src Modified Files: rfta.opt Log Message: * added support for adding else clause to an if statement. Index: rfta.opt =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta.opt,v retrieving revision 1.82 retrieving revision 1.83 diff -C2 -d -r1.82 -r1.83 Binary files /tmp/cvsFzlW26 and /tmp/cvs0n4dB5 differ |
|
From: <bl...@us...> - 2003-03-16 10:23:38
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring
In directory sc8-pr-cvs1:/tmp/cvs-serv373/include/rfta/refactoring
Modified Files:
CodeModelStatements.h
Log Message:
* added support for modification of the if/then substatement.
Index: CodeModelStatements.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelStatements.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** CodeModelStatements.h 15 Mar 2003 21:51:42 -0000 1.5
--- CodeModelStatements.h 16 Mar 2003 10:23:05 -0000 1.6
***************
*** 29,32 ****
--- 29,33 ----
Change()
+ : type_( unmodified )
{
}
***************
*** 39,42 ****
--- 40,53 ----
}
+ bool wasReplaced() const
+ {
+ return type_ == replaced;
+ }
+
+ bool isUnmodified() const
+ {
+ return type_ == unmodified;
+ }
+
ChangeType type_;
SourceRange oldRange_;
***************
*** 128,133 ****
--- 139,147 ----
StatementPtr getThenStatement() const;
+
void setThenStatement( const StatementPtr &statement );
+ Change getThenStatementChange() const;
+
bool hasElseStatement() const;
StatementPtr getElseStatement() const;
***************
*** 138,141 ****
--- 152,156 ----
private:
+ Change thenStatementChange_;
StatementPtr thenStatement_;
StatementPtr elseStatement_;
|
|
From: <bl...@us...> - 2003-03-16 10:23:13
|
Update of /cvsroot/cpptool/rfta/src/rfta
In directory sc8-pr-cvs1:/tmp/cvs-serv373/src/rfta
Modified Files:
CodeModelStatements.cpp CodeRewriter.cpp CodeRewriter.h
CodeWriterInsertTest.cpp CodeWriterInsertTest.h
CodeWriterTest.cpp CodeWriterTest.h CodeWriterTestBase.cpp
CodeWriterTestBase.h IndentLevelManager.cpp
IndentLevelManager.h
Log Message:
* added support for modification of the if/then substatement.
Index: CodeModelStatements.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelStatements.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** CodeModelStatements.cpp 15 Mar 2003 21:51:43 -0000 1.5
--- CodeModelStatements.cpp 16 Mar 2003 10:23:07 -0000 1.6
***************
*** 179,183 ****
--- 179,192 ----
IfStatement::setThenStatement( const StatementPtr &statement )
{
+ thenStatementChange_.type_ = Change::replaced;
+ thenStatementChange_.oldRange_ = thenStatement_->getText().getOriginalSourceRange();
thenStatement_ = statement;
+ }
+
+
+ Change
+ IfStatement::getThenStatementChange() const
+ {
+ return thenStatementChange_;
}
Index: CodeRewriter.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.cpp,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** CodeRewriter.cpp 16 Mar 2003 07:14:31 -0000 1.16
--- CodeRewriter.cpp 16 Mar 2003 10:23:07 -0000 1.17
***************
*** 18,22 ****
: originalSource_( originalSource )
, indentWidth_( indentWidth )
- , nextStatementInsertionPos_( 0 )
, currentInsertionPos_( 0 )
, indentManager_( originalSource )
--- 18,21 ----
***************
*** 106,109 ****
--- 105,135 ----
void
+ CodeRewriter::deleteStatement( const SourceRange &range )
+ {
+ int startIndex = range.getStartIndex();
+ while ( startIndex > 0 && isSpace( originalSource_.at( startIndex-1 ) ) )
+ --startIndex;
+ while ( startIndex > 0 && isNewLine( originalSource_.at( startIndex-1 ) ) )
+ --startIndex;
+
+ deleteText( SourceRange( startIndex, range.getEndIndex() - startIndex ) );
+ }
+
+
+ bool
+ CodeRewriter::isSpace( char c ) const
+ {
+ return c == ' ' || c == '\t';
+ }
+
+
+ bool
+ CodeRewriter::isNewLine( char c ) const
+ {
+ return c == '\n' || c == '\r';
+ }
+
+
+ void
CodeRewriter::visit( BreakStatement &statement )
{
***************
*** 134,137 ****
--- 160,164 ----
{
IndentLevelManager::IndentRestorer restorer( indentManager_ );
+ int nextStatementInsertionPos = currentInsertionPos_;
if ( isInserting() )
***************
*** 142,147 ****
else if ( statement.getText().hasOriginalSourceRange() )
{
! nextStatementInsertionPos_ = statement.getText().getOriginalSourceRange().getStartIndex() + 1;
! indentManager_.enterExistingCompoundStatement( nextStatementInsertionPos_ - 1 );
}
--- 169,174 ----
else if ( statement.getText().hasOriginalSourceRange() )
{
! nextStatementInsertionPos = statement.getText().getOriginalSourceRange().getStartIndex() + 1;
! indentManager_.enterExistingCompoundStatement( nextStatementInsertionPos - 1 );
}
***************
*** 155,162 ****
}
! currentInsertionPos_ = nextStatementInsertionPos_;
if ( change.type_ == Change::unmodified )
! nextStatementInsertionPos_ = change.statement_->getText().getOriginalSourceRange().getEndIndex();
else if ( change.type_ == Change::replaced )
deleteText( change.statement_->getText().getOriginalSourceRange() );
--- 182,189 ----
}
! currentInsertionPos_ = nextStatementInsertionPos;
if ( change.type_ == Change::unmodified )
! nextStatementInsertionPos = change.statement_->getText().getOriginalSourceRange().getEndIndex();
else if ( change.type_ == Change::replaced )
deleteText( change.statement_->getText().getOriginalSourceRange() );
***************
*** 270,274 ****
indentManager_.enterNewIfStatement();
}
! statement.getThenStatement()->accept( *this );
if ( statement.hasElseStatement() )
{
--- 297,321 ----
indentManager_.enterNewIfStatement();
}
! else if ( statement.getText().hasOriginalSourceRange() )
! indentManager_.enterExistingIfStatement( statement.getText().getOriginalSourceRange().getStartIndex() );
!
! Change thenChange = statement.getThenStatementChange();
! if ( !isInserting() && !thenChange.isUnmodified() )
! {
! deleteStatement( thenChange.oldRange_ );
! if ( thenChange.wasReplaced() )
! currentInsertionPos_ = thenChange.oldRange_.getEndIndex();
! }
!
! Mode thenMode;
! if ( isInserting() || !thenChange.isUnmodified() )
! thenMode = inserting;
! else
! thenMode = updating;
!
! {
! ModeModifier mode( mode_, thenMode );
! statement.getThenStatement()->accept( *this );
! }
if ( statement.hasElseStatement() )
{
Index: CodeRewriter.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeRewriter.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** CodeRewriter.h 15 Mar 2003 22:05:23 -0000 1.8
--- CodeRewriter.h 16 Mar 2003 10:23:07 -0000 1.9
***************
*** 108,113 ****
--- 108,121 ----
void beginInsertNewStatement();
+
void endInsertNewStatement();
+
void endInsertNewLabelStatement();
+
+ void deleteStatement( const SourceRange &range );
+
+ bool isSpace( char c ) const;
+
+ bool isNewLine( char c ) const;
private:
***************
*** 115,119 ****
TransformList transforms_;
const std::string originalSource_;
- int nextStatementInsertionPos_;
int currentInsertionPos_;
int indentWidth_;
--- 123,126 ----
Index: CodeWriterInsertTest.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterInsertTest.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** CodeWriterInsertTest.cpp 16 Mar 2003 08:27:33 -0000 1.2
--- CodeWriterInsertTest.cpp 16 Mar 2003 10:23:07 -0000 1.3
***************
*** 45,57 ****
{
compound_->appendStatement( insertedStatement );
! checkGeneratedSource( expectedSource );
! }
!
!
! void
! CodeWriterInsertTest::checkGeneratedSource( const std::string &expectedSource )
! {
! rewriteSource();
! RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
}
--- 45,49 ----
{
compound_->appendStatement( insertedStatement );
! generateAndCheckSource( expectedSource );
}
***************
*** 62,68 ****
compound_->appendStatement( CodeModel::StatementPtr( new CodeModel::ReturnStatement() ) );
! checkGeneratedSource( "{\n"
! " return;\n"
! "}" );
}
--- 54,60 ----
compound_->appendStatement( CodeModel::StatementPtr( new CodeModel::ReturnStatement() ) );
! generateAndCheckSource( "{\n"
! " return;\n"
! "}" );
}
Index: CodeWriterInsertTest.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterInsertTest.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** CodeWriterInsertTest.h 16 Mar 2003 08:27:33 -0000 1.2
--- CodeWriterInsertTest.h 16 Mar 2003 10:23:07 -0000 1.3
***************
*** 60,65 ****
void checkGeneratedSource( const CodeModel::StatementPtr &insertedStatement,
const std::string &expectedSource );
-
- void checkGeneratedSource( const std::string &expectedSource );
};
--- 60,63 ----
Index: CodeWriterTest.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.cpp,v
retrieving revision 1.19
retrieving revision 1.20
diff -C2 -d -r1.19 -r1.20
*** CodeWriterTest.cpp 16 Mar 2003 08:27:33 -0000 1.19
--- CodeWriterTest.cpp 16 Mar 2003 10:23:07 -0000 1.20
***************
*** 149,151 ****
--- 149,170 ----
+ void
+ CodeWriterTest::testModifyIfThenStatement()
+ {
+ source_ = "{\n"
+ " if ( true )\n"
+ " return;\n"
+ "}";
+ generateCompound();
+
+ CodeModel::IfStatement &ifStatement =
+ dynamic_cast<CodeModel::IfStatement &>( *compound_->getStatementAt(0) );
+ ifStatement.setThenStatement( makeBreakStatement() );
+ generateAndCheckSource( "{\n"
+ " if ( true )\n"
+ " break;\n"
+ "}" );
+ }
+
+
} // namespace Refactoring
Index: CodeWriterTest.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTest.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -C2 -d -r1.16 -r1.17
*** CodeWriterTest.h 16 Mar 2003 08:27:33 -0000 1.16
--- CodeWriterTest.h 16 Mar 2003 10:23:07 -0000 1.17
***************
*** 21,24 ****
--- 21,25 ----
CPPUNIT_TEST( testRemoveStatement );
CPPUNIT_TEST( testMoveSubExpression );
+ CPPUNIT_TEST( testModifyIfThenStatement );
CPPUNIT_TEST_SUITE_END();
***************
*** 38,41 ****
--- 39,43 ----
void testRemoveStatement();
void testMoveSubExpression();
+ void testModifyIfThenStatement();
private:
Index: CodeWriterTestBase.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTestBase.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** CodeWriterTestBase.cpp 16 Mar 2003 07:37:05 -0000 1.1
--- CodeWriterTestBase.cpp 16 Mar 2003 10:23:07 -0000 1.2
***************
*** 67,69 ****
--- 67,84 ----
+ CodeModel::StatementPtr
+ CodeWriterTestBase::makeBreakStatement()
+ {
+ return CodeModel::StatementPtr( new CodeModel::BreakStatement() );
+ }
+
+
+ void
+ CodeWriterTestBase::generateAndCheckSource( const std::string &expectedSource )
+ {
+ rewriteSource();
+ RFTA_ASSERT_EQUAL( expectedSource, document_->getAllText() );
+ }
+
+
} // namespace Refactoring
Index: CodeWriterTestBase.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTestBase.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** CodeWriterTestBase.h 16 Mar 2003 07:37:05 -0000 1.1
--- CodeWriterTestBase.h 16 Mar 2003 10:23:07 -0000 1.2
***************
*** 25,31 ****
--- 25,38 ----
protected:
void generateCompound();
+
void rewriteSource();
+
CodeModel::ExpressionPtr makeTrueExpression();
+
CodeModel::ExpressionPtr makeExpression( const std::string &expression );
+
+ CodeModel::StatementPtr makeBreakStatement();
+
+ void generateAndCheckSource( const std::string &expectedSource );
CodeModel::CompoundStatementPtr compound_;
Index: IndentLevelManager.cpp
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/IndentLevelManager.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** IndentLevelManager.cpp 16 Mar 2003 06:59:07 -0000 1.5
--- IndentLevelManager.cpp 16 Mar 2003 10:23:07 -0000 1.6
***************
*** 47,50 ****
--- 47,57 ----
void
+ IndentLevelManager::enterExistingIfStatement( int startingPos )
+ {
+ pushIndent( findIndentLevelOf( startingPos ) + indentWidth_ );
+ }
+
+
+ void
IndentLevelManager::enterNewElseStatement()
{
Index: IndentLevelManager.h
===================================================================
RCS file: /cvsroot/cpptool/rfta/src/rfta/IndentLevelManager.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** IndentLevelManager.h 16 Mar 2003 06:59:07 -0000 1.6
--- IndentLevelManager.h 16 Mar 2003 10:23:07 -0000 1.7
***************
*** 62,65 ****
--- 62,67 ----
void enterNewIfStatement();
+ void enterExistingIfStatement( int startingPos );
+
void enterNewElseStatement();
|
|
From: <bl...@us...> - 2003-03-16 10:23:10
|
Update of /cvsroot/cpptool/rfta/src In directory sc8-pr-cvs1:/tmp/cvs-serv373/src Modified Files: rfta.opt Log Message: * added support for modification of the if/then substatement. Index: rfta.opt =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta.opt,v retrieving revision 1.81 retrieving revision 1.82 diff -C2 -d -r1.81 -r1.82 Binary files /tmp/cvsH45fHQ and /tmp/cvs4J6SWy differ |