Home | History | Annotate | Line # | Download | only in gdb
      1 /* Split a symbol name.
      2 
      3    Copyright (C) 2022-2024 Free Software Foundation, Inc.
      4 
      5    This file is part of GDB.
      6 
      7    This program is free software; you can redistribute it and/or modify
      8    it under the terms of the GNU General Public License as published by
      9    the Free Software Foundation; either version 3 of the License, or
     10    (at your option) any later version.
     11 
     12    This program is distributed in the hope that it will be useful,
     13    but WITHOUT ANY WARRANTY; without even the implied warranty of
     14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15    GNU General Public License for more details.
     16 
     17    You should have received a copy of the GNU General Public License
     18    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     19 
     20 #ifndef GDB_SPLIT_NAME_H
     21 #define GDB_SPLIT_NAME_H
     22 
     23 #include <string_view>
     24 
     25 /* The available styles of name splitting.  */
     26 
     27 enum class split_style
     28 {
     29   /* No splitting - C style.  */
     30   NONE,
     31   /* C++ style, with "::" and template parameter intelligence.  */
     32   CXX,
     33   /* Split at ".".  Used by Ada, Go, D.  This has a funny name to work
     34      around a bug in Bison 2.3, which is used on macOS.  */
     35   DOT_STYLE,
     36 };
     37 
     38 /* Split NAME into components at module boundaries.  STYLE indicates
     39    which style of splitting to use.  */
     40 
     41 extern std::vector<std::string_view> split_name (const char *name,
     42 						 split_style style);
     43 
     44 #endif /* GDB_SPLIT_NAME_H */
     45