Is there command-line tool to extract typedef, structure, enumeration, variable, function from a C or C++ file?

Posted by FooF on Stack Overflow See other posts from Stack Overflow or by FooF
Published on 2012-06-27T02:20:00Z Indexed on 2012/06/27 3:16 UTC
Read the original article Hit count: 139

I am desiring a command-line tool to extract a definition or declaration (typedef, structure, enumeration, variable, or function) from a C or C++ source file. Also a way to replace an existing definition/declaration would be handy (after transforming the extracted definition by a user-submitted script). Is there such generic tool available, or is some resonably close approximation of such a tool?

Scriptability and ability to hook-up with user created scripts or programs is of importance here, although I am academically curious of GUI programs too. Open source solutions for Unix/Linux camp are preferred (although I am curious of Windows and OS X tools too). Primary language interests are C and C++ but more generic solution would be even better (I think we do not need super accurate parsing capabilities for finding, extracting and replacing a definition in a program source file).

Sample Use Cases (extra - for the curious mind):

  1. Given deeply nested structs and variable (array) initializations of these types, suppose there is a need to change a struct definition by adding or reordering fields or rewriting the variable/array definitions in more readable format without introducing errors resulting from manual labor. This would work by extracting the old initializations, then using a script/program to write the new initializations to replace the old ones.
  2. For implementing a code browsing tool - extract a definition.
  3. Decorative code generation (e.g. logging function entries / returns).
  4. Scripted code structuring (e.g. extract this and that thing and put in different place without change - version control commit comment could document the command to perform this operation to make it evident and verifiable that nothing changed).

Note about tags: More accurate tag than code-generation would be code-transformation but it does not exist.

© Stack Overflow or respective owner

Related posts about c++

Related posts about c