public virtual bool VisitEndStatement(EndStatement endStatement, object d) { if ((endStatement == null)) { return SetFailure(); } if ((d == null)) { return SetFailure(); } if(endStatement.GetType() != d.GetType()) {return SetFailure();} var data = (EndStatement)d; if (!IsMatch(endStatement, data)) { return SetFailure(); } return true; }