Pork 0.9 in the wild

Those who would like to play with Pork, but are allergic to pulling sources from version control can now download an actual pork release. Now someone needs to hook this into a GUI to provide easy Eclipse-style refactoring for C++.

1 comment

  1. Hi

    I’m using Elsa/Elkhound for quite some time now to build interactive visualizations and reverse-engineering tools. I could say this was quite successful (see later in this mail)

    We started with Elsa around 2006. At that point, Elsa lacked some features, which we had to implement ourselves:

    -integration with a preprocessor
    -exact line/column info for all AST nodes
    -support for recovery from parse errors
    -a query API for the delivered AST
    -filtering the output and saving it in a compact binary format
    -visualization tools for examining the output

    Some of these required us to hack/change Elsa/Elkhound. However, I see that both you (in pork) and others (in oink?) have improved Elsa/Elkhound in complementary, but also overlapping, directions.

    My main questions would be:

    -how can I _clearly_ get an overview of all that was changed into Elsa/Elkhound since mid 2006?
    -how is MCPP integrated with ccparse? I simply cannot get it from the code (downloaded pork today). Is it called as an external process? Is it called as a library? Is it simply not called but ccparse expects to receive a preprocessed file from MCPP? Or..?
    -how can I retrieve end-locations for the AST nodes (which API)? Is this done for _all_ AST nodes, or only some?

    It’d be really nice if I can get an understanding of what happened on your side and match it with what I did myself, and then come back with a potentially improved version for us all.


    (for some snapshots and background info on Elsa/Elkhound based results, see e.g. the papers 107,105,104 on my website http://www.win.tue.nl/~alext/ALEX/PAPERS/papers.html)