From: <net...@us...> - 2002-12-28 10:38:00
|
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 |