Vixen
02b45cc4
csharp
public abstract class RavenSyntaxNode

Base of every Raven node. Adds the two things the shared tree cannot supply: Raven's SyntaxKind and double dispatch over Raven's visitor.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

A generated Accept body calls visitor.VisitIdentifierName(this), so its parameter has to be the language's own visitor type — which is why SyntaxNode declares no Accept and this class does. It is the same split Roslyn makes between SyntaxNode and CSharpSyntaxNode.

SyntaxToken and SyntaxListNode do not derive from this: both are shared, and both dispatched to a fixed method rather than a per-kind one. Visit routes them.

Fields and properties (1)

  • public SyntaxKind Kind

    This node's kind. The shared tree stores it as RawKind.

Methods (2)

  • public abstract void Accept(SyntaxVisitor visitor)

    Dispatches to the visitor's method for this node's type.

  • public abstract TResult? Accept<TResult>(SyntaxVisitor<TResult> visitor)

    Dispatches to the visitor's method for this node's type, returning its result.

Used by (43, showing 40)

  • AccessorDeclarationSyntaxVixen.Raven
  • AccessorListSyntaxVixen.Raven
  • ArgumentSyntaxVixen.Raven
  • ArrayRankSpecifierSyntaxVixen.Raven
  • ArrowExpressionClauseSyntaxVixen.Raven
  • AttributeArgumentListSyntaxVixen.Raven
  • AttributeArgumentSyntaxVixen.Raven
  • AttributeListSyntaxVixen.Raven
  • AttributeSyntaxVixen.Raven
  • BaseArgumentListSyntaxVixen.Raven
  • BaseListSyntaxVixen.Raven
  • BaseTypeSyntaxVixen.Raven
  • BinderVixen.Raven
  • CollectionElementSyntaxVixen.Raven
  • CompilationUnitSyntaxVixen.Raven
  • DeclarationFactsVixen.Raven
  • ElseClauseSyntaxVixen.Raven
  • EqualsValueClauseSyntaxVixen.Raven
  • ExpressionSyntaxVixen.Raven
  • ImportDirectiveSyntaxVixen.Raven
  • LiteralExpressionSyntaxVixen.Raven
  • LiteralParserVixen.Raven
  • MemberDeclarationSyntaxVixen.Raven
  • NameColonSyntaxVixen.Raven
  • PackageDirectiveSyntaxVixen.Raven
  • ParameterListSyntaxVixen.Raven
  • ParameterSyntaxVixen.Raven
  • PostfixUnaryExpressionSyntaxVixen.Raven
  • PrefixUnaryExpressionSyntaxVixen.Raven
  • SemanticModelVixen.Raven
  • SourcePropertySymbolVixen.Raven
  • StatementSyntaxVixen.Raven
  • SwitchLabelSyntaxVixen.Raven
  • SwitchSectionSyntaxVixen.Raven
  • SyntaxVisitorVixen.Raven
  • SyntaxVisitorVixen.Raven
  • TupleElementSyntaxVixen.Raven
  • TypeArgumentListSyntaxVixen.Raven
  • TypeParameterConstraintClauseSyntaxVixen.Raven
  • TypeParameterConstraintSyntaxVixen.Raven