\HeaderA{codetools}{Low Level Code Analysis Tools for R}{codetools}
\aliasA{collectLocals}{codetools}{collectLocals}
\aliasA{collectUsage}{codetools}{collectUsage}
\aliasA{constantFold}{codetools}{constantFold}
\aliasA{findFuncLocals}{codetools}{findFuncLocals}
\aliasA{findLocals}{codetools}{findLocals}
\aliasA{findLocalsList}{codetools}{findLocalsList}
\aliasA{flattenAssignment}{codetools}{flattenAssignment}
\aliasA{getAssignedVar}{codetools}{getAssignedVar}
\aliasA{isConstantValue}{codetools}{isConstantValue}
\aliasA{makeCodeWalker}{codetools}{makeCodeWalker}
\aliasA{makeConstantFolder}{codetools}{makeConstantFolder}
\aliasA{makeLocalsCollector}{codetools}{makeLocalsCollector}
\aliasA{makeUsageCollector}{codetools}{makeUsageCollector}
\aliasA{walkCode}{codetools}{walkCode}
\keyword{programming}{codetools}
\begin{Description}\relax
These functions provide some tools for analysing R code.  Mainly
indented to support the other tools in this package and byte code
compilation.
\end{Description}
\begin{Usage}
\begin{verbatim}
collectLocals(e, collect) 
collectUsage(fun, name = "<anonymous>", ...) 
constantFold(e, env = NULL, fail = NULL) 
findFuncLocals(formals, body) 
findLocals(e, envir = .BaseEnv) 
findLocalsList(elist, envir = .BaseEnv)
flattenAssignment(e) 
getAssignedVar(e) 
isConstantValue(v, w) 
makeCodeWalker(..., handler, call, leaf) 
makeLocalsCollector(..., leaf, handler, isLocal, exit, collect) 
makeUsageCollector(fun, ..., name, enterLocal, enterGlobal, enterInternal,
                   startCollectLocals, finishCollectLocals, warn,
                   signal)
walkCode(e, w = makeCodeWalker()) 
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{e}] R expression.
\item[\code{elist}] list of R expressions.
\item[\code{v}] R object.
\item[\code{fun}] closure.
\item[\code{formals}] formal arguments of a closure.
\item[\code{body}] body of a closure.
\item[\code{name}] character.
\item[\code{env}] character.
\item[\code{envir}] environment.
\item[\code{w}] code walker.
\item[\code{...}] extra elements for code walker.
\item[\code{collect}] function.
\item[\code{fail}] function.
\item[\code{handler}] function.
\item[\code{call}] function.
\item[\code{leaf}] function.
\item[\code{isLocal}] function.
\item[\code{exit}] function.
\item[\code{enterLocal}] function.
\item[\code{enterGlobal}] function.
\item[\code{enterInternal}] function.
\item[\code{startCollectLocals}] function.
\item[\code{finishCollectLocals}] function.
\item[\code{warn}] function.
\item[\code{signal}] function.
\end{ldescription}
\end{Arguments}
\begin{Author}\relax
Luke Tierney
\end{Author}

