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; }