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

NameDescription
RegexSyntaxRewriter()

RegexSyntaxRewriter()

public RegexSyntaxRewriter()

No documentation is available.

Methods

NameDescription
VisitAlternation(RegexAlternationSyntax)
VisitAnchor(RegexAnchorSyntax)
VisitAnyCharacter(RegexAnyCharacterSyntax)
VisitAtomicGroup(RegexAtomicGroupSyntax)
VisitBackreference(RegexBackreferenceSyntax)
VisitBacktrackingVerb(RegexBacktrackingVerbSyntax)
VisitBalancingGroup(RegexBalancingGroupSyntax)
VisitBranchResetGroup(RegexBranchResetGroupSyntax)
VisitCallout(RegexCalloutSyntax)
VisitCapturingGroup(RegexCapturingGroupSyntax)
VisitCharacterClass(RegexCharacterClassSyntax)
VisitCharacterClassEscape(RegexCharacterClassEscapeSyntax)
VisitCharacterEscape(RegexCharacterEscapeSyntax)
VisitCharacterRange(RegexCharacterRangeSyntax)
VisitClassSetOperation(RegexClassSetOperationSyntax)
VisitClassStringLiteral(RegexClassStringLiteralSyntax)
VisitClassSubtraction(RegexClassSubtractionSyntax)
VisitCollatingElement(RegexCollatingElementSyntax)
VisitConditional(RegexConditionalSyntax)
VisitConditionalReference(RegexConditionalReferenceSyntax)
VisitInlineOptions(RegexInlineOptionsSyntax)
VisitList(SyntaxTokenList)
VisitList(SyntaxTriviaList)Rewrites each trivium of a list, dropping the ones a rewrite turned into the default trivium.
VisitList<TNode>(SeparatedSyntaxList<TNode>)Rewrites the elements of a separated list, keeping its separators in place.
VisitList<TNode>(SyntaxList<TNode>)
VisitLiteral(RegexLiteralSyntax)
VisitLookaround(RegexLookaroundSyntax)
VisitNamedBackreference(RegexNamedBackreferenceSyntax)
VisitNamedGroup(RegexNamedGroupSyntax)
VisitNonCapturingGroup(RegexNonCapturingGroupSyntax)
VisitOptionsGroup(RegexOptionsGroupSyntax)
VisitPattern(RegexPatternSyntax)
VisitPosixCharacterClass(RegexPosixCharacterClassSyntax)
VisitQuantified(RegexQuantifiedSyntax)
VisitQuotedLiteral(RegexQuotedLiteralSyntax)
VisitRangeQuantifier(RegexRangeQuantifierSyntax)
VisitRecursion(RegexRecursionSyntax)
VisitSequence(RegexSequenceSyntax)
VisitSimpleQuantifier(RegexSimpleQuantifierSyntax)
VisitSkippedText(RegexSkippedTextSyntax)
VisitToken(SyntaxToken)Rewrites a token, putting the trivia around it through RegexSyntaxRewriter.VisitTrivia.
VisitTrivia(SyntaxTrivia)
VisitUnicodeCategory(RegexUnicodeCategorySyntax)

VisitAlternation(RegexAlternationSyntax)

Syntax.g.cs
public override SyntaxNode? VisitAlternation(RegexAlternationSyntax node)

Parameters

node RegexAlternationSyntax

Returns

SyntaxNode?

No documentation is available.

VisitAnchor(RegexAnchorSyntax)

Syntax.g.cs
public override SyntaxNode? VisitAnchor(RegexAnchorSyntax node)

Parameters

node RegexAnchorSyntax

Returns

SyntaxNode?

No documentation is available.

VisitAnyCharacter(RegexAnyCharacterSyntax)

Syntax.g.cs
public override SyntaxNode? VisitAnyCharacter(RegexAnyCharacterSyntax node)

No documentation is available.

VisitAtomicGroup(RegexAtomicGroupSyntax)

Syntax.g.cs
public override SyntaxNode? VisitAtomicGroup(RegexAtomicGroupSyntax node)

Parameters

node RegexAtomicGroupSyntax

Returns

SyntaxNode?

No documentation is available.

VisitBackreference(RegexBackreferenceSyntax)

Syntax.g.cs
public override SyntaxNode? VisitBackreference(RegexBackreferenceSyntax node)

No documentation is available.

VisitBacktrackingVerb(RegexBacktrackingVerbSyntax)

Syntax.g.cs
public override SyntaxNode? VisitBacktrackingVerb(RegexBacktrackingVerbSyntax node)

No documentation is available.

VisitBalancingGroup(RegexBalancingGroupSyntax)

Syntax.g.cs
public override SyntaxNode? VisitBalancingGroup(RegexBalancingGroupSyntax node)

No documentation is available.

VisitBranchResetGroup(RegexBranchResetGroupSyntax)

Syntax.g.cs
public override SyntaxNode? VisitBranchResetGroup(RegexBranchResetGroupSyntax node)

No documentation is available.

VisitCallout(RegexCalloutSyntax)

Syntax.g.cs
public override SyntaxNode? VisitCallout(RegexCalloutSyntax node)

Parameters

node RegexCalloutSyntax

Returns

SyntaxNode?

No documentation is available.

VisitCapturingGroup(RegexCapturingGroupSyntax)

Syntax.g.cs
public override SyntaxNode? VisitCapturingGroup(RegexCapturingGroupSyntax node)

No documentation is available.

VisitCharacterClass(RegexCharacterClassSyntax)

Syntax.g.cs
public override SyntaxNode? VisitCharacterClass(RegexCharacterClassSyntax node)

No documentation is available.

VisitCharacterClassEscape(RegexCharacterClassEscapeSyntax)

Syntax.g.cs
public override SyntaxNode? VisitCharacterClassEscape(RegexCharacterClassEscapeSyntax node)

No documentation is available.

VisitCharacterEscape(RegexCharacterEscapeSyntax)

Syntax.g.cs
public override SyntaxNode? VisitCharacterEscape(RegexCharacterEscapeSyntax node)

No documentation is available.

VisitCharacterRange(RegexCharacterRangeSyntax)

Syntax.g.cs
public override SyntaxNode? VisitCharacterRange(RegexCharacterRangeSyntax node)

No documentation is available.

VisitClassSetOperation(RegexClassSetOperationSyntax)

Syntax.g.cs
public override SyntaxNode? VisitClassSetOperation(RegexClassSetOperationSyntax node)

No documentation is available.

VisitClassStringLiteral(RegexClassStringLiteralSyntax)

Syntax.g.cs
public override SyntaxNode? VisitClassStringLiteral(RegexClassStringLiteralSyntax node)

No documentation is available.

VisitClassSubtraction(RegexClassSubtractionSyntax)

Syntax.g.cs
public override SyntaxNode? VisitClassSubtraction(RegexClassSubtractionSyntax node)

No documentation is available.

VisitCollatingElement(RegexCollatingElementSyntax)

Syntax.g.cs
public override SyntaxNode? VisitCollatingElement(RegexCollatingElementSyntax node)

No documentation is available.

VisitConditional(RegexConditionalSyntax)

Syntax.g.cs
public override SyntaxNode? VisitConditional(RegexConditionalSyntax node)

Parameters

node RegexConditionalSyntax

Returns

SyntaxNode?

No documentation is available.

VisitConditionalReference(RegexConditionalReferenceSyntax)

Syntax.g.cs
public override SyntaxNode? VisitConditionalReference(RegexConditionalReferenceSyntax node)

No documentation is available.

VisitInlineOptions(RegexInlineOptionsSyntax)

Syntax.g.cs
public override SyntaxNode? VisitInlineOptions(RegexInlineOptionsSyntax node)

No documentation is available.

VisitList overloads

VisitList(SyntaxTokenList)

RegexSyntaxRewriter.cs
public virtual SyntaxTokenList VisitList(SyntaxTokenList list)
Parameters
list SyntaxTokenList
Returns

SyntaxTokenList

No documentation is available.

VisitList(SyntaxTriviaList)

RegexSyntaxRewriter.cs

Rewrites each trivium of a list, dropping the ones a rewrite turned into the default trivium.

public virtual SyntaxTriviaList VisitList(SyntaxTriviaList list)
Parameters
list SyntaxTriviaList
Returns

SyntaxTriviaList

VisitList<TNode>(SeparatedSyntaxList<TNode>)

RegexSyntaxRewriter.cs

Rewrites the elements of a separated list, keeping its separators in place.

public virtual SeparatedSyntaxList<TNode> VisitList<TNode>(SeparatedSyntaxList<TNode> list) where TNode : RegexSyntaxNode
Type parameters
TNode
Parameters
list SeparatedSyntaxList<TNode>
Returns

SeparatedSyntaxList<TNode>

VisitList<TNode>(SyntaxList<TNode>)

RegexSyntaxRewriter.cs
public virtual SyntaxList<TNode> VisitList<TNode>(SyntaxList<TNode> list) where TNode : RegexSyntaxNode
Type parameters
TNode
Parameters
list SyntaxList<TNode>
Returns

SyntaxList<TNode>

No documentation is available.

VisitLiteral(RegexLiteralSyntax)

Syntax.g.cs
public override SyntaxNode? VisitLiteral(RegexLiteralSyntax node)

Parameters

node RegexLiteralSyntax

Returns

SyntaxNode?

No documentation is available.

VisitLookaround(RegexLookaroundSyntax)

Syntax.g.cs
public override SyntaxNode? VisitLookaround(RegexLookaroundSyntax node)

Parameters

node RegexLookaroundSyntax

Returns

SyntaxNode?

No documentation is available.

VisitNamedBackreference(RegexNamedBackreferenceSyntax)

Syntax.g.cs
public override SyntaxNode? VisitNamedBackreference(RegexNamedBackreferenceSyntax node)

No documentation is available.

VisitNamedGroup(RegexNamedGroupSyntax)

Syntax.g.cs
public override SyntaxNode? VisitNamedGroup(RegexNamedGroupSyntax node)

Parameters

node RegexNamedGroupSyntax

Returns

SyntaxNode?

No documentation is available.

VisitNonCapturingGroup(RegexNonCapturingGroupSyntax)

Syntax.g.cs
public override SyntaxNode? VisitNonCapturingGroup(RegexNonCapturingGroupSyntax node)

No documentation is available.

VisitOptionsGroup(RegexOptionsGroupSyntax)

Syntax.g.cs
public override SyntaxNode? VisitOptionsGroup(RegexOptionsGroupSyntax node)

No documentation is available.

VisitPattern(RegexPatternSyntax)

Syntax.g.cs
public override SyntaxNode? VisitPattern(RegexPatternSyntax node)

Parameters

node RegexPatternSyntax

Returns

SyntaxNode?

No documentation is available.

VisitPosixCharacterClass(RegexPosixCharacterClassSyntax)

Syntax.g.cs
public override SyntaxNode? VisitPosixCharacterClass(RegexPosixCharacterClassSyntax node)

No documentation is available.

VisitQuantified(RegexQuantifiedSyntax)

Syntax.g.cs
public override SyntaxNode? VisitQuantified(RegexQuantifiedSyntax node)

Parameters

node RegexQuantifiedSyntax

Returns

SyntaxNode?

No documentation is available.

VisitQuotedLiteral(RegexQuotedLiteralSyntax)

Syntax.g.cs
public override SyntaxNode? VisitQuotedLiteral(RegexQuotedLiteralSyntax node)

No documentation is available.

VisitRangeQuantifier(RegexRangeQuantifierSyntax)

Syntax.g.cs
public override SyntaxNode? VisitRangeQuantifier(RegexRangeQuantifierSyntax node)

No documentation is available.

VisitRecursion(RegexRecursionSyntax)

Syntax.g.cs
public override SyntaxNode? VisitRecursion(RegexRecursionSyntax node)

Parameters

node RegexRecursionSyntax

Returns

SyntaxNode?

No documentation is available.

VisitSequence(RegexSequenceSyntax)

Syntax.g.cs
public override SyntaxNode? VisitSequence(RegexSequenceSyntax node)

Parameters

node RegexSequenceSyntax

Returns

SyntaxNode?

No documentation is available.

VisitSimpleQuantifier(RegexSimpleQuantifierSyntax)

Syntax.g.cs
public override SyntaxNode? VisitSimpleQuantifier(RegexSimpleQuantifierSyntax node)

No documentation is available.

VisitSkippedText(RegexSkippedTextSyntax)

Syntax.g.cs
public override SyntaxNode? VisitSkippedText(RegexSkippedTextSyntax node)

Parameters

node RegexSkippedTextSyntax

Returns

SyntaxNode?

No documentation is available.

VisitToken(SyntaxToken)

RegexSyntaxRewriter.cs

Rewrites a token, putting the trivia around it through RegexSyntaxRewriter.VisitTrivia.

public virtual SyntaxToken VisitToken(SyntaxToken token)

Parameters

token SyntaxToken

Returns

SyntaxToken

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.cs
public virtual SyntaxTrivia VisitTrivia(SyntaxTrivia trivia)

Parameters

trivia SyntaxTrivia

Returns

SyntaxTrivia

No documentation is available.

VisitUnicodeCategory(RegexUnicodeCategorySyntax)

Syntax.g.cs
public override SyntaxNode? VisitUnicodeCategory(RegexUnicodeCategorySyntax node)

No documentation is available.