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-05-29 09:26:56
|
Update of /cvsroot/cpptool/rfta/resources In directory sc8-pr-cvs1:/tmp/cvs-serv13483 Added Files: g++-distilled-cppparserdef.txt Log Message: * added g++ distilled c++ grammar definition --- NEW FILE: g++-distilled-cppparserdef.txt --- program: /* empty */ | extdefs ; extdefs: lang_extdef | extdefs lang_extdef ; extdefs_opt: extdefs | /* empty */ ; .hush_warning: ; .warning_ok: ; [...1936 lines suppressed...] | operator POINTSAT unoperator %prec EMPTY | operator POINTSAT_STAR unoperator %prec EMPTY | operator LEFT_RIGHT unoperator | operator '[' ']' unoperator | operator NEW unoperator %prec EMPTY | operator DELETE unoperator %prec EMPTY | operator NEW '[' ']' unoperator | operator DELETE '[' ']' unoperator | operator type_specifier_seq conversion_declarator unoperator | operator error unoperator ; /* The forced readahead in here is because we might be at the end of a line, and lineno won't be bumped until yylex absorbs the first token on the next line. */ save_lineno: { if (yychar == YYEMPTY) yychar = YYLEX; $$ = lineno; } ; |
From: <bl...@us...> - 2003-05-29 09:19:56
|
Update of /cvsroot/cpptool/rfta/resources In directory sc8-pr-cvs1:/tmp/cvs-serv10806/resources Log Message: Directory /cvsroot/cpptool/rfta/resources added to the repository |
From: <bl...@us...> - 2003-05-28 20:47:32
|
Update of /cvsroot/cpptool/rfta/src/pyrfta In directory sc8-pr-cvs1:/tmp/cvs-serv10010/src/pyrfta Modified Files: ExposeCPPParser.cpp ExposeStatements.cpp Forwards.h pyrfta.cpp pyrfta.dsp Log Message: * exposed code model declaration and parser Index: ExposeCPPParser.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/pyrfta/ExposeCPPParser.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ExposeCPPParser.cpp 27 Apr 2003 13:00:52 -0000 1.1 --- ExposeCPPParser.cpp 28 May 2003 20:47:27 -0000 1.2 *************** *** 4,7 **** --- 4,8 ---- #include <rfta/parser/ASTNodePropertyVisitor.h> #include <rfta/parser/ASTNodeVisitor.h> + #include <rfta/refactoring/CodeModelParser.h> using namespace boost::python; *************** *** 51,54 **** --- 52,59 ---- exposeCPPParser() { + class_<CodeModel::Parser>( "Parser", init<std::string>() ) + .def( "getFunctionAt", &CodeModel::Parser::getFunctionAt ) + ; + class_<CPPParser>( "CPPParser", init<std::string>() ) .def( "parseAll", &CPPParser::parseAll ) Index: ExposeStatements.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/pyrfta/ExposeStatements.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ExposeStatements.cpp 30 Apr 2003 08:06:29 -0000 1.4 --- ExposeStatements.cpp 28 May 2003 20:47:27 -0000 1.5 *************** *** 14,18 **** void (Statement::*mfAcceptStatementVisitor)( StatementVisitor & ) = &Statement::accept; ! class_<Statement, bases<Element>, boost::noncopyable >( "Statement", no_init ) .def( "accept", mfAcceptStatementVisitor ) ; --- 14,18 ---- void (Statement::*mfAcceptStatementVisitor)( StatementVisitor & ) = &Statement::accept; ! class_<Statement, StatementPtr, bases<Element>, boost::noncopyable >( "Statement", no_init ) .def( "accept", mfAcceptStatementVisitor ) ; Index: Forwards.h =================================================================== RCS file: /cvsroot/cpptool/rfta/src/pyrfta/Forwards.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Forwards.h 27 Apr 2003 13:00:53 -0000 1.3 --- Forwards.h 28 May 2003 20:47:27 -0000 1.4 *************** *** 11,14 **** --- 11,15 ---- void exposeExpressions(); void exposeExpressions2(); + void exposeDeclarations(); Index: pyrfta.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/pyrfta/pyrfta.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** pyrfta.cpp 27 Apr 2003 13:00:53 -0000 1.6 --- pyrfta.cpp 28 May 2003 20:47:27 -0000 1.7 *************** *** 102,105 **** --- 102,106 ---- exposeExpressions(); exposeExpressions2(); + exposeDeclarations(); class_<B, boost::shared_ptr<B> >( "B", init<int>() ) Index: pyrfta.dsp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/pyrfta/pyrfta.dsp,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** pyrfta.dsp 16 May 2003 19:55:01 -0000 1.7 --- pyrfta.dsp 28 May 2003 20:47:27 -0000 1.8 *************** *** 124,127 **** --- 124,131 ---- # Begin Source File + SOURCE=.\ExposeDeclarations.cpp + # End Source File + # Begin Source File + SOURCE=..\..\include\xtl\python\ExposeEnumerator.h # End Source File |
From: <bl...@us...> - 2003-05-28 20:47:03
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring In directory sc8-pr-cvs1:/tmp/cvs-serv9780/include/rfta/refactoring Modified Files: CodeModelDeclarations.h Log Message: * added class File Index: CodeModelDeclarations.h =================================================================== RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelDeclarations.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CodeModelDeclarations.h 28 May 2003 07:33:54 -0000 1.1 --- CodeModelDeclarations.h 28 May 2003 20:46:58 -0000 1.2 *************** *** 10,13 **** --- 10,14 ---- #include <rfta/refactoring/CodeModelElement.h> #include <boost/shared_ptr.hpp> + #include <xtl/Enumerator.h> #include <string> #include <vector> *************** *** 158,169 **** { public: FunctionDeclaration( const TypePtr &returnType, const FunctionNamePtr &functionName, const ParametersPtr ¶meters ); FunctionDeclaration( const TypePtr &returnType, const FunctionNamePtr &functionName, const ParametersPtr ¶meters, ! const CompoundStatementPtr &body ); FunctionNamePtr getFunctionName() const; --- 159,172 ---- { public: + /* FunctionDeclaration( const TypePtr &returnType, const FunctionNamePtr &functionName, const ParametersPtr ¶meters ); + */ FunctionDeclaration( const TypePtr &returnType, const FunctionNamePtr &functionName, const ParametersPtr ¶meters, ! const CompoundStatementPtr &body = CompoundStatementPtr() ); FunctionNamePtr getFunctionName() const; *************** *** 180,183 **** --- 183,197 ---- }; + + class RFTA_API File : public Element + { + public: + void appendDeclaration( const ElementPtr &declaration ); + + Xtl::Enumerator<ElementPtr> getDeclarations() const; + + private: + std::vector<ElementPtr> declarations_; + }; |
From: <bl...@us...> - 2003-05-28 20:47:02
|
Update of /cvsroot/cpptool/rfta/src/rfta In directory sc8-pr-cvs1:/tmp/cvs-serv9780/src/rfta Modified Files: CodeModelDeclarations.cpp Log Message: * added class File Index: CodeModelDeclarations.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelDeclarations.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CodeModelDeclarations.cpp 28 May 2003 07:33:53 -0000 1.1 --- CodeModelDeclarations.cpp 28 May 2003 20:46:58 -0000 1.2 *************** *** 6,9 **** --- 6,10 ---- #include "stdafx.h" #include <rfta/refactoring/CodeModelDeclarations.h> + #include <xtl/StlEnumerator.h> namespace Refactoring { namespace CodeModel { *************** *** 45,49 **** } ! FunctionDeclaration::FunctionDeclaration( const TypePtr &returnType, const FunctionNamePtr &functionName, --- 46,50 ---- } ! /* FunctionDeclaration::FunctionDeclaration( const TypePtr &returnType, const FunctionNamePtr &functionName, *************** *** 54,58 **** { } ! FunctionDeclaration::FunctionDeclaration( const TypePtr &returnType, --- 55,59 ---- { } ! */ FunctionDeclaration::FunctionDeclaration( const TypePtr &returnType, *************** *** 89,92 **** --- 90,110 ---- + + + void + File::appendDeclaration( const ElementPtr &declaration ) + { + declarations_.push_back( declaration ); + } + + + Xtl::Enumerator<ElementPtr> + File::getDeclarations() const + { + return Xtl::enumStl( declarations_ ); + } + + } // namespace CodeModel } // namespace Refactoring + |
From: <bl...@us...> - 2003-05-28 20:46:43
|
Update of /cvsroot/cpptool/rfta/src/rfta In directory sc8-pr-cvs1:/tmp/cvs-serv9613/src/rfta Modified Files: CodeModelParser.cpp CodeModelParserTest.cpp Log Message: * renamed getFunctionBodyAt() to getFunctionAt() Index: CodeModelParser.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelParser.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CodeModelParser.cpp 28 May 2003 07:36:21 -0000 1.1 --- CodeModelParser.cpp 28 May 2003 20:46:38 -0000 1.2 *************** *** 17,21 **** FunctionDeclarationPtr ! Parser::getFunctionBodyAt( int position ) { ASTNodePtr functionNode = parser_.parseForFunctionBodyAt( position ); --- 17,21 ---- FunctionDeclarationPtr ! Parser::getFunctionAt( int position ) { ASTNodePtr functionNode = parser_.parseForFunctionBodyAt( position ); Index: CodeModelParserTest.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelParserTest.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CodeModelParserTest.cpp 28 May 2003 07:36:21 -0000 1.1 --- CodeModelParserTest.cpp 28 May 2003 20:46:38 -0000 1.2 *************** *** 49,53 **** CodeModel::Parser parser( source_ ); ! CodeModel::FunctionDeclarationPtr function = parser.getFunctionBodyAt( builder_->getStartIndex( "FN" ) ); CodeModel::FunctionNamePtr functionName = function->getFunctionName(); std::string name = functionName->getName(); --- 49,53 ---- CodeModel::Parser parser( source_ ); ! CodeModel::FunctionDeclarationPtr function = parser.getFunctionAt( builder_->getStartIndex( "FN" ) ); CodeModel::FunctionNamePtr functionName = function->getFunctionName(); std::string name = functionName->getName(); |
From: <bl...@us...> - 2003-05-28 20:46:43
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring In directory sc8-pr-cvs1:/tmp/cvs-serv9613/include/rfta/refactoring Modified Files: CodeModelParser.h Log Message: * renamed getFunctionBodyAt() to getFunctionAt() Index: CodeModelParser.h =================================================================== RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelParser.h,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** CodeModelParser.h 28 May 2003 07:36:21 -0000 1.1 --- CodeModelParser.h 28 May 2003 20:46:39 -0000 1.2 *************** *** 21,25 **** * \exception ParserError is throw if a failure occurs during parsing. */ ! FunctionDeclarationPtr getFunctionBodyAt( int position ); private: --- 21,25 ---- * \exception ParserError is throw if a failure occurs during parsing. */ ! FunctionDeclarationPtr getFunctionAt( int position ); private: |
From: <bl...@us...> - 2003-05-28 07:36:25
|
Update of /cvsroot/cpptool/rfta/src/rfta In directory sc8-pr-cvs1:/tmp/cvs-serv19238/src/rfta Modified Files: rfta.dsp Added Files: CodeModelParser.cpp CodeModelParserTest.cpp CodeModelParserTest.h Log Message: * added CodeModelParser, similar to CPPParser but returns CodeModel object instead of ASTNode. --- NEW FILE: CodeModelParser.cpp --- #include "stdafx.h" #include <rfta/refactoring/CodeModelParser.h> #include <rfta/refactoring/CodeModelGenerator.h> #include <rfta/refactoring/CodeModelDeclarations.h> namespace Refactoring { namespace CodeModel { Parser::Parser( const std::string &source ) : parser_( source ) { } FunctionDeclarationPtr Parser::getFunctionBodyAt( int position ) { ASTNodePtr functionNode = parser_.parseForFunctionBodyAt( position ); if ( !functionNode ) return FunctionDeclarationPtr(); Generator generator; return generator.generateFunctionDeclaration( functionNode ); } }} // namespace Refactoring { namespace CodeModel --- NEW FILE: CodeModelParserTest.cpp --- // ////////////////////////////////////////////////////////////////////////// // (c)Copyright 2002, Baptiste Lepilleur. // Created: 2003/05/27 // ////////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include "CodeModelParserTest.h" #include <rfta/refactoring/CodeModelParser.h> #include <rfta/refactoring/CodeModelDeclarations.h> #include <rfta/refactoring/CodeModelStatements.h> namespace Refactoring { RFTA_TEST_SUITE_REGISTRATION( CodeModelParserTest ); CodeModelParserTest::CodeModelParserTest() { } CodeModelParserTest::~CodeModelParserTest() { } void CodeModelParserTest::setUp() { SourceBasedTestBase::setUp(); } void CodeModelParserTest::tearDown() { SourceBasedTestBase::tearDown(); } void CodeModelParserTest::testGetFunctionAt() { source_ = "void function() { "; builder_->addKeyingMid( "", "return", ";", "FN" ); source_ += "}"; CodeModel::Parser parser( source_ ); CodeModel::FunctionDeclarationPtr function = parser.getFunctionBodyAt( builder_->getStartIndex( "FN" ) ); CodeModel::FunctionNamePtr functionName = function->getFunctionName(); std::string name = functionName->getName(); RFTA_ASSERT_EQUAL( "void function() ", name ); // because of incomplete parsing, should be 'function'. CodeModel::CompoundStatementPtr compound = function->getBody(); CPPUNIT_ASSERT( compound ); RFTA_ASSERT_EQUAL( 1, compound->getStatementCount() ); CodeModel::StatementPtr statement = compound->getStatementAt(0); CPPUNIT_ASSERT( boost::dynamic_pointer_cast<CodeModel::ReturnStatement>(statement) ); } } // namespace Refactoring --- NEW FILE: CodeModelParserTest.h --- // ////////////////////////////////////////////////////////////////////////// // (c)Copyright 2002, Baptiste Lepilleur. // Created: 2003/05/27 // ////////////////////////////////////////////////////////////////////////// #ifndef RFTA_CODEMODELPARSERTEST_H #define RFTA_CODEMODELPARSERTEST_H #include "SourceBasedTestBase.h" namespace Refactoring { /// Unit tests for CodeModelParserTest class CodeModelParserTest : public SourceBasedTestBase { CPPUNIT_TEST_SUITE( CodeModelParserTest ); CPPUNIT_TEST( testGetFunctionAt ); CPPUNIT_TEST_SUITE_END(); public: /*! Constructs a CodeModelParserTest object. */ CodeModelParserTest(); /// Destructor. virtual ~CodeModelParserTest(); void setUp(); void tearDown(); void testGetFunctionAt(); private: /// Prevents the use of the copy constructor. CodeModelParserTest( const CodeModelParserTest &other ); /// Prevents the use of the copy operator. void operator =( const CodeModelParserTest &other ); private: }; // Inlines methods for CodeModelParserTest: // ---------------------------------------- } // namespace Refactoring #endif // RFTA_CODEMODELPARSERTEST_H Index: rfta.dsp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/rfta.dsp,v retrieving revision 1.49 retrieving revision 1.50 diff -C2 -d -r1.49 -r1.50 *** rfta.dsp 26 May 2003 21:12:33 -0000 1.49 --- rfta.dsp 28 May 2003 07:36:21 -0000 1.50 *************** *** 335,338 **** --- 335,346 ---- # Begin Source File + SOURCE=.\CodeModelDeclarations.cpp + # End Source File + # Begin Source File + + SOURCE=..\..\include\rfta\refactoring\CodeModelDeclarations.h + # End Source File + # Begin Source File + SOURCE=.\CodeModelElement.cpp # End Source File *************** *** 363,366 **** --- 371,382 ---- # Begin Source File + SOURCE=.\CodeModelParser.cpp + # End Source File + # Begin Source File + + SOURCE=..\..\include\rfta\refactoring\CodeModelParser.h + # End Source File + # Begin Source File + SOURCE=.\CodeModelStatements.cpp # End Source File *************** *** 996,999 **** --- 1012,1023 ---- !ENDIF + # End Source File + # Begin Source File + + SOURCE=.\CodeModelParserTest.cpp + # End Source File + # Begin Source File + + SOURCE=.\CodeModelParserTest.h # End Source File # Begin Source File |
From: <bl...@us...> - 2003-05-28 07:36:25
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring In directory sc8-pr-cvs1:/tmp/cvs-serv19238/include/rfta/refactoring Added Files: CodeModelParser.h Log Message: * added CodeModelParser, similar to CPPParser but returns CodeModel object instead of ASTNode. --- NEW FILE: CodeModelParser.h --- #ifndef RFTA_CODEMODELPARSER_H_INCLUDED #define RFTA_CODEMODELPARSER_H_INCLUDED #include <rfta/refactoring/Config.h> #include <rfta/parser/CPPParser.h> #include <rfta/refactoring/CodeModelForward.h> namespace Refactoring { namespace CodeModel { class RFTA_API Parser { public: Parser( const std::string &source ); /*! Returns the function body which contains the specified location. * \return Compound statement if a function body is found including * the specified location, 0 otherwise. * \exception ParserError is throw if a failure occurs during parsing. */ FunctionDeclarationPtr getFunctionBodyAt( int position ); private: CPPParser parser_; }; }} // namespace Refactoring { namespace CodeModel #endif // RFTA_CODEMODELPARSER_H_INCLUDED |
From: <bl...@us...> - 2003-05-28 07:34:57
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring In directory sc8-pr-cvs1:/tmp/cvs-serv18423/include/rfta/refactoring Modified Files: CodeModelElement.h CodeModelExpressions.h Log Message: * introduced TextElement base class for simple text holder element * refactored some to use TextElement Index: CodeModelElement.h =================================================================== RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelElement.h,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** CodeModelElement.h 26 May 2003 21:12:33 -0000 1.15 --- CodeModelElement.h 28 May 2003 07:34:54 -0000 1.16 *************** *** 73,76 **** --- 73,90 ---- + class RFTA_API TextElement : public Element + { + public: + TextElement( const std::string &text ); + + protected: + std::string getElementText() const; + + private: + std::string text_; + }; + + + } // namespace CodeModel Index: CodeModelExpressions.h =================================================================== RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelExpressions.h,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** CodeModelExpressions.h 10 Apr 2003 08:37:47 -0000 1.16 --- CodeModelExpressions.h 28 May 2003 07:34:54 -0000 1.17 *************** *** 51,55 **** ! class RFTA_API TypePart : public Element { public: --- 51,55 ---- ! class RFTA_API TypePart : public TextElement { public: *************** *** 60,66 **** // overridden from Element void accept( ElementVisitor &visitor ); - - private: - std::string typePart_; }; --- 60,63 ---- |
From: <bl...@us...> - 2003-05-28 07:34:57
|
Update of /cvsroot/cpptool/rfta/src/rfta In directory sc8-pr-cvs1:/tmp/cvs-serv18423/src/rfta Modified Files: CodeModelElement.cpp CodeModelExpressions.cpp Log Message: * introduced TextElement base class for simple text holder element * refactored some to use TextElement Index: CodeModelElement.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelElement.cpp,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** CodeModelElement.cpp 26 May 2003 21:12:33 -0000 1.12 --- CodeModelElement.cpp 28 May 2003 07:34:53 -0000 1.13 *************** *** 68,71 **** --- 68,89 ---- + + + TextElement::TextElement( const std::string &text ) + : text_( text ) + { + } + + + std::string + TextElement::getElementText() const + { + if ( isFromSource() ) + return getSourceText(); + return text_; + } + + + } // namespace CodeModel } // namespace Refactoring Index: CodeModelExpressions.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelExpressions.cpp,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** CodeModelExpressions.cpp 22 Apr 2003 19:17:00 -0000 1.16 --- CodeModelExpressions.cpp 28 May 2003 07:34:53 -0000 1.17 *************** *** 174,178 **** TypePart::TypePart( const std::string &typePart ) ! : typePart_( typePart ) { } --- 174,178 ---- TypePart::TypePart( const std::string &typePart ) ! : TextElement( typePart ) { } *************** *** 182,188 **** TypePart::getTypeText() const { ! if ( isFromSource() ) ! return getSourceText(); ! return typePart_; } --- 182,186 ---- TypePart::getTypeText() const { ! return TextElement::getElementText(); } |
From: <bl...@us...> - 2003-05-28 07:33:57
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring In directory sc8-pr-cvs1:/tmp/cvs-serv17902/include/rfta/refactoring Modified Files: CodeModelForward.h Added Files: CodeModelDeclarations.h Log Message: * added very rough support for function declaration --- NEW FILE: CodeModelDeclarations.h --- // ////////////////////////////////////////////////////////////////////////// // (c)Copyright 2002, Baptiste Lepilleur. // Created: 2003/05/27 // ////////////////////////////////////////////////////////////////////////// #ifndef RFTA_CODEMODELDECLARATIONS_H #define RFTA_CODEMODELDECLARATIONS_H #include <rfta/refactoring/ChangeTrackers.h> #include <rfta/refactoring/CodeModelForward.h> #include <rfta/refactoring/CodeModelElement.h> #include <boost/shared_ptr.hpp> #include <string> #include <vector> namespace Refactoring { namespace CodeModel { class DeclarationVisitor; class RFTA_API Declaration : public Element { public: virtual ~Declaration(); void accept( ElementVisitor &visitor ); virtual void accept( DeclarationVisitor &visitor ) =0; }; class RFTA_API Type : public TextElement { public: Type( const std::string &type ) : TextElement( type ) { } std::string getTypeText() const { return TextElement::getElementText(); } // overridden from Element void accept( ElementVisitor &visitor ); }; class RFTA_API ArrayTypeSuffix : public TextElement { public: ArrayTypeSuffix( const std::string &type ) : TextElement( type ) { } std::string getSuffixText() const { return TextElement::getElementText(); } // overridden from Element void accept( ElementVisitor &visitor ); }; class RFTA_API VariableName : public TextElement { public: VariableName( const std::string &name ) : TextElement( name ) { } std::string getName() const { return TextElement::getElementText(); } // overridden from Element void accept( ElementVisitor &visitor ); }; class RFTA_API Parameter : public Element { public: Parameter( const TypePtr &type, const VariableNamePtr &name, const ArrayTypeSuffixPtr &typeSuffix ); Parameter( const TypePtr &type, const VariableNamePtr &name, const ArrayTypeSuffixPtr &typeSuffix, const AssignInitializerExpressionPtr &initializer ); private: TypePtr type_; VariableNamePtr name_; ArrayTypeSuffixPtr typeSuffix_; AssignInitializerExpressionPtr initializer_; }; class RFTA_API Parameters : public Element { public: void appendParameter( const ParameterPtr ¶meter ); private: }; class RFTA_API FunctionName : public TextElement { public: FunctionName( const std::string &name ) : TextElement( name ) { } std::string getName() const { return TextElement::getElementText(); } // overridden from Element void accept( ElementVisitor &visitor ); }; /* class RFTA_API Modifier : public TextElement { public: Modifier( const std::string &name ) : TextElement( name ) { } std::string getName() const { return TextElement::getElementText(); } // overridden from Element void accept( ElementVisitor &visitor ); }; class RFTA_API Modifiers : public Element { public: }; */ class RFTA_API FunctionDeclaration : public Element { public: FunctionDeclaration( const TypePtr &returnType, const FunctionNamePtr &functionName, const ParametersPtr ¶meters ); FunctionDeclaration( const TypePtr &returnType, const FunctionNamePtr &functionName, const ParametersPtr ¶meters, const CompoundStatementPtr &body ); FunctionNamePtr getFunctionName() const; bool hasBody() const; CompoundStatementPtr getBody() const; private: TypePtr returnType_; FunctionNamePtr functionName_; ParametersPtr parameters_; CompoundStatementPtr body_; }; } // namespace CodeModel } // namespace Refactoring #endif // RFTA_CODEMODELDECLARATIONS_H Index: CodeModelForward.h =================================================================== RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelForward.h,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** CodeModelForward.h 26 May 2003 21:12:33 -0000 1.15 --- CodeModelForward.h 28 May 2003 07:33:54 -0000 1.16 *************** *** 18,21 **** --- 18,30 ---- class Identifier; + class Declaration; + class Type; + class ArrayTypeSuffix; + class VariableName; + class Parameter; + class Parameters; + class FunctionName; + class FunctionDeclaration; + class BreakStatement; class CaseStatement; *************** *** 68,71 **** --- 77,88 ---- typedef boost::shared_ptr<WhileStatement> WhileStatementPtr; + typedef boost::shared_ptr<Declaration> DeclarationPtr; + typedef boost::shared_ptr<Type> TypePtr; + typedef boost::shared_ptr<ArrayTypeSuffix> ArrayTypeSuffixPtr; + typedef boost::shared_ptr<VariableName> VariableNamePtr; + typedef boost::shared_ptr<Parameter> ParameterPtr; + typedef boost::shared_ptr<Parameters> ParametersPtr; + typedef boost::shared_ptr<FunctionName> FunctionNamePtr; + typedef boost::shared_ptr<FunctionDeclaration> FunctionDeclarationPtr; typedef boost::shared_ptr<Element> ElementPtr; |
From: <bl...@us...> - 2003-05-28 07:33:56
|
Update of /cvsroot/cpptool/rfta/src/rfta In directory sc8-pr-cvs1:/tmp/cvs-serv17902/src/rfta Added Files: CodeModelDeclarations.cpp Log Message: * added very rough support for function declaration --- NEW FILE: CodeModelDeclarations.cpp --- // ////////////////////////////////////////////////////////////////////////// // (c)Copyright 2002, Baptiste Lepilleur. // Created: 2003/05/27 // ////////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include <rfta/refactoring/CodeModelDeclarations.h> namespace Refactoring { namespace CodeModel { Declaration::~Declaration() { } void Declaration::accept( ElementVisitor &visitor ) { } void Type::accept( ElementVisitor &visitor ) { } void ArrayTypeSuffix::accept( ElementVisitor &visitor ) { } void VariableName::accept( ElementVisitor &visitor ) { } void FunctionName::accept( ElementVisitor &visitor ) { } FunctionDeclaration::FunctionDeclaration( const TypePtr &returnType, const FunctionNamePtr &functionName, const ParametersPtr ¶meters ) : returnType_( returnType ) , functionName_( functionName ) , parameters_( parameters ) { } FunctionDeclaration::FunctionDeclaration( const TypePtr &returnType, const FunctionNamePtr &functionName, const ParametersPtr ¶meters, const CompoundStatementPtr &body ) : returnType_( returnType ) , functionName_( functionName ) , parameters_( parameters ) , body_( body ) { } FunctionNamePtr FunctionDeclaration::getFunctionName() const { return functionName_; } bool FunctionDeclaration::hasBody() const { return body_; } CompoundStatementPtr FunctionDeclaration::getBody() const { return body_; } } // namespace CodeModel } // namespace Refactoring |
From: <bl...@us...> - 2003-05-28 07:32:51
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring In directory sc8-pr-cvs1:/tmp/cvs-serv17275/include/rfta/refactoring Added Files: CodeModelGenerator.h Log Message: * renamed CodeModel.[ch] to CodeModelGenerator.[ch] * introduced a level of indirection between the code model and ast node, there allowing for alternative parser implementation. --- NEW FILE: CodeModelGenerator.h --- // ////////////////////////////////////////////////////////////////////////// // (c)Copyright 2002, Baptiste Lepilleur. // Created: 2002/12/21 // ////////////////////////////////////////////////////////////////////////// #ifndef RFTA_CODEMODELGENERATOR_H #define RFTA_CODEMODELGENERATOR_H #include <rfta/refactoring/Config.h> #include <rfta/refactoring/CodeModelForward.h> #include <rfta/parser/ASTNodeForward.h> #include <rfta/parser/ASTNodeType.h> #include <map> #include <stdexcept> namespace Refactoring { namespace CodeModel { class RFTA_API GeneratorError : public std::logic_error { public: GeneratorError( const std::string &message ); ~GeneratorError() throw(); }; class RFTA_API Generator { public: friend class CodeModelGeneratorTest; Generator(); virtual ~Generator(); FunctionDeclarationPtr generateFunctionDeclaration( const ASTNodePtr &functionDeclNode ); CompoundStatementPtr generateCompound( const ASTNodePtr &compoundNode ); private: StatementPtr generateStatement( const ASTNodePtr &statementNode ); StatementPtr generateBreakStatement( const ASTNodePtr &statement ); StatementPtr generateCaseStatement( const ASTNodePtr &statement ); StatementPtr generateCompoundStatement( const ASTNodePtr &statement ); StatementPtr generateDeclarationStatement( const ASTNodePtr &statement ); StatementPtr generateDefaultStatement( const ASTNodePtr &statement ); StatementPtr generateDoStatement( const ASTNodePtr &statement ); StatementPtr generateExpressionStatement( const ASTNodePtr &statement ); StatementPtr generateForStatement( const ASTNodePtr &statement ); StatementPtr generateIfStatement( const ASTNodePtr &statement ); StatementPtr generateNullStatement( const ASTNodePtr &statement ); StatementPtr generateReturnStatement( const ASTNodePtr &statement ); StatementPtr generateSwitchStatement( const ASTNodePtr &statement ); StatementPtr generateWhileStatement( const ASTNodePtr &statement ); ExpressionPtr generateExpression( const ASTNodePtr &expression ); ExpressionPtr generateDeclaratorExpression( const ASTNodePtr &expression ); ExpressionPtr generateGenericExpression( const ASTNodePtr &expression ); ExpressionPtr generateNullExpression( const ASTNodePtr &expression ); DeclaratorExpressionPtr generateDeclarator( const ASTNodePtr &expression ); private: void setElementSource( Element &element, const ASTNodePtr &node ); TypePartPtr getDeclaratorPrimaryType( const ASTNodePtr &declaratorNode ); TypePartPtr makeOptionalType( const ASTNodePtr &typeNode ); IdentifierPtr makeIdentifier( const ASTNodePtr &identifierNode ); DeclaratorPtr makeVariableDeclarator( const ASTNodePtr &variableDeclaratorNode ); ExpressionPtr makeVariableInitializerExpression( const ASTNodePtr &initializerNode ); typedef StatementPtr (Generator::*GeneratorFunction)( const ASTNodePtr &statementNode ); void addStatement( const ASTNodeType &type, GeneratorFunction function ); typedef std::map<ASTNodeType, GeneratorFunction> Generators; Generators statementGenerators_; }; } // namespace CodeModel } // namespace Refactoring #endif // RFTA_CODEMODELGENERATOR_H |
From: <bl...@us...> - 2003-05-28 07:32:51
|
Update of /cvsroot/cpptool/rfta/src/rfta In directory sc8-pr-cvs1:/tmp/cvs-serv17275/src/rfta Added Files: CodeModelGenerator.cpp Log Message: * renamed CodeModel.[ch] to CodeModelGenerator.[ch] * introduced a level of indirection between the code model and ast node, there allowing for alternative parser implementation. --- NEW FILE: CodeModelGenerator.cpp --- // ////////////////////////////////////////////////////////////////////////// // (c)Copyright 2002, Baptiste Lepilleur. // Created: 2002/12/21 // ////////////////////////////////////////////////////////////////////////// #include "stdafx.h" #include <rfta/refactoring/CodeModelGenerator.h> #include <rfta/parser/ASTNode.h> #include <rfta/parser/ASTNodes.h> #include <rfta/refactoring/CodeModelExpressions.h> #include <rfta/refactoring/CodeModelStatements.h> #include <rfta/refactoring/CodeModelDeclarations.h> namespace { class ASTNNodeElementASTSource : public Refactoring::CodeModel::ElementASTSource { public: ASTNNodeElementASTSource( const Refactoring::ASTNodePtr &node ) : node_( node ) { } Refactoring::SourceRange getSourceRange() const { return node_->getRange(); } std::string getSourceText() const { return node_->getOriginalText(); } private: Refactoring::ASTNodePtr node_; }; } namespace Refactoring { namespace CodeModel { GeneratorError::GeneratorError( const std::string &message ) : std::logic_error( message ) { } GeneratorError::~GeneratorError() throw() { } Generator::Generator() { addStatement( ASTNodeTypes::breakStatement, &Generator::generateBreakStatement ); addStatement( ASTNodeTypes::caseStatement, &Generator::generateCaseStatement ); addStatement( ASTNodeTypes::compoundStatement, &Generator::generateCompoundStatement ); addStatement( ASTNodeTypes::declarationExpression, &Generator::generateDeclarationStatement ); addStatement( ASTNodeTypes::defaultStatement, &Generator::generateDefaultStatement ); addStatement( ASTNodeTypes::doWhileStatement, &Generator::generateDoStatement ); addStatement( ASTNodeTypes::expression, &Generator::generateExpressionStatement ); addStatement( ASTNodeTypes::forStatement, &Generator::generateForStatement ); // addStatement( ASTNodeTypes::gotoStatement, // &Generator::generateGotoStatement ); addStatement( ASTNodeTypes::selectionStatement, &Generator::generateIfStatement ); // addStatement( ASTNodeTypes::labelStatement, // &Generator::generateLabelStatement ); addStatement( ASTNodeTypes::nullStatement, &Generator::generateNullStatement ); addStatement( ASTNodeTypes::returnStatement, &Generator::generateReturnStatement ); addStatement( ASTNodeTypes::switchStatement, &Generator::generateSwitchStatement ); addStatement( ASTNodeTypes::whileStatement, &Generator::generateWhileStatement ); } Generator::~Generator() { } FunctionDeclarationPtr Generator::generateFunctionDeclaration( const ASTNodePtr &functionDeclNode ) { ASTNodePtr headerNode = functionDeclNode->getProperty( ASTNodeProperties::functionHeaderProperty ); if ( !headerNode ) throw std::invalid_argument( "Generator::generateFunctionDeclaration, functionDeclNode is not a function declaration node" ); ASTNodePtr bodyNode = functionDeclNode->getProperty( ASTNodeProperties::functionBodyProperty ); TypePtr returnType( new Type("") ); FunctionNamePtr name( new FunctionName( headerNode->getOriginalText() ) ); setElementSource( *name, headerNode ); ParametersPtr parameters( new Parameters() ); CompoundStatementPtr body; if ( bodyNode ) body = generateCompound( bodyNode ); return FunctionDeclarationPtr( new FunctionDeclaration( returnType, name, parameters, body ) ); } CompoundStatementPtr Generator::generateCompound( const ASTNodePtr &compoundNode ) { CompoundStatementPtr compound( new CompoundStatement() ); for ( int index = 0; index < compoundNode->getChildCount(); ++index ) { StatementPtr statement = generateStatement( compoundNode->getChildAt( index ) ); compound->appendStatement( statement ); } setElementSource( *compound, compoundNode ); return compound; } StatementPtr Generator::generateStatement( const ASTNodePtr &statementNode ) { Generators::iterator it = statementGenerators_.find( statementNode->getType() ); if ( it == statementGenerators_.end() ) { throw GeneratorError( "Generator::generateStatement(): node type is not a statement" + statementNode->getType().getName() ); } GeneratorFunction function = it->second; StatementPtr statement = (this->*function)( statementNode ); setElementSource( *statement, statementNode ); return statement; } void Generator::addStatement( const ASTNodeType &type, GeneratorFunction function ) { statementGenerators_.insert( Generators::value_type( type, function ) ); } StatementPtr Generator::generateBreakStatement( const ASTNodePtr &statement ) { return StatementPtr( new BreakStatement() ); } StatementPtr Generator::generateCaseStatement( const ASTNodePtr &statement ) { ASTNodePtr conditionValueNode = statement->getProperty( ASTNodeProperties::constantValueProperty ); ExpressionPtr conditionValue = generateExpression( conditionValueNode ); return StatementPtr( new CaseStatement( conditionValue ) ); } StatementPtr Generator::generateCompoundStatement( const ASTNodePtr &statement ) { return generateCompound( statement ); } StatementPtr Generator::generateDeclarationStatement( const ASTNodePtr &statement ) { DeclaratorExpressionPtr declarator = generateDeclarator( statement ); return StatementPtr( new DeclarationStatement( declarator ) ); } StatementPtr Generator::generateDefaultStatement( const ASTNodePtr &statement ) { return StatementPtr( new DefaultStatement() ); } StatementPtr Generator::generateDoStatement( const ASTNodePtr &statement ) { ASTNodePtr conditionNode = statement->getProperty( ASTNodeProperties::iterationProperty ); ASTNodePtr iteratedNode = statement->getProperty( ASTNodeProperties::iterationStatementProperty ); ExpressionPtr condition = generateExpression( conditionNode ); StatementPtr iterated = generateStatement( iteratedNode ); return StatementPtr( new DoStatement( condition, iterated ) ); } StatementPtr Generator::generateExpressionStatement( const ASTNodePtr &statement ) { ExpressionPtr expression = generateExpression( statement ); return StatementPtr( new ExpressionStatement( expression ) ); } StatementPtr Generator::generateForStatement( const ASTNodePtr &statement ) { ASTNodePtr iteratedNode = statement->getProperty( ASTNodeProperties::iterationStatementProperty ); StatementPtr iterated = generateStatement( iteratedNode ); ASTNodePtr forIterationNode = statement->getProperty( ASTNodeProperties::iterationProperty ); ASTNodePtr declarationNode = forIterationNode->getProperty( ASTNodeProperties::declarationProperty ); ExpressionPtr declaration = generateExpression( declarationNode ); ASTNodePtr conditionNode = forIterationNode->getProperty( ASTNodeProperties::conditionProperty ); ExpressionPtr condition = generateExpression( conditionNode ); ASTNodePtr iterationNode = forIterationNode->getProperty( ASTNodeProperties::nextStepProperty ); ExpressionPtr iteration = generateExpression( iterationNode ); return StatementPtr( new ForStatement( declaration, condition, iteration, iterated ) ); } StatementPtr Generator::generateIfStatement( const ASTNodePtr &statement ) { ASTNodePtr conditionNode = statement->getProperty( ASTNodeProperties::selectionProperty ); ASTNodePtr thenStatementNode = statement->getProperty( ASTNodeProperties::thenStatementProperty ); ASTNodePtr elseStatementNode = statement->getProperty( ASTNodeProperties::elseStatementProperty ); ExpressionPtr condition = generateExpression( conditionNode ); StatementPtr thenStatement = generateStatement( thenStatementNode ); if ( !elseStatementNode ) return StatementPtr( new IfStatement( condition, thenStatement ) ); StatementPtr elseStatement = generateStatement( elseStatementNode ); return StatementPtr( new IfStatement( condition, thenStatement, elseStatement ) ); } StatementPtr Generator::generateNullStatement( const ASTNodePtr &statement ) { return StatementPtr( new NullStatement() ); } StatementPtr Generator::generateReturnStatement( const ASTNodePtr &statement ) { ASTNodePtr valueNode = statement->getProperty( ASTNodeProperties::valueProperty ); if ( !valueNode ) return StatementPtr( new ReturnStatement() ); ExpressionPtr value = generateExpression( valueNode ); return StatementPtr( new ReturnStatement( value ) ); } StatementPtr Generator::generateSwitchStatement( const ASTNodePtr &statement ) { ASTNodePtr conditionNode = statement->getProperty( ASTNodeProperties::selectionProperty ); ASTNodePtr statementsNode = statement->getProperty( ASTNodeProperties::switchStatementProperty ); ExpressionPtr condition = generateExpression( conditionNode ); CompoundStatementPtr statements = generateCompound( statementsNode ); return StatementPtr( new SwitchStatement( condition, statements ) ); } StatementPtr Generator::generateWhileStatement( const ASTNodePtr &statement ) { ASTNodePtr conditionNode = statement->getProperty( ASTNodeProperties::iterationProperty ); ASTNodePtr iteratedNode = statement->getProperty( ASTNodeProperties::iterationStatementProperty ); ExpressionPtr condition = generateExpression( conditionNode ); StatementPtr iterated = generateStatement( iteratedNode ); return StatementPtr( new WhileStatement( condition, iterated ) ); } ExpressionPtr Generator::generateExpression( const ASTNodePtr &expression ) { if ( expression->getType() == ASTNodeTypes::declarationExpression ) return generateDeclaratorExpression( expression ); if ( expression->getRange().getLength() == 0 ) return generateNullExpression( expression ); return generateGenericExpression( expression ); } ExpressionPtr Generator::generateDeclaratorExpression( const ASTNodePtr &expression ) { return generateDeclarator( expression ); } ExpressionPtr Generator::generateGenericExpression( const ASTNodePtr &expressionNode ) { std::string value = expressionNode->getOriginalText(); ExpressionPtr expression( new GenericExpression() ); setElementSource( *expression, expressionNode ); return expression; } ExpressionPtr Generator::generateNullExpression( const ASTNodePtr &expressionNode ) { ExpressionPtr expression( new NullExpression() ); setElementSource( *expression, expressionNode ); return expression; } DeclaratorExpressionPtr Generator::generateDeclarator( const ASTNodePtr &expression ) { TypePartPtr primaryType( getDeclaratorPrimaryType( expression ) ); DeclaratorExpressionPtr declaratorExpression( new DeclaratorExpression( primaryType ) ); for ( int index = 0; index < expression->getChildCount(); ++index ) { const ASTNodePtr &declaratorNode = expression->getChildAt( index ); DeclaratorPtr declarator = makeVariableDeclarator( declaratorNode ); setElementSource( *declarator, declaratorNode ); declaratorExpression->appendDeclarator( declarator ); } setElementSource( *declaratorExpression, expression ); return declaratorExpression; } TypePartPtr Generator::getDeclaratorPrimaryType( const ASTNodePtr &declaratorNode ) { ASTNodePtr firstDecl = declaratorNode->getChildAt( 0 ); ASTNodePtr typePrefix = firstDecl->getProperty( ASTNodeProperties::typeDeclPrefixProperty ); TypePartPtr typePart( new TypePart() ); setElementSource( *typePart, typePrefix ); return typePart; } DeclaratorPtr Generator::makeVariableDeclarator( const ASTNodePtr &node ) { ASTNodePtr typeNode = node->getProperty( ASTNodeProperties::typeDeclSecondaryPrefixProperty ); TypePartPtr type = makeOptionalType( typeNode ); ASTNodePtr typeSuffixNode = node->getProperty( ASTNodeProperties::typeDeclSuffixProperty ); TypePartPtr typeSuffix = makeOptionalType( typeSuffixNode ); ASTNodePtr nameNode = node->getProperty( ASTNodeProperties::variableNameProperty ); IdentifierPtr name = makeIdentifier( nameNode ); /* std::string type = typeNode ? typeNode->getBlankedText() : std::string(""); ASTNodePtr nameNode = node->getProperty( ASTNodeProperties::variableNameProperty ); std::string name = nameNode->getBlankedText(); ASTNodePtr typeSuffixNode = node->getProperty( ASTNodeProperties::typeDeclSuffixProperty ); std::string typeSuffix = typeSuffixNode ? typeSuffixNode->getBlankedText() : std::string(""); TypePartPtr typePtr( new TypePart( type ) ); setElementSource( *typePtr, typeNode ); TypePartPtr typeSuffixPtr( new TypePart( typeSuffix ) ); setElementSource( *typeSuffixPtr, typeSuffixNode ); IdentifierPtr namePtr( new Identifier( name ) ); setElementSource( *namePtr, nameNode ); */ ASTNodePtr initializerNode = node->getProperty( ASTNodeProperties::variableInitializerProperty ); if ( !initializerNode ) return DeclaratorPtr( new Declarator( type, name, typeSuffix ) ); ExpressionPtr initializer = makeVariableInitializerExpression( initializerNode ); return DeclaratorPtr( new Declarator( type, name, typeSuffix, initializer ) ); } TypePartPtr Generator::makeOptionalType( const ASTNodePtr &typeNode ) { if ( !typeNode ) return TypePartPtr(); TypePartPtr typePtr( new TypePart( typeNode->getBlankedText() ) ); setElementSource( *typePtr, typeNode ); return typePtr; } IdentifierPtr Generator::makeIdentifier( const ASTNodePtr &identifierNode ) { IdentifierPtr namePtr( new Identifier( identifierNode->getBlankedText() ) ); setElementSource( *namePtr, identifierNode ); return namePtr; } ExpressionPtr Generator::makeVariableInitializerExpression( const ASTNodePtr &initializerNode ) { ASTNodePtr valueNode = initializerNode->getProperty( ASTNodeProperties::valueProperty ); ExpressionPtr value = generateExpression( valueNode ); setElementSource( *value, valueNode ); ExpressionPtr initializer; if ( initializerNode->getType() == ASTNodeTypes::assignVariableInitializerExpression ) initializer.reset( new AssignInitializerExpression( value ) ); else initializer.reset( new ConstructorInitializerExpression( value ) ); setElementSource( *initializer, initializerNode ); return initializer; } void Generator::setElementSource( Element &element, const ASTNodePtr &node ) { element.setSource( ElementASTSourcePtr( new ASTNNodeElementASTSource( node ) ) ); } } // namespace CodeModel } // namespace Refactoring |
From: <bl...@us...> - 2003-05-28 07:13:59
|
Update of /cvsroot/cpptool/rfta/bin In directory sc8-pr-cvs1:/tmp/cvs-serv7999/bin Modified Files: install-vc6-addin.bat Log Message: * updated to handle MSDEVDIR which may contains spaces Index: install-vc6-addin.bat =================================================================== RCS file: /cvsroot/cpptool/rfta/bin/install-vc6-addin.bat,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** install-vc6-addin.bat 22 Apr 2003 19:24:29 -0000 1.2 --- install-vc6-addin.bat 28 May 2003 07:13:56 -0000 1.3 *************** *** 2,7 **** set ADDINS_DIR=%MSDevDir%\AddIns ! xcopy /Y rfta_mdr.ext %ADDINS_DIR% ! xcopy /Y rftaparser_mdr.ext %ADDINS_DIR% ! xcopy /Y rftavc6addin.dll %ADDINS_DIR% pause --- 2,7 ---- set ADDINS_DIR=%MSDevDir%\AddIns ! xcopy /Y rfta_mdr.ext "%ADDINS_DIR%" ! xcopy /Y rftaparser_mdr.ext "%ADDINS_DIR%" ! xcopy /Y rftavc6addin.dll "%ADDINS_DIR%" pause |
From: <bl...@us...> - 2003-05-28 07:13:28
|
Update of /cvsroot/cpptool/rfta/src/rftaparser In directory sc8-pr-cvs1:/tmp/cvs-serv7708/src/rftaparser Modified Files: CPPParserTest.cpp CPPParserTest.h Log Message: * added test to check that the node type returned by getFunctionAt() is 'function implementation' Index: CPPParserTest.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rftaparser/CPPParserTest.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** CPPParserTest.cpp 16 May 2003 19:55:02 -0000 1.4 --- CPPParserTest.cpp 28 May 2003 07:13:24 -0000 1.5 *************** *** 7,10 **** --- 7,11 ---- #include "CPPParserTest.h" #include <rfta/parser/CPPParser.h> + #include <rfta/parser/ASTNodes.h> *************** *** 45,48 **** --- 46,50 ---- int selectionIndex = source.getKeyedIndex( selectionKey_, 0 ); ASTNodePtr functionNode = parser.parseForFunctionBodyAt( selectionIndex ); + RFTA_ASSERT_NODE_TYPE( functionNode, ASTNodeTypes::functionImplementation, "function node" ); CPPUNIT_ASSERT_MESSAGE( "Failed to find function implementation node", functionNode ); CPPUNIT_ASSERT( functionNode->getRange().contains( SourceRange( selectionIndex, 0 ) ) ); Index: CPPParserTest.h =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rftaparser/CPPParserTest.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CPPParserTest.h 3 May 2003 17:43:12 -0000 1.2 --- CPPParserTest.h 28 May 2003 07:13:24 -0000 1.3 *************** *** 6,10 **** #define RFTA_CPPPARSERTEST_H ! #include "UnitTesting.h" #include "KeyedString.h" --- 6,10 ---- #define RFTA_CPPPARSERTEST_H ! #include "ParserTesting.h" #include "KeyedString.h" |
From: <bl...@us...> - 2003-05-26 21:29:30
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring In directory sc8-pr-cvs1:/tmp/cvs-serv29074/include/rfta/refactoring Removed Files: CodeModel.h Log Message: * renamed CodeModel.[ch] to CodeModelGenerator.[ch] --- CodeModel.h DELETED --- |
From: <bl...@us...> - 2003-05-26 21:29:29
|
Update of /cvsroot/cpptool/rfta/src/rfta In directory sc8-pr-cvs1:/tmp/cvs-serv29074/src/rfta Removed Files: CodeModel.cpp Log Message: * renamed CodeModel.[ch] to CodeModelGenerator.[ch] --- CodeModel.cpp DELETED --- |
From: <bl...@us...> - 2003-05-26 21:13:55
|
Update of /cvsroot/cpptool/rfta/src/astdumper In directory sc8-pr-cvs1:/tmp/cvs-serv23614/src/astdumper Modified Files: Main.cpp Log Message: * added better command line check Index: Main.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/astdumper/Main.cpp,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Main.cpp 1 May 2003 09:08:09 -0000 1.4 --- Main.cpp 26 May 2003 21:13:52 -0000 1.5 *************** *** 42,46 **** char *argv[] ) { ! if ( argc > 3 ) { printUsage(); --- 42,46 ---- char *argv[] ) { ! if ( argc != 3 ) { printUsage(); |
From: <bl...@us...> - 2003-05-26 21:12:36
|
Update of /cvsroot/cpptool/rfta/include/rfta/refactoring In directory sc8-pr-cvs1:/tmp/cvs-serv23046/include/rfta/refactoring Modified Files: CodeModelElement.h CodeModelForward.h Log Message: * renamed CodeModel.[ch] to CodeModelGenerator.[ch] * introduced a level of indirection between the code model and ast node, there allowing for alternative parser implementation. Index: CodeModelElement.h =================================================================== RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelElement.h,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** CodeModelElement.h 10 Apr 2003 08:37:46 -0000 1.14 --- CodeModelElement.h 26 May 2003 21:12:33 -0000 1.15 *************** *** 7,11 **** #include <rfta/refactoring/CodeModelForward.h> ! #include <rfta/parser/ASTNodeForward.h> #include <boost/enable_shared_from_this.hpp> #include <boost/utility.hpp> --- 7,11 ---- #include <rfta/refactoring/CodeModelForward.h> ! #include <rfta/parser/SourceRange.h> #include <boost/enable_shared_from_this.hpp> #include <boost/utility.hpp> *************** *** 15,18 **** --- 15,32 ---- + class RFTA_API ElementASTSource + { + public: + virtual ~ElementASTSource() + { + } + + virtual SourceRange getSourceRange() const = 0; + + virtual std::string getSourceText() const = 0; + }; + + + /// This class represents class RFTA_API Element : public boost::enable_shared_from_this<Element> *************** *** 39,43 **** /** Set the source for this element. */ ! void setSource( const ASTNodePtr &node ); virtual void accept( ElementVisitor &visitor ); --- 53,57 ---- /** Set the source for this element. */ ! void setSource( const ElementASTSourcePtr &node ); virtual void accept( ElementVisitor &visitor ); *************** *** 55,59 **** virtual void setElementIsFromSource(); ! ASTNodePtr node_; }; --- 69,73 ---- virtual void setElementIsFromSource(); ! ElementASTSourcePtr astSource_; }; Index: CodeModelForward.h =================================================================== RCS file: /cvsroot/cpptool/rfta/include/rfta/refactoring/CodeModelForward.h,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** CodeModelForward.h 6 Apr 2003 18:06:59 -0000 1.14 --- CodeModelForward.h 26 May 2003 21:12:33 -0000 1.15 *************** *** 12,15 **** --- 12,16 ---- class Change; + class ElementASTSource; class Element; class Label; *************** *** 69,72 **** --- 70,74 ---- typedef boost::shared_ptr<Element> ElementPtr; + typedef boost::shared_ptr<ElementASTSource> ElementASTSourcePtr; typedef boost::shared_ptr<Label> LabelPtr; typedef boost::shared_ptr<TypePart> TypePartPtr; |
Update of /cvsroot/cpptool/rfta/src/rfta In directory sc8-pr-cvs1:/tmp/cvs-serv23046/src/rfta Modified Files: CodeModelElement.cpp CodeModelGeneratorTest.cpp CodeWriterTestBase.cpp rfta.dsp SplitDeclarationRefactoring.cpp Log Message: * renamed CodeModel.[ch] to CodeModelGenerator.[ch] * introduced a level of indirection between the code model and ast node, there allowing for alternative parser implementation. Index: CodeModelElement.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelElement.cpp,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** CodeModelElement.cpp 21 Apr 2003 03:08:54 -0000 1.11 --- CodeModelElement.cpp 26 May 2003 21:12:33 -0000 1.12 *************** *** 26,30 **** Element::isFromSource() const { ! return node_; } --- 26,30 ---- Element::isFromSource() const { ! return astSource_; } *************** *** 33,38 **** Element::getSourceText() const { ! if ( node_ ) ! return node_->getOriginalText(); return std::string(); } --- 33,38 ---- Element::getSourceText() const { ! if ( astSource_ ) ! return astSource_->getSourceText(); return std::string(); } *************** *** 42,47 **** Element::getSourceRange() const { ! if ( node_ ) ! return node_->getRange(); return SourceRange(); } --- 42,47 ---- Element::getSourceRange() const { ! if ( astSource_ ) ! return astSource_->getSourceRange(); return SourceRange(); } *************** *** 49,55 **** void ! Element::setSource( const ASTNodePtr &node ) { ! node_ = node; setElementIsFromSource(); } --- 49,55 ---- void ! Element::setSource( const ElementASTSourcePtr &node ) { ! astSource_ = node; setElementIsFromSource(); } Index: CodeModelGeneratorTest.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeModelGeneratorTest.cpp,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** CodeModelGeneratorTest.cpp 15 May 2003 16:29:13 -0000 1.9 --- CodeModelGeneratorTest.cpp 26 May 2003 21:12:33 -0000 1.10 *************** *** 6,10 **** #include "stdafx.h" #include "CodeModelGeneratorTest.h" ! #include <rfta/refactoring/CodeModel.h> #include <rfta/refactoring/CodeModelStatements.h> #include <rfta/refactoring/CodeModelExpressions.h> --- 6,10 ---- #include "stdafx.h" #include "CodeModelGeneratorTest.h" ! #include <rfta/refactoring/CodeModelGenerator.h> #include <rfta/refactoring/CodeModelStatements.h> #include <rfta/refactoring/CodeModelExpressions.h> Index: CodeWriterTestBase.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/CodeWriterTestBase.cpp,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** CodeWriterTestBase.cpp 15 May 2003 16:29:13 -0000 1.8 --- CodeWriterTestBase.cpp 26 May 2003 21:12:33 -0000 1.9 *************** *** 6,10 **** #include "stdafx.h" #include "CodeWriterTestBase.h" ! #include <rfta/refactoring/CodeModel.h> #include <rfta/Parser/StatementsParser.h> --- 6,10 ---- #include "stdafx.h" #include "CodeWriterTestBase.h" ! #include <rfta/refactoring/CodeModelGenerator.h> #include <rfta/Parser/StatementsParser.h> Index: rfta.dsp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/rfta.dsp,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** rfta.dsp 16 May 2003 08:30:33 -0000 1.48 --- rfta.dsp 26 May 2003 21:12:33 -0000 1.49 *************** *** 56,61 **** # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib cppunit_dll.lib /nologo /dll /debug /machine:I386 /out:"..\..\build\rfta\Release/rfta_mdr.ext" /libpath:"../../deplib/cppunit/lib" /libpath:"../../lib" # Begin Special Build Tool ! TargetDir=\Projects\Cpptool\rfta\build\rfta\Release ! TargetPath=\Projects\Cpptool\rfta\build\rfta\Release\rfta_mdr.ext TargetName=rfta_mdr SOURCE="$(InputPath)" --- 56,61 ---- # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib cppunit_dll.lib /nologo /dll /debug /machine:I386 /out:"..\..\build\rfta\Release/rfta_mdr.ext" /libpath:"../../deplib/cppunit/lib" /libpath:"../../lib" # Begin Special Build Tool ! TargetDir=\prg\vc\Rfta\build\rfta\Release ! TargetPath=\prg\vc\Rfta\build\rfta\Release\rfta_mdr.ext TargetName=rfta_mdr SOURCE="$(InputPath)" *************** *** 90,95 **** # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib cppunitd_dll.lib /nologo /dll /debug /machine:I386 /out:"..\..\build\rfta\Debug\rfta_mdd.ext" /pdbtype:sept /libpath:"../../deplib/cppunit/lib" /libpath:"../../lib" # Begin Special Build Tool ! TargetDir=\Projects\Cpptool\rfta\build\rfta\Debug ! TargetPath=\Projects\Cpptool\rfta\build\rfta\Debug\rfta_mdd.ext TargetName=rfta_mdd SOURCE="$(InputPath)" --- 90,95 ---- # ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib cppunitd_dll.lib /nologo /dll /debug /machine:I386 /out:"..\..\build\rfta\Debug\rfta_mdd.ext" /pdbtype:sept /libpath:"../../deplib/cppunit/lib" /libpath:"../../lib" # Begin Special Build Tool ! TargetDir=\prg\vc\Rfta\build\rfta\Debug ! TargetPath=\prg\vc\Rfta\build\rfta\Debug\rfta_mdd.ext TargetName=rfta_mdd SOURCE="$(InputPath)" *************** *** 331,342 **** # Begin Source File - SOURCE=.\CodeModel.cpp - # End Source File - # Begin Source File - - SOURCE=..\..\include\rfta\refactoring\CodeModel.h - # End Source File - # Begin Source File - SOURCE=..\..\doc\CodeModel.txt # End Source File --- 331,334 ---- *************** *** 360,363 **** --- 352,363 ---- SOURCE=..\..\include\rfta\refactoring\CodeModelForward.h + # End Source File + # Begin Source File + + SOURCE=.\CodeModelGenerator.cpp + # End Source File + # Begin Source File + + SOURCE=..\..\include\rfta\refactoring\CodeModelGenerator.h # End Source File # Begin Source File Index: SplitDeclarationRefactoring.cpp =================================================================== RCS file: /cvsroot/cpptool/rfta/src/rfta/SplitDeclarationRefactoring.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SplitDeclarationRefactoring.cpp 22 Apr 2003 19:23:27 -0000 1.2 --- SplitDeclarationRefactoring.cpp 26 May 2003 21:12:33 -0000 1.3 *************** *** 21,25 **** #include <rfta/refactoring/RefactoringError.h> #include <rfta/refactoring/TextDocument.h> ! #include <rfta/refactoring/CodeModel.h> #include <rfta/refactoring/CodeModelStatements.h> #include <rfta/refactoring/CodeModelForward.h> --- 21,25 ---- #include <rfta/refactoring/RefactoringError.h> #include <rfta/refactoring/TextDocument.h> ! #include <rfta/refactoring/CodeModelGenerator.h> #include <rfta/refactoring/CodeModelStatements.h> #include <rfta/refactoring/CodeModelForward.h> |
From: <bl...@us...> - 2003-05-26 20:13:24
|
Update of /cvsroot/cpptool/rfta/doc In directory sc8-pr-cvs1:/tmp/cvs-serv28486/doc Modified Files: RenameLocaleVariable.html Log Message: * added example Index: RenameLocaleVariable.html =================================================================== RCS file: /cvsroot/cpptool/rfta/doc/RenameLocaleVariable.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** RenameLocaleVariable.html 26 May 2003 07:26:03 -0000 1.1 --- RenameLocaleVariable.html 26 May 2003 20:13:21 -0000 1.2 *************** *** 7,16 **** </head> <body> ! Rename Locale Variable Refactoring<br> <br> This refactoring is used to rename a single locale variable with a free or a member function body.<br> ! <br> ! KNOWN ISSUES: <br> <ul> <li>For scope is handled as defined by the C++ standard (variable --- 7,15 ---- </head> <body> ! <h1> Rename Locale Variable Refactoring</h1> <br> This refactoring is used to rename a single locale variable with a free or a member function body.<br> ! <h2> KNOWN ISSUES: </h2> <ul> <li>For scope is handled as defined by the C++ standard (variable *************** *** 26,30 **** declaration. </li> </ul> ! EXAMPLES:<br> <br> <br> --- 25,76 ---- declaration. </li> </ul> ! <h2> EXAMPLE:</h2> ! Rename locale variable 'x' to 'linePrice':<br> ! <br> ! <table cellpadding="2" cellspacing="0" border="1" ! style="text-align: left; width: 100%;"> ! <tbody> ! <tr> ! <td style="vertical-align: top;">Original text:<br> ! </td> ! <td style="vertical-align: top;">Refactored text:<br> ! </td> ! </tr> ! <tr> ! <td style="vertical-align: top; font-family: monospace;">void ! OrderLine::computePrice( double )<br> ! {<br> ! double x = getPrice();<br> ! <span style="font-weight: bold; color: rgb(255, 0, 0);">x</span> ! += x * rate;<br> ! <br> ! if ( isSummer() )<br> ! {<br> ! double x = summerRate * summerDays;<br> ! addTaxes( x );<br> ! }<br> ! <br> ! return x * getQuantity();<br> ! }</td> ! <td style="vertical-align: top; font-family: monospace;">void ! OrderLine::computePrice( double )<br> ! {<br> ! double <span style="color: rgb(255, 0, 0);">linePrice </span>= ! getPrice();<br> ! <span style="color: rgb(255, 0, 0);">linePrice </span>+= <span ! style="color: rgb(255, 0, 0);">linePrice </span>* rate;<br> ! <br> ! if ( isSummer() )<br> ! {<br> ! double x = summerRate * summerDays;<br> ! addTaxes( x );<br> ! }<br> ! <br> ! return <span style="color: rgb(255, 0, 0);">linePrice </span>* ! getQuantity();<br> ! }</td> ! </tr> ! </tbody> ! </table> <br> <br> |
From: <bl...@us...> - 2003-05-26 07:26:07
|
Update of /cvsroot/cpptool/rfta/doc In directory sc8-pr-cvs1:/tmp/cvs-serv24921/doc Modified Files: rfta_screenshots.html Added Files: RenameLocaleVariable.html Log Message: * added documentation for RenameLocaleVariable refactoring. --- NEW FILE: RenameLocaleVariable.html --- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1"> <title>C++ Refactoring Assistant: Rename Locale Variable Refactoring</title> </head> <body> Rename Locale Variable Refactoring<br> <br> This refactoring is used to rename a single locale variable with a free or a member function body.<br> <br> KNOWN ISSUES: <br> <ul> <li>For scope is handled as defined by the C++ standard (variable defined in for initialization are in a new scope). This is not the behavior of older compiler (VC++ 6 for instance does not define a new scope).</li> <li>The new locale variable name is not checked for conflict (be careful not to enter the name of an existing variable or function used locally).</li> <li>Function pointers declaration are not recognized as locale variable declaration.</li> <li>The parser sometime failed to recognize a locale variable declaration. </li> </ul> EXAMPLES:<br> <br> <br> </body> </html> Index: rfta_screenshots.html =================================================================== RCS file: /cvsroot/cpptool/rfta/doc/rfta_screenshots.html,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** rfta_screenshots.html 19 May 2003 21:43:34 -0000 1.1 --- rfta_screenshots.html 26 May 2003 07:26:04 -0000 1.2 *************** *** 27,31 **** <br> <br> ! Rename Locale Variable Refactoring<br> <br> <br> --- 27,37 ---- <br> <br> ! All the current refactorings only use the start of the selection or the ! current carret location to determine which locale variable should be ! renamed. You can point out any occurences of the locale variable you ! want to rename.<br> ! <br> ! <br> ! <br> <br> <br> |
From: <bl...@us...> - 2003-05-25 18:04:55
|
Update of /cvsroot/cpptool/rfta/bug In directory sc8-pr-cvs1:/tmp/cvs-serv6782/bug Modified Files: List.txt Log Message: * found infinite loop cause: K&R function declaration. Index: List.txt =================================================================== RCS file: /cvsroot/cpptool/rfta/bug/List.txt,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** List.txt 25 May 2003 17:27:40 -0000 1.11 --- List.txt 25 May 2003 18:04:52 -0000 1.12 *************** *** 191,194 **** --- 191,202 ---- } --- + Infinite loop when parsing K&R function declaration: audacity/getopt1.c + int + main (argc, argv) + int argc; + char **argv; + { + } + --- |