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 leadingTrivia, IReadOnlyList trailingTrivia) { return new SyntaxToken.SyntaxTokenWithTrivia(kind, leadingTrivia, trailingTrivia); } public static SyntaxToken CreateIdentifier( string text, IReadOnlyList leadingTrivia, IReadOnlyList trailingTrivia) { return new SyntaxToken.SyntaxIdentifierWithTrivia(text, leadingTrivia, trailingTrivia); } public static SyntaxToken CreateTokenWithValueAndTrivia( TokenKind kind, string text, T value, IReadOnlyList leadingTrivia, IReadOnlyList trailingTrivia) { return new SyntaxToken.SyntaxTokenWithValueAndTrivia(kind, text, value, leadingTrivia, trailingTrivia); } public static SyntaxToken CreateUnquotedStringLiteral( string text, string value, IReadOnlyList leadingTrivia, IReadOnlyList trailingTrivia) { return new SyntaxToken.SyntaxTokenWithValueAndTrivia( TokenKind.UnquotedStringLiteralToken, text, value, leadingTrivia, trailingTrivia); } public static SyntaxToken CreateMissing( TokenKind kind, IReadOnlyList? leadingTrivia, IReadOnlyList? trailingTrivia) { return new SyntaxToken.MissingTokenWithTrivia(kind, leadingTrivia ?? SyntaxToken.s_EmptySyntaxTriviaList, trailingTrivia ?? SyntaxToken.s_EmptySyntaxTriviaList); } } }