/// <summary>
        /// Creates a token from the specified token kind.
        /// </summary>
        /// <param name="kind">The token kind</param>
        /// <returns>The token</returns>
        public static SyntaxToken Token(TokenKind kind)
        {
            if (kind == TokenKind.NewLine || !kind.IsToken())
            {
                throw new ArgumentOutOfRangeException($"The token kind `{kind}` is not supported for a plain token without a predefined value");
            }
            var text = kind.ToText();

            Debug.Assert(text != null);
            return(new SyntaxToken(kind, text));
        }