gdb/p-lang.h - gdb

  1. /* Pascal language support definitions for GDB, the GNU debugger.

  2.    Copyright (C) 2000-2015 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. /* This file is derived from c-lang.h */

  15. struct value;
  16. struct parser_state;

  17. /* Defined in p-lang.c */
  18. extern const char *pascal_main_name (void);

  19. extern int pascal_parse (struct parser_state *); /* Defined in p-exp.y */

  20. extern void pascal_error (char *);        /* Defined in p-exp.y */

  21. /* Defined in p-typeprint.c */
  22. extern void pascal_print_type (struct type *, const char *, struct ui_file *,
  23.                                int, int, const struct type_print_options *);

  24. extern void pascal_print_typedef (struct type *, struct symbol *,
  25.                                   struct ui_file *);

  26. extern void pascal_val_print (struct type *, const gdb_byte *, int,
  27.                               CORE_ADDR, struct ui_file *, int,
  28.                               const struct value *,
  29.                               const struct value_print_options *);

  30. extern void pascal_value_print (struct value *, struct ui_file *,
  31.                                 const struct value_print_options *);

  32. extern void pascal_type_print_method_args (const char *, const char *,
  33.                                            struct ui_file *);

  34. /* These are in p-lang.c: */

  35. extern int
  36.   is_pascal_string_type (struct type *, int *, int *, int *,
  37.                          struct type **, const char **);

  38. extern void pascal_printchar (int, struct type *, struct ui_file *);

  39. extern void pascal_printstr (struct ui_file *, struct type *, const gdb_byte *,
  40.                              unsigned int, const char *, int,
  41.                              const struct value_print_options *);

  42. extern struct type **const (pascal_builtin_types[]);

  43. /* These are in p-typeprint.c: */

  44. extern void
  45.   pascal_type_print_base (struct type *, struct ui_file *, int, int,
  46.                           const struct type_print_options *);

  47. extern void
  48.   pascal_type_print_varspec_prefix (struct type *, struct ui_file *, int, int,
  49.                                     const struct type_print_options *);

  50. extern void pascal_object_print_value_fields (struct type *, const gdb_byte *,
  51.                                               int,
  52.                                               CORE_ADDR, struct ui_file *,
  53.                                               int,
  54.                                               const struct value *,
  55.                                               const struct value_print_options *,
  56.                                               struct type **, int);

  57. extern int pascal_object_is_vtbl_ptr_type (struct type *);

  58. extern int pascal_object_is_vtbl_member (struct type *);