Update of /cvsroot/cpptool/rfta/include/rfta/parser
In directory sc8-pr-cvs1:/tmp/cvs-serv19772/include/rfta/parser
Added Files:
ExpressionOperationMutator.h
Log Message:
-- extended expression parsing with new ExpressionOperationMutator
--- NEW FILE: ExpressionOperationMutator.h ---
// //////////////////////////////////////////////////////////////////////////
// (c)Copyright 2002, Baptiste Lepilleur.
// Created: 2002/12/27
// //////////////////////////////////////////////////////////////////////////
#ifndef RFTA_EXPRESSIONOPERATIONMUTATOR_H
#define RFTA_EXPRESSIONOPERATIONMUTATOR_H
#include <rfta/parser/Mutator.h>
#include <rfta/parser/ExpressionMutator.h>
namespace Refactoring
{
/**
* This class is used to create a subtree of an expression with its
* operation-property in parent node and new child nodes for the operators
*/
class RFTAPARSER_API ExpressionOperationMutator : public ExpressionMutator
{
public:
/*! Constructs a ExpressionOperationMutator object.
*/
ExpressionOperationMutator(ParseContext &context,
const ASTNodePtr &node,
const SourceASTNodePtr &sourceNode);
/// Destructor.
virtual ~ExpressionOperationMutator();
void mutate();
private:
/// Prevents the use of the copy constructor.
ExpressionOperationMutator( const ExpressionOperationMutator &other );
/// Prevents the use of the copy operator.
void operator =( const ExpressionOperationMutator &other );
void splitExpressionList(ExpressionMutator::Tokens token) const;
void splitAssignmentExpression(ExpressionMutator::Tokens token) const;
void splitConditionalExpression(ExpressionMutator::Tokens token) const;
void skipBalancedBraces(ExpressionMutator::Tokens::iterator& it,ExpressionMutator::Tokens& token) const;
SourceASTNodePtr sourceNode_;
private:
};
// Inlines methods for ExpressionOperationMutator:
// -----------------------------------------------
} // namespace Refactoring
#endif // RFTA_EXPRESSIONOPERATIONMUTATOR_H
|