60 lines
2.0 KiB
C#
60 lines
2.0 KiB
C#
using System.Collections.Generic;
|
|
|
|
namespace Parser.Internal
|
|
{
|
|
internal static class TokenFactory
|
|
{
|
|
public static SyntaxTrivia CreateTrivia(TokenKind kind, string text)
|
|
{
|
|
return new SyntaxTrivia(kind, text);
|
|
}
|
|
|
|
public static SyntaxToken CreateTokenWithTrivia(
|
|
TokenKind kind,
|
|
IReadOnlyList<SyntaxTrivia> leadingTrivia,
|
|
IReadOnlyList<SyntaxTrivia> trailingTrivia)
|
|
{
|
|
return new SyntaxToken.SyntaxTokenWithTrivia(kind, leadingTrivia, trailingTrivia);
|
|
}
|
|
|
|
public static SyntaxToken CreateIdentifier(
|
|
string text,
|
|
IReadOnlyList<SyntaxTrivia> leadingTrivia,
|
|
IReadOnlyList<SyntaxTrivia> trailingTrivia)
|
|
{
|
|
return new SyntaxToken.SyntaxIdentifierWithTrivia(text, leadingTrivia, trailingTrivia);
|
|
}
|
|
|
|
public static SyntaxToken CreateTokenWithValueAndTrivia<T>(
|
|
TokenKind kind,
|
|
string text,
|
|
T value,
|
|
IReadOnlyList<SyntaxTrivia> leadingTrivia,
|
|
IReadOnlyList<SyntaxTrivia> trailingTrivia)
|
|
{
|
|
return new SyntaxToken.SyntaxTokenWithValueAndTrivia<T>(kind, text, value, leadingTrivia, trailingTrivia);
|
|
}
|
|
|
|
public static SyntaxToken CreateUnquotedStringLiteral(
|
|
string text,
|
|
string value,
|
|
IReadOnlyList<SyntaxTrivia> leadingTrivia,
|
|
IReadOnlyList<SyntaxTrivia> trailingTrivia)
|
|
{
|
|
return new SyntaxToken.SyntaxTokenWithValueAndTrivia<string>(
|
|
TokenKind.UnquotedStringLiteralToken,
|
|
text,
|
|
value,
|
|
leadingTrivia,
|
|
trailingTrivia);
|
|
}
|
|
|
|
public static SyntaxToken CreateMissing(
|
|
TokenKind kind,
|
|
IReadOnlyList<SyntaxTrivia> leadingTrivia,
|
|
IReadOnlyList<SyntaxTrivia> trailingTrivia)
|
|
{
|
|
return new SyntaxToken.MissingTokenWithTrivia(kind, leadingTrivia, trailingTrivia);
|
|
}
|
|
}
|
|
} |