public override object Clone()
{
IfStatement ifStmt =
(IfStatement) base.Clone();
ifStmt.test = (Expression) test.Clone();
ifStmt.thenPart = (Node) thenPart.Clone();
if (ifStmt.elsePart != null)
ifStmt.elsePart = (Node) elsePart.Clone();
return ifStmt;
}