Skip to content

Source code analysis for R ?

2 messages · Dirk Eddelbuettel, Thomas Lumley

#
A GUI-heavy R project of mine has mushroomed into well over 1000 lines of
code. It is getting to a point where I am wondering if someone had something
like a script to summarize which functions call which other etc.  

Note that I am not looking at profiling but rather a (static) analysis of
code interdepence.  Does anybody here have anything for this task?

Thanks for any pointers,  Dirk
#
On Fri, 23 May 2003, Dirk Eddelbuettel wrote:

            
This seems to work as a starting point:
calls<-function(fn){
     if(length(fn)==1)
        return(character(0))
     else
        c(as.character(fn[[1]]),sapply(fn, calls),recursive=TRUE)
}

You use it like
 calls(body(update.formula))

             "{"             "<-"    "environment"     "as.formula"

            "<-"      ".Internal" "update.formula"     "as.formula"

    "as.formula"             "<-"        "formula"  "terms.formula"

            "<-"    "environment"         "return"

Unfortunately most of the calls are to <- in any given piece of code, but
it would be easy to trim these out.

Given the links you could then use GraphViz to draw the call graph.

	-thomas