d-lang.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. /* D language support definitions for GDB, the GNU debugger.
  2. Copyright (C) 2005-2022 Free Software Foundation, Inc.
  3. This file is part of GDB.
  4. This program is free software; you can redistribute it and/or modify
  5. it under the terms of the GNU General Public License as published by
  6. the Free Software Foundation; either version 3 of the License, or
  7. (at your option) any later version.
  8. This program is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU General Public License for more details.
  12. You should have received a copy of the GNU General Public License
  13. along with this program. If not, see <http://www.gnu.org/licenses/>. */
  14. #if !defined (D_LANG_H)
  15. #define D_LANG_H 1
  16. #include "symtab.h"
  17. /* Language specific builtin types for D. Any additional types added
  18. should be kept in sync with enum d_primitive_types, where these
  19. types are documented. */
  20. struct builtin_d_type
  21. {
  22. struct type *builtin_void;
  23. struct type *builtin_bool;
  24. struct type *builtin_byte;
  25. struct type *builtin_ubyte;
  26. struct type *builtin_short;
  27. struct type *builtin_ushort;
  28. struct type *builtin_int;
  29. struct type *builtin_uint;
  30. struct type *builtin_long;
  31. struct type *builtin_ulong;
  32. struct type *builtin_cent;
  33. struct type *builtin_ucent;
  34. struct type *builtin_float;
  35. struct type *builtin_double;
  36. struct type *builtin_real;
  37. struct type *builtin_ifloat;
  38. struct type *builtin_idouble;
  39. struct type *builtin_ireal;
  40. struct type *builtin_cfloat;
  41. struct type *builtin_cdouble;
  42. struct type *builtin_creal;
  43. struct type *builtin_char;
  44. struct type *builtin_wchar;
  45. struct type *builtin_dchar;
  46. };
  47. /* Defined in d-exp.y. */
  48. extern int d_parse (struct parser_state *);
  49. /* Defined in d-lang.c */
  50. extern const char *d_main_name (void);
  51. extern gdb::unique_xmalloc_ptr<char> d_demangle (const char *mangled,
  52. int options);
  53. extern const struct builtin_d_type *builtin_d_type (struct gdbarch *);
  54. /* Defined in d-namespace.c */
  55. extern struct block_symbol d_lookup_symbol_nonlocal (const struct language_defn *,
  56. const char *,
  57. const struct block *,
  58. const domain_enum);
  59. extern struct block_symbol d_lookup_nested_symbol (struct type *, const char *,
  60. const struct block *);
  61. /* Implement la_value_print_inner for D. */
  62. extern void d_value_print_inner (struct value *val,
  63. struct ui_file *stream, int recurse,
  64. const struct value_print_options *options);
  65. #endif /* !defined (D_LANG_H) */