1 /* Helper routines for C support in GDB. 2 Copyright (C) 2017-2020 Free Software Foundation, Inc. 3 4 This file is part of GDB. 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 3 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 18 19 #ifndef C_SUPPORT_H 20 #define C_SUPPORT_H 21 22 #include "safe-ctype.h" 23 24 /* Like ISALPHA, but also returns true for the union of all UTF-8 25 multi-byte sequence bytes and non-ASCII characters in 26 extended-ASCII charsets (e.g., Latin1). I.e., returns true if the 27 high bit is set. Note that not all UTF-8 ranges are allowed in C++ 28 identifiers, but we don't need to be pedantic so for simplicity we 29 ignore that here. Plus this avoids the complication of actually 30 knowing what was the right encoding. */ 31 32 static inline bool 33 c_ident_is_alpha (unsigned char ch) 34 { 35 return ISALPHA (ch) || ch >= 0x80; 36 } 37 38 /* Similarly, but Like ISALNUM. */ 39 40 static inline bool 41 c_ident_is_alnum (unsigned char ch) 42 { 43 return ISALNUM (ch) || ch >= 0x80; 44 } 45 46 #endif /* C_SUPPORT_H */ 47