public override Result Optimize() { NotResult not = Result as NotResult; return(not != null?not.Result.Optimize() : new NotResult(Result.Optimize())); }
public override void Visit(NotResult result) { WriteLine("NOT"); base.Visit(result); }
public virtual void Visit(NotResult visitee) => visitee.Result.Accept(this);