1// -*- C++ -*-
2//===----------------------------------------------------------------------===//
3//
4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5// See https://llvm.org/LICENSE.txt for license information.
6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7//
8//===----------------------------------------------------------------------===//
9
10#ifndef _LIBCPP_CCTYPE
11#define _LIBCPP_CCTYPE
12
13/*
14    cctype synopsis
15
16namespace std
17{
18
19int isalnum(int c);
20int isalpha(int c);
21int isblank(int c);  // C99
22int iscntrl(int c);
23int isdigit(int c);
24int isgraph(int c);
25int islower(int c);
26int isprint(int c);
27int ispunct(int c);
28int isspace(int c);
29int isupper(int c);
30int isxdigit(int c);
31int tolower(int c);
32int toupper(int c);
33
34}  // std
35*/
36
37#include <__assert> // all public C++ headers provide the assertion handler
38#include <__config>
39
40#include <ctype.h>
41
42#ifndef _LIBCPP_CTYPE_H
43#   error <cctype> tried including <ctype.h> but didn't find libc++'s <ctype.h> header. \
44          This usually means that your header search paths are not configured properly.  \
45          The header search paths should contain the C++ Standard Library headers before \
46          any C Standard Library.
47#endif
48
49#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
50#  pragma GCC system_header
51#endif
52
53_LIBCPP_BEGIN_NAMESPACE_STD
54
55#ifdef isalnum
56#undef isalnum
57#endif
58
59#ifdef isalpha
60#undef isalpha
61#endif
62
63#ifdef isblank
64#undef isblank
65#endif
66
67#ifdef iscntrl
68#undef iscntrl
69#endif
70
71#ifdef isdigit
72#undef isdigit
73#endif
74
75#ifdef isgraph
76#undef isgraph
77#endif
78
79#ifdef islower
80#undef islower
81#endif
82
83#ifdef isprint
84#undef isprint
85#endif
86
87#ifdef ispunct
88#undef ispunct
89#endif
90
91#ifdef isspace
92#undef isspace
93#endif
94
95#ifdef isupper
96#undef isupper
97#endif
98
99#ifdef isxdigit
100#undef isxdigit
101#endif
102
103#ifdef tolower
104#undef tolower
105#endif
106
107#ifdef toupper
108#undef toupper
109#endif
110
111
112using ::isalnum _LIBCPP_USING_IF_EXISTS;
113using ::isalpha _LIBCPP_USING_IF_EXISTS;
114using ::isblank _LIBCPP_USING_IF_EXISTS;
115using ::iscntrl _LIBCPP_USING_IF_EXISTS;
116using ::isdigit _LIBCPP_USING_IF_EXISTS;
117using ::isgraph _LIBCPP_USING_IF_EXISTS;
118using ::islower _LIBCPP_USING_IF_EXISTS;
119using ::isprint _LIBCPP_USING_IF_EXISTS;
120using ::ispunct _LIBCPP_USING_IF_EXISTS;
121using ::isspace _LIBCPP_USING_IF_EXISTS;
122using ::isupper _LIBCPP_USING_IF_EXISTS;
123using ::isxdigit _LIBCPP_USING_IF_EXISTS;
124using ::tolower _LIBCPP_USING_IF_EXISTS;
125using ::toupper _LIBCPP_USING_IF_EXISTS;
126
127_LIBCPP_END_NAMESPACE_STD
128
129#endif // _LIBCPP_CCTYPE
130