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