RegexSyntaxRewriter Class
Builds a new tree by visiting an old one and returning replacements.
public class RegexSyntaxRewriter : RegexSyntaxVisitor<SyntaxNode?>Remarks
A node whose parts all come back unchanged is returned as it was, so rewriting a tree and changing nothing in it costs nothing and keeps every node.
Example
private sealed class DotToWord : RegexSyntaxRewriter
{
public override SyntaxNode? VisitAnyCharacter(RegexAnyCharacterSyntax node) => SyntaxFactory.ClassEscape('w');
}- Inheritance
RegexSyntaxVisitor<SyntaxNode?>RegexSyntaxRewriter
Constructors
| Name | Description |
|---|---|
| RegexSyntaxRewriter() |
RegexSyntaxRewriter()
public RegexSyntaxRewriter()No documentation is available.
Methods
VisitAlternation(RegexAlternationSyntax)
Syntax.g.cspublic override SyntaxNode? VisitAlternation(RegexAlternationSyntax node)No documentation is available.
VisitAnchor(RegexAnchorSyntax)
Syntax.g.cspublic override SyntaxNode? VisitAnchor(RegexAnchorSyntax node)No documentation is available.
VisitAnyCharacter(RegexAnyCharacterSyntax)
Syntax.g.cspublic override SyntaxNode? VisitAnyCharacter(RegexAnyCharacterSyntax node)No documentation is available.
VisitAtomicGroup(RegexAtomicGroupSyntax)
Syntax.g.cspublic override SyntaxNode? VisitAtomicGroup(RegexAtomicGroupSyntax node)No documentation is available.
VisitBackreference(RegexBackreferenceSyntax)
Syntax.g.cspublic override SyntaxNode? VisitBackreference(RegexBackreferenceSyntax node)No documentation is available.
VisitBacktrackingVerb(RegexBacktrackingVerbSyntax)
Syntax.g.cspublic override SyntaxNode? VisitBacktrackingVerb(RegexBacktrackingVerbSyntax node)No documentation is available.
VisitBalancingGroup(RegexBalancingGroupSyntax)
Syntax.g.cspublic override SyntaxNode? VisitBalancingGroup(RegexBalancingGroupSyntax node)No documentation is available.
VisitBranchResetGroup(RegexBranchResetGroupSyntax)
Syntax.g.cspublic override SyntaxNode? VisitBranchResetGroup(RegexBranchResetGroupSyntax node)No documentation is available.
VisitCallout(RegexCalloutSyntax)
Syntax.g.cspublic override SyntaxNode? VisitCallout(RegexCalloutSyntax node)No documentation is available.
VisitCapturingGroup(RegexCapturingGroupSyntax)
Syntax.g.cspublic override SyntaxNode? VisitCapturingGroup(RegexCapturingGroupSyntax node)No documentation is available.
VisitCharacterClass(RegexCharacterClassSyntax)
Syntax.g.cspublic override SyntaxNode? VisitCharacterClass(RegexCharacterClassSyntax node)No documentation is available.
VisitCharacterClassEscape(RegexCharacterClassEscapeSyntax)
Syntax.g.cspublic override SyntaxNode? VisitCharacterClassEscape(RegexCharacterClassEscapeSyntax node)No documentation is available.
VisitCharacterEscape(RegexCharacterEscapeSyntax)
Syntax.g.cspublic override SyntaxNode? VisitCharacterEscape(RegexCharacterEscapeSyntax node)No documentation is available.
VisitCharacterRange(RegexCharacterRangeSyntax)
Syntax.g.cspublic override SyntaxNode? VisitCharacterRange(RegexCharacterRangeSyntax node)No documentation is available.
VisitClassSetOperation(RegexClassSetOperationSyntax)
Syntax.g.cspublic override SyntaxNode? VisitClassSetOperation(RegexClassSetOperationSyntax node)No documentation is available.
VisitClassStringLiteral(RegexClassStringLiteralSyntax)
Syntax.g.cspublic override SyntaxNode? VisitClassStringLiteral(RegexClassStringLiteralSyntax node)No documentation is available.
VisitClassSubtraction(RegexClassSubtractionSyntax)
Syntax.g.cspublic override SyntaxNode? VisitClassSubtraction(RegexClassSubtractionSyntax node)No documentation is available.
VisitCollatingElement(RegexCollatingElementSyntax)
Syntax.g.cspublic override SyntaxNode? VisitCollatingElement(RegexCollatingElementSyntax node)No documentation is available.
VisitConditional(RegexConditionalSyntax)
Syntax.g.cspublic override SyntaxNode? VisitConditional(RegexConditionalSyntax node)No documentation is available.
VisitConditionalReference(RegexConditionalReferenceSyntax)
Syntax.g.cspublic override SyntaxNode? VisitConditionalReference(RegexConditionalReferenceSyntax node)No documentation is available.
VisitInlineOptions(RegexInlineOptionsSyntax)
Syntax.g.cspublic override SyntaxNode? VisitInlineOptions(RegexInlineOptionsSyntax node)No documentation is available.
VisitList overloads
VisitList(SyntaxTokenList)
RegexSyntaxRewriter.cspublic virtual SyntaxTokenList VisitList(SyntaxTokenList list)No documentation is available.
VisitList(SyntaxTriviaList)
RegexSyntaxRewriter.csRewrites each trivium of a list, dropping the ones a rewrite turned into the default trivium.
public virtual SyntaxTriviaList VisitList(SyntaxTriviaList list)VisitList<TNode>(SeparatedSyntaxList<TNode>)
RegexSyntaxRewriter.csRewrites the elements of a separated list, keeping its separators in place.
public virtual SeparatedSyntaxList<TNode> VisitList<TNode>(SeparatedSyntaxList<TNode> list) where TNode : RegexSyntaxNodeVisitList<TNode>(SyntaxList<TNode>)
RegexSyntaxRewriter.cspublic virtual SyntaxList<TNode> VisitList<TNode>(SyntaxList<TNode> list) where TNode : RegexSyntaxNodeNo documentation is available.
VisitLiteral(RegexLiteralSyntax)
Syntax.g.cspublic override SyntaxNode? VisitLiteral(RegexLiteralSyntax node)No documentation is available.
VisitLookaround(RegexLookaroundSyntax)
Syntax.g.cspublic override SyntaxNode? VisitLookaround(RegexLookaroundSyntax node)No documentation is available.
VisitNamedBackreference(RegexNamedBackreferenceSyntax)
Syntax.g.cspublic override SyntaxNode? VisitNamedBackreference(RegexNamedBackreferenceSyntax node)No documentation is available.
VisitNamedGroup(RegexNamedGroupSyntax)
Syntax.g.cspublic override SyntaxNode? VisitNamedGroup(RegexNamedGroupSyntax node)No documentation is available.
VisitNonCapturingGroup(RegexNonCapturingGroupSyntax)
Syntax.g.cspublic override SyntaxNode? VisitNonCapturingGroup(RegexNonCapturingGroupSyntax node)No documentation is available.
VisitOptionsGroup(RegexOptionsGroupSyntax)
Syntax.g.cspublic override SyntaxNode? VisitOptionsGroup(RegexOptionsGroupSyntax node)No documentation is available.
VisitPattern(RegexPatternSyntax)
Syntax.g.cspublic override SyntaxNode? VisitPattern(RegexPatternSyntax node)No documentation is available.
VisitPosixCharacterClass(RegexPosixCharacterClassSyntax)
Syntax.g.cspublic override SyntaxNode? VisitPosixCharacterClass(RegexPosixCharacterClassSyntax node)No documentation is available.
VisitQuantified(RegexQuantifiedSyntax)
Syntax.g.cspublic override SyntaxNode? VisitQuantified(RegexQuantifiedSyntax node)No documentation is available.
VisitQuotedLiteral(RegexQuotedLiteralSyntax)
Syntax.g.cspublic override SyntaxNode? VisitQuotedLiteral(RegexQuotedLiteralSyntax node)No documentation is available.
VisitRangeQuantifier(RegexRangeQuantifierSyntax)
Syntax.g.cspublic override SyntaxNode? VisitRangeQuantifier(RegexRangeQuantifierSyntax node)No documentation is available.
VisitRecursion(RegexRecursionSyntax)
Syntax.g.cspublic override SyntaxNode? VisitRecursion(RegexRecursionSyntax node)No documentation is available.
VisitSequence(RegexSequenceSyntax)
Syntax.g.cspublic override SyntaxNode? VisitSequence(RegexSequenceSyntax node)No documentation is available.
VisitSimpleQuantifier(RegexSimpleQuantifierSyntax)
Syntax.g.cspublic override SyntaxNode? VisitSimpleQuantifier(RegexSimpleQuantifierSyntax node)No documentation is available.
VisitSkippedText(RegexSkippedTextSyntax)
Syntax.g.cspublic override SyntaxNode? VisitSkippedText(RegexSkippedTextSyntax node)No documentation is available.
VisitToken(SyntaxToken)
RegexSyntaxRewriter.csRewrites a token, putting the trivia around it through RegexSyntaxRewriter.VisitTrivia.
public virtual SyntaxToken VisitToken(SyntaxToken token)Parameters
tokenSyntaxToken
Returns
Remarks
Nothing else reaches a token's trivia, so an override of RegexSyntaxRewriter.VisitTrivia would never be called if this returned the token untouched. A rewrite that returns the default trivium removes it.
VisitTrivia(SyntaxTrivia)
RegexSyntaxRewriter.cspublic virtual SyntaxTrivia VisitTrivia(SyntaxTrivia trivia)No documentation is available.
VisitUnicodeCategory(RegexUnicodeCategorySyntax)
Syntax.g.cspublic override SyntaxNode? VisitUnicodeCategory(RegexUnicodeCategorySyntax node)No documentation is available.