public virtual void VisitForSyntax(ForSyntax syntax) { this.Visit(syntax.OpenSquare); this.Visit(syntax.ForKeyword); this.Visit(syntax.VariableSection); this.Visit(syntax.InKeyword); this.Visit(syntax.Expression); this.Visit(syntax.Colon); this.Visit(syntax.Body); this.Visit(syntax.CloseSquare); }
protected virtual SyntaxBase ReplaceForSyntax(ForSyntax syntax) { var hasChanges = TryRewriteStrict(syntax.OpenSquare, out var openSquare); hasChanges |= TryRewriteStrict(syntax.ForKeyword, out var forKeyword); hasChanges |= TryRewrite(syntax.VariableSection, out var itemVariable); hasChanges |= TryRewrite(syntax.InKeyword, out var inKeyword); hasChanges |= TryRewrite(syntax.Expression, out var expression); hasChanges |= TryRewrite(syntax.Colon, out var colon); hasChanges |= TryRewrite(syntax.Body, out var body); hasChanges |= TryRewrite(syntax.CloseSquare, out var closeSquare); if (!hasChanges) { return(syntax); } return(new ForSyntax(openSquare, forKeyword, itemVariable, inKeyword, expression, colon, body, closeSquare)); }
void ISyntaxVisitor.VisitForSyntax(ForSyntax syntax) => ReplaceCurrent(syntax, ReplaceForSyntax);