| Class | 
                        Description | 
                    
                            | 
                                
                                    AstHelper
                                
                             | 
                            Helping to create a few standard AST constructs | 
                        
                            | 
                                
                                    CollectRecursiveCalls
                                
                             | 
                            Collect all recursive calls within method | 
                        
                            | 
                                
                                    HasRecursiveCalls
                                
                             | 
                            Check if there are any recursive calls in a method | 
                        
                            | 
                                
                                    InWhileLoopWrapper
                                
                             | 
                            Wrap the body of a method in a while loop, nested in a try-catch.
  | 
                        
                            | 
                                
                                    RecursivenessTester
                                
                             | 
                            Test if a method call is recursive if called within a given method node.
  | 
                        
                            | 
                                
                                    ReturnAdderForClosures
                                
                             | 
                            Adds explicit return statements to implicit return points in a closure.  | 
                        
                            | 
                                
                                    ReturnStatementToIterationConverter
                                
                             | 
                            Translates all return statements into an invocation of the next iteration.  | 
                        
                            | 
                                
                                    StatementReplacer
                                
                             | 
                            Tool for replacing Statement objects in an AST by other Statement instances. | 
                        
                            | 
                                
                                    TailRecursiveASTTransformation
                                
                             | 
                            Handles generation of code for the- TailRecursive:
 - annotation.
    | 
                        
                            | 
                                
                                    TernaryToIfStatementConverter
                                
                             | 
                            Since a ternary statement has more than one exit point tail-recursiveness testing cannot be easily done.
  | 
                        
                            | 
                                
                                    VariableAccessReplacer
                                
                             | 
                            Replace all access to variables and args by new variables.
  | 
                        
                            | 
                                
                                    VariableExpressionReplacer
                                
                             | 
                            Tool for replacing VariableExpression instances in an AST by other VariableExpression instances.
  | 
                        
                            | 
                                
                                    VariableExpressionTransformer
                                
                             | 
                            An expression transformer used in the process of replacing the access to variables |