SyntaxFactory Class

Builds JSON nodes, tokens, and trivia.

public static class SyntaxFactory

Remarks

A node built here is not part of any document, so its span starts at zero. Putting it into a tree with SyntaxNodeExtensions.ReplaceNode gives it a real position, without re-reading any text.

Properties

NameDescription
CarriageReturnLineFeedA Windows line break.
LineFeedA Unix line break.
SpaceA single space.
TabA single tab.

CarriageReturnLineFeed

SyntaxFactory.cs

A Windows line break.

public static SyntaxTrivia CarriageReturnLineFeed { get; }

Property value

SyntaxTrivia

A Unix line break.

public static SyntaxTrivia LineFeed { get; }

Property value

SyntaxTrivia

A single space.

public static SyntaxTrivia Space { get; }

Property value

SyntaxTrivia

A single tab.

public static SyntaxTrivia Tab { get; }

Property value

SyntaxTrivia

Methods

NameDescription
AreEquivalent(JsonSyntaxNode?, JsonSyntaxNode?)Determines whether the two nodes have the same structure and text.
BadToken(string)Creates a token holding text the parser could make no sense of.
Comment(string)Creates comment trivia, choosing the kind from how text starts.
EndOfLine(string)
JsonArray(JsonValueSyntax[])
JsonArray(SeparatedSyntaxList<JsonValueSyntax>)
JsonArray(SyntaxToken, SeparatedSyntaxList<JsonValueSyntax>, SyntaxToken)
JsonDocument(JsonValueSyntax)
JsonDocument(SyntaxList<JsonValueSyntax>, SyntaxToken)
JsonLiteral(SyntaxKind)Creates true, false, or null.
JsonLiteral(SyntaxToken)Creates a literal from a keyword token, taking the kind of the node from the keyword.
JsonMember(SyntaxToken, SyntaxToken, JsonValueSyntax)
JsonMember(string, JsonValueSyntax)
JsonNumber(SyntaxToken)
JsonNumber(string)
JsonObject(JsonMemberSyntax[])
JsonObject(SeparatedSyntaxList<JsonMemberSyntax>)
JsonObject(SyntaxToken, SeparatedSyntaxList<JsonMemberSyntax>, SyntaxToken)
JsonSkippedText(SyntaxTokenList)
JsonSkippedText(string)
JsonString(SyntaxToken)
JsonString(string)
List<TNode>()
List<TNode>(IEnumerable<TNode>)
Literal(string)Creates a string token holding value, escaped as JSON requires.
Literal(string, string)Creates a string token spelled text and meaning value.
MissingToken(SyntaxKind)Creates a zero-width token standing in for one the text does not have.
NumberToken(string)Creates a number token written exactly as text.
ParseDocument(string)Parses text and returns its root.
ParseSyntaxTree(string, string?)Parses text into a tree.
ParseValue(string)Parses text and returns its root value, or null when it has none.
SeparatedList<TNode>()
SeparatedList<TNode>(IEnumerable<SyntaxNodeOrToken>)Creates a list from nodes and the separators to put between them.
SeparatedList<TNode>(IEnumerable<TNode>)Creates a list of nodes with a comma between each pair.
SingletonList<TNode>(TNode)
SingletonSeparatedList<TNode>(TNode)
Token(SyntaxKind)Creates a token whose text is fixed by its kind, such as a brace or a keyword.
Token(SyntaxTriviaList, SyntaxKind, SyntaxTriviaList)Creates a token with trivia on either side.
TokenList()
TokenList(SyntaxToken)
TokenList(SyntaxToken[])
TokenList(IEnumerable<SyntaxToken>)
Trivia(SyntaxKind, string)
TriviaList()
TriviaList(SyntaxTrivia)
TriviaList(SyntaxTrivia[])
TriviaList(IEnumerable<SyntaxTrivia>)
Whitespace(string)

AreEquivalent(JsonSyntaxNode?, JsonSyntaxNode?)

SyntaxFactory.cs

Determines whether the two nodes have the same structure and text.

public static bool AreEquivalent(JsonSyntaxNode? oldNode, JsonSyntaxNode? newNode)

Parameters

oldNode JsonSyntaxNode?
newNode JsonSyntaxNode?

Returns

bool

BadToken(string)

SyntaxFactory.cs

Creates a token holding text the parser could make no sense of.

public static SyntaxToken BadToken(string text)

Parameters

text string

Returns

SyntaxToken

Exceptions

ArgumentNullException
text is null.

Comment(string)

SyntaxFactory.cs

Creates comment trivia, choosing the kind from how text starts.

public static SyntaxTrivia Comment(string text)

Parameters

text string

Returns

SyntaxTrivia

Exceptions

ArgumentNullException
text is null.
ArgumentException
text is not a comment.

EndOfLine(string)

SyntaxFactory.cs
public static SyntaxTrivia EndOfLine(string text)

Parameters

text string

Returns

SyntaxTrivia

Exceptions

ArgumentNullException
text is null.

JsonArray overloads

JsonArray(JsonValueSyntax[])

SyntaxFactory.cs
public static JsonArraySyntax JsonArray(params JsonValueSyntax[] values)
Parameters
values JsonValueSyntax[]
Returns

JsonArraySyntax

No documentation is available.

JsonArray(SeparatedSyntaxList<JsonValueSyntax>)

SyntaxFactory.cs
public static JsonArraySyntax JsonArray(SeparatedSyntaxList<JsonValueSyntax> elements)

No documentation is available.

JsonArray(SyntaxToken, SeparatedSyntaxList<JsonValueSyntax>, SyntaxToken)

SyntaxFactory.cs
public static JsonArraySyntax JsonArray(SyntaxToken openBracketToken, SeparatedSyntaxList<JsonValueSyntax> elements, SyntaxToken closeBracketToken)
Parameters
openBracketToken SyntaxToken
elements SeparatedSyntaxList<JsonValueSyntax>
closeBracketToken SyntaxToken
Returns

JsonArraySyntax

No documentation is available.

JsonDocument overloads

JsonDocument(JsonValueSyntax)

SyntaxFactory.cs
public static JsonDocumentSyntax JsonDocument(JsonValueSyntax value)
Parameters
value JsonValueSyntax
Returns

JsonDocumentSyntax

Exceptions
ArgumentNullException
value is null.

JsonDocument(SyntaxList<JsonValueSyntax>, SyntaxToken)

SyntaxFactory.cs
public static JsonDocumentSyntax JsonDocument(SyntaxList<JsonValueSyntax> values, SyntaxToken endOfFileToken)
Parameters
values SyntaxList<JsonValueSyntax>
endOfFileToken SyntaxToken
Returns

JsonDocumentSyntax

No documentation is available.

JsonLiteral overloads

JsonLiteral(SyntaxKind)

SyntaxFactory.cs

Creates true, false, or null.

public static JsonLiteralSyntax JsonLiteral(SyntaxKind kind)
Parameters
kind SyntaxKind
Returns

JsonLiteralSyntax

Exceptions
ArgumentException
kind is not one of the three literal kinds.

JsonLiteral(SyntaxToken)

SyntaxFactory.cs

Creates a literal from a keyword token, taking the kind of the node from the keyword.

public static JsonLiteralSyntax JsonLiteral(SyntaxToken literalToken)
Parameters
literalToken SyntaxToken
Returns

JsonLiteralSyntax

Exceptions
ArgumentException
literalToken is not a literal keyword.

JsonMember overloads

JsonMember(SyntaxToken, SyntaxToken, JsonValueSyntax)

SyntaxFactory.cs
public static JsonMemberSyntax JsonMember(SyntaxToken nameToken, SyntaxToken colonToken, JsonValueSyntax value)
Parameters
nameToken SyntaxToken
colonToken SyntaxToken
value JsonValueSyntax
Returns

JsonMemberSyntax

Exceptions
ArgumentNullException
value is null.

JsonMember(string, JsonValueSyntax)

SyntaxFactory.cs
public static JsonMemberSyntax JsonMember(string name, JsonValueSyntax value)
Parameters
name string
value JsonValueSyntax
Returns

JsonMemberSyntax

Exceptions
ArgumentNullException
name or value is null.

JsonNumber overloads

JsonNumber(SyntaxToken)

SyntaxFactory.cs
public static JsonNumberSyntax JsonNumber(SyntaxToken numberToken)
Parameters
numberToken SyntaxToken
Returns

JsonNumberSyntax

No documentation is available.

JsonNumber(string)

SyntaxFactory.cs
public static JsonNumberSyntax JsonNumber(string text)
Parameters
text string
Returns

JsonNumberSyntax

Exceptions
ArgumentNullException
text is null.

JsonObject overloads

JsonObject(JsonMemberSyntax[])

SyntaxFactory.cs
public static JsonObjectSyntax JsonObject(params JsonMemberSyntax[] members)
Parameters
members JsonMemberSyntax[]
Returns

JsonObjectSyntax

No documentation is available.

JsonObject(SeparatedSyntaxList<JsonMemberSyntax>)

SyntaxFactory.cs
public static JsonObjectSyntax JsonObject(SeparatedSyntaxList<JsonMemberSyntax> members)

No documentation is available.

JsonObject(SyntaxToken, SeparatedSyntaxList<JsonMemberSyntax>, SyntaxToken)

SyntaxFactory.cs
public static JsonObjectSyntax JsonObject(SyntaxToken openBraceToken, SeparatedSyntaxList<JsonMemberSyntax> members, SyntaxToken closeBraceToken)
Parameters
openBraceToken SyntaxToken
members SeparatedSyntaxList<JsonMemberSyntax>
closeBraceToken SyntaxToken
Returns

JsonObjectSyntax

No documentation is available.

JsonSkippedText overloads

JsonSkippedText(SyntaxTokenList)

SyntaxFactory.cs
public static JsonSkippedTextSyntax JsonSkippedText(SyntaxTokenList tokens)
Parameters
tokens SyntaxTokenList
Returns

JsonSkippedTextSyntax

No documentation is available.

JsonSkippedText(string)

SyntaxFactory.cs
public static JsonSkippedTextSyntax JsonSkippedText(string text)
Parameters
text string
Returns

JsonSkippedTextSyntax

Exceptions
ArgumentNullException
text is null.

JsonString overloads

JsonString(SyntaxToken)

SyntaxFactory.cs
public static JsonStringSyntax JsonString(SyntaxToken stringToken)
Parameters
stringToken SyntaxToken
Returns

JsonStringSyntax

No documentation is available.

JsonString(string)

SyntaxFactory.cs
public static JsonStringSyntax JsonString(string value)
Parameters
value string
Returns

JsonStringSyntax

Exceptions
ArgumentNullException
value is null.

List overloads

List<TNode>()

SyntaxFactory.cs
public static SyntaxList<TNode> List<TNode>() where TNode : JsonSyntaxNode
Type parameters
TNode
Returns

SyntaxList<TNode>

No documentation is available.

List<TNode>(IEnumerable<TNode>)

SyntaxFactory.cs
public static SyntaxList<TNode> List<TNode>(IEnumerable<TNode> nodes) where TNode : JsonSyntaxNode
Type parameters
TNode
Parameters
nodes IEnumerable<TNode>
Returns

SyntaxList<TNode>

Exceptions
ArgumentNullException
nodes is null.

Literal overloads

Literal(string)

SyntaxFactory.cs

Creates a string token holding value, escaped as JSON requires.

public static SyntaxToken Literal(string value)
Parameters
value string
Returns

SyntaxToken

Exceptions
ArgumentNullException
value is null.

Literal(string, string)

SyntaxFactory.cs

Creates a string token spelled text and meaning value.

public static SyntaxToken Literal(string text, string value)
Parameters
text string
value string
Returns

SyntaxToken

Exceptions
ArgumentNullException
text or value is null.

MissingToken(SyntaxKind)

SyntaxFactory.cs

Creates a zero-width token standing in for one the text does not have.

public static SyntaxToken MissingToken(SyntaxKind kind)

Parameters

kind SyntaxKind

Returns

SyntaxToken

NumberToken(string)

SyntaxFactory.cs

Creates a number token written exactly as text.

public static SyntaxToken NumberToken(string text)

Parameters

text string

Returns

SyntaxToken

Exceptions

ArgumentNullException
text is null.

ParseDocument(string)

SyntaxFactory.cs

Parses text and returns its root.

public static JsonDocumentSyntax ParseDocument(string text)

Parameters

text string

Returns

JsonDocumentSyntax

Exceptions

ArgumentNullException
text is null.

ParseSyntaxTree(string, string?)

SyntaxFactory.cs

Parses text into a tree.

public static JsonSyntaxTree ParseSyntaxTree(string text, string? path = null)

Parameters

text string
path string?

Returns

JsonSyntaxTree

Exceptions

ArgumentNullException
text is null.

ParseValue(string)

SyntaxFactory.cs

Parses text and returns its root value, or null when it has none.

public static JsonValueSyntax? ParseValue(string text)

Parameters

text string

Returns

JsonValueSyntax?

Exceptions

ArgumentNullException
text is null.

SeparatedList overloads

SeparatedList<TNode>()

SyntaxFactory.cs
public static SeparatedSyntaxList<TNode> SeparatedList<TNode>() where TNode : JsonSyntaxNode
Type parameters
TNode
Returns

SeparatedSyntaxList<TNode>

No documentation is available.

SeparatedList<TNode>(IEnumerable<SyntaxNodeOrToken>)

SyntaxFactory.cs

Creates a list from nodes and the separators to put between them.

public static SeparatedSyntaxList<TNode> SeparatedList<TNode>(IEnumerable<SyntaxNodeOrToken> nodesAndSeparators) where TNode : JsonSyntaxNode
Type parameters
TNode
Parameters
nodesAndSeparators IEnumerable<SyntaxNodeOrToken>
Returns

SeparatedSyntaxList<TNode>

Exceptions
ArgumentNullException
nodesAndSeparators is null.

SeparatedList<TNode>(IEnumerable<TNode>)

SyntaxFactory.cs

Creates a list of nodes with a comma between each pair.

public static SeparatedSyntaxList<TNode> SeparatedList<TNode>(IEnumerable<TNode> nodes) where TNode : JsonSyntaxNode
Type parameters
TNode
Parameters
nodes IEnumerable<TNode>
Returns

SeparatedSyntaxList<TNode>

Exceptions
ArgumentNullException
nodes is null.

SingletonList<TNode>(TNode)

SyntaxFactory.cs
public static SyntaxList<TNode> SingletonList<TNode>(TNode node) where TNode : JsonSyntaxNode

Type parameters

TNode

Parameters

node TNode

Returns

SyntaxList<TNode>

No documentation is available.

SingletonSeparatedList<TNode>(TNode)

SyntaxFactory.cs
public static SeparatedSyntaxList<TNode> SingletonSeparatedList<TNode>(TNode node) where TNode : JsonSyntaxNode

Type parameters

TNode

Parameters

node TNode

Returns

SeparatedSyntaxList<TNode>

No documentation is available.

Token overloads

Token(SyntaxKind)

SyntaxFactory.cs

Creates a token whose text is fixed by its kind, such as a brace or a keyword.

public static SyntaxToken Token(SyntaxKind kind)
Parameters
kind SyntaxKind
Returns

SyntaxToken

Token(SyntaxTriviaList, SyntaxKind, SyntaxTriviaList)

SyntaxFactory.cs

Creates a token with trivia on either side.

public static SyntaxToken Token(SyntaxTriviaList leading, SyntaxKind kind, SyntaxTriviaList trailing)
Parameters
leading SyntaxTriviaList
kind SyntaxKind
trailing SyntaxTriviaList
Returns

SyntaxToken

TokenList overloads

TokenList()

SyntaxFactory.cs
public static SyntaxTokenList TokenList()

No documentation is available.

TokenList(SyntaxToken)

SyntaxFactory.cs
public static SyntaxTokenList TokenList(SyntaxToken token)
Parameters
token SyntaxToken
Returns

SyntaxTokenList

No documentation is available.

TokenList(SyntaxToken[])

SyntaxFactory.cs
public static SyntaxTokenList TokenList(params SyntaxToken[] tokens)
Parameters
tokens SyntaxToken[]
Returns

SyntaxTokenList

No documentation is available.

TokenList(IEnumerable<SyntaxToken>)

SyntaxFactory.cs
public static SyntaxTokenList TokenList(IEnumerable<SyntaxToken> tokens)
Parameters
tokens IEnumerable<SyntaxToken>
Returns

SyntaxTokenList

Exceptions
ArgumentNullException
tokens is null.

Trivia(SyntaxKind, string)

SyntaxFactory.cs
public static SyntaxTrivia Trivia(SyntaxKind kind, string text)

Parameters

kind SyntaxKind
text string

Returns

SyntaxTrivia

Exceptions

ArgumentNullException
text is null.

TriviaList overloads

TriviaList()

SyntaxFactory.cs
public static SyntaxTriviaList TriviaList()

No documentation is available.

TriviaList(SyntaxTrivia)

SyntaxFactory.cs
public static SyntaxTriviaList TriviaList(SyntaxTrivia trivia)
Parameters
trivia SyntaxTrivia
Returns

SyntaxTriviaList

No documentation is available.

TriviaList(SyntaxTrivia[])

SyntaxFactory.cs
public static SyntaxTriviaList TriviaList(params SyntaxTrivia[] trivia)
Parameters
trivia SyntaxTrivia[]
Returns

SyntaxTriviaList

No documentation is available.

TriviaList(IEnumerable<SyntaxTrivia>)

SyntaxFactory.cs
public static SyntaxTriviaList TriviaList(IEnumerable<SyntaxTrivia> trivia)
Parameters
trivia IEnumerable<SyntaxTrivia>
Returns

SyntaxTriviaList

Exceptions
ArgumentNullException
trivia is null.

Whitespace(string)

SyntaxFactory.cs
public static SyntaxTrivia Whitespace(string text)

Parameters

text string

Returns

SyntaxTrivia

Exceptions

ArgumentNullException
text is null.