public void Freeze() { if (!IsFrozen) { for (AstNode child = firstChild; child != null; child = child.nextSibling) { child.Freeze(); } flags |= frozenBit; } }