This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Refactoring tool

Recently I have been interested in creating an open source refactoring tool.  I did not have much luck
finding an application that does what I need and thought that I could get some feedback
from the gcc community.  In particular I would like to add a flag which would cause gcc to emit symbol definition and use
information.  The -fdump-* flags provide much of this information in various formats.  I would like to combine the salient
information into a denser binary format that could be consumed by a subsequent application which would then modify the
original source text.  I would like this second application to be a command line tool which uses a syntax similar to gdb.
For example "show unused headers in test.cpp" would print the header files which were included but not required in test.cpp.
I have been able to come up with a small set of functions that I would like to be available, these include:
rename [function|class|variable]+ [in scope] old_name new_name  //rename a function or variable or class
move [function|class|variable]+ to file  //move a function class or variable definition to a different source code location
remove using [namespace name] from file //fully qualify each symbol use with the appropriate namespace
create function from file.begin_line file.end_line  //create a function out of a block of code
Having spent some time looking at the code for gcc it seems reasonably easy(with some suggestions) to traverse the tree generated and
write the relevant information to a file.   Any suggestions or pointers to related work would be much appreciated.

Get the Yahoo! toolbar and be alerted to new email wherever you're surfing.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]