public Block (Block parent, Flags flags, Location start, Location end) { if (parent != null) { parent.AddChild (this); // the appropriate constructors will fixup these fields Toplevel = parent.Toplevel; Explicit = parent.Explicit; } this.Parent = parent; this.flags = flags; this.StartLocation = start; this.EndLocation = end; this.loc = start; this_id = id++; statements = new List<Statement> (4); }