private string GetModifiedName(BlockStatement blockStatement, string identifier)
 {
     int hashCode;
     while (blockStatement != null)
     {
         hashCode = blockStatement.GetHashCode();
         string identifierHash = identifier + "_" + hashCode;
         if (renamedVariables.Contains(identifierHash))
             return (string) renamedVariables[identifierHash];
         else
             blockStatement = (BlockStatement) AstUtil.GetParentOfType(blockStatement, typeof(BlockStatement));
     }
     return null;
 }
 public override object TrackedVisitBlockStatement(BlockStatement blockStatement, object data)
 {
     BlockStatement replaced = blockStatement;
     InsertionBlockData insertionBlockData = new InsertionBlockData();
     base.TrackedVisitBlockStatement(blockStatement, insertionBlockData);
     if (insertionBlockData.Block != null && insertionBlockData.Statements.Count > 0)
     {
         if (blockStatement.GetHashCode() == insertionBlockData.Block.GetHashCode())
         {
             IList<INode> nodes = new List<INode>();
             foreach (Statement node in insertionBlockData.Statements)
                 nodes.Add(node);
             replaced.Children.InsertRange(insertionBlockData.BlockChildIndex, nodes);
             ReplaceCurrentNode(replaced);
         }
     }
     return null;
 }