private Node TransformBlock(AstNode node) { if (node is Scope) { PushScope((Scope)node); } try { IList<Node> kids = new List<Node>(); foreach (Node kid in node) { kids.Add(Transform((AstNode)kid)); } node.RemoveChildren(); foreach (Node kid_1 in kids) { node.AddChildToBack(kid_1); } return node; } finally { if (node is Scope) { PopScope(); } } }