CMT

C Maintenance Tool


Introduction
Because of the fact that there is a lot C code currently in use, programmers should get support by understanding and changing those. There are various so called refactoring tools for object oriented languages, but there are merely a few tools for refactoring C. That is why this project is concerned with creating a tool for understanding legacy C code. Furthermore there are few crossreferencing tools that are also aware of the scope of identifiers in a C file and preprocessing commands. CMT aims at solving those problems and providing a reliable tool, useful for software engineers, students of software engineering and freetime programmers as well.
  
Features
  • cross-references identifier of one or more C file(s):
  • provides definition line and column and further occurrences for each identifier(variables and functions)
  • handles scope of variables and functions
  • handles included files, standard libs as well as self written libs
  • handles preprocessing macros and conditional directives
  • renaming facility is provided as well
  • provides output:
  • in a textfile
  • in html format
  
Further documentation
  
Helpful references
  • for parsing C files I use the parser generator Antlr
  • I am using eclipse because it is, in my opinion, a very confortable IDE
  • there is a GUI for Antlr, called AntlrWorks, but I figured out that using Antlr's eclipse plugin is easier, especially because of the great videos by Scott Stanchfield
  • I can also recommend the book "The Definitive ANTLR Reference: Building Domain-Specific Languages" by Terence Parr, it helps you to understand, write and extend Antlr grammars
  
Download
--under construction--
  
Developer/Author
  • Anna-Christina Friedrich, id c00132716
  • 4th year project of the course 'B. Sc. Software Engineering'
  • Institute of Technology Carlow