[cfe-dev] code conversion challenge

Philip Ashmore contact at philipashmore.com
Mon Feb 27 23:01:53 PST 2012


Hi there.

Here's the problem:
Given the source file with this content:

   int main(int argc, char * argv[])
   {
     /* all ok */
     return 0;
   }

I want to convert it into something like this:

   module
   ( function
     ( Name("main")
     , Returns("int")
     , Parameters
       ( Parameter(Type("int"), Name("argc")
       , Parameter(Type(Array(Pointer("char"), Size()), Name("argv")
       )
     , Body
       ( Comment("all ok")
       , Return(Int(0i32))
       )
     )
   )

This is a description format that has a binary representation that allows for
easy depth-first and breadth-first traversal.

With it one can describe C/C++, make files, pre-processor macros etc. - the
reader supplies the meaning to the "calls" like "module".

With it I hope to be able to describe things like interfaces and be able to
automate the glue that allows it to be called from scripting languages,
and much more.

I haven't even given this format a name, but I can convert the text above to
and from the binary representation.

So that's the challenge - any takers?

Regards,
Philip Ashmore




More information about the cfe-dev mailing list