1*5796c8dcSSimon Schubert /* Pascal language support definitions for GDB, the GNU debugger. 2*5796c8dcSSimon Schubert 3*5796c8dcSSimon Schubert Copyright (C) 2000, 2005, 2006, 2007, 2008, 2009 4*5796c8dcSSimon Schubert Free Software Foundation, Inc. 5*5796c8dcSSimon Schubert 6*5796c8dcSSimon Schubert This file is part of GDB. 7*5796c8dcSSimon Schubert 8*5796c8dcSSimon Schubert This program is free software; you can redistribute it and/or modify 9*5796c8dcSSimon Schubert it under the terms of the GNU General Public License as published by 10*5796c8dcSSimon Schubert the Free Software Foundation; either version 3 of the License, or 11*5796c8dcSSimon Schubert (at your option) any later version. 12*5796c8dcSSimon Schubert 13*5796c8dcSSimon Schubert This program is distributed in the hope that it will be useful, 14*5796c8dcSSimon Schubert but WITHOUT ANY WARRANTY; without even the implied warranty of 15*5796c8dcSSimon Schubert MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16*5796c8dcSSimon Schubert GNU General Public License for more details. 17*5796c8dcSSimon Schubert 18*5796c8dcSSimon Schubert You should have received a copy of the GNU General Public License 19*5796c8dcSSimon Schubert along with this program. If not, see <http://www.gnu.org/licenses/>. */ 20*5796c8dcSSimon Schubert 21*5796c8dcSSimon Schubert /* This file is derived from c-lang.h */ 22*5796c8dcSSimon Schubert 23*5796c8dcSSimon Schubert struct value; 24*5796c8dcSSimon Schubert 25*5796c8dcSSimon Schubert /* Defined in p-lang.c */ 26*5796c8dcSSimon Schubert extern const char *pascal_main_name (void); 27*5796c8dcSSimon Schubert 28*5796c8dcSSimon Schubert extern int pascal_parse (void); /* Defined in p-exp.y */ 29*5796c8dcSSimon Schubert 30*5796c8dcSSimon Schubert extern void pascal_error (char *); /* Defined in p-exp.y */ 31*5796c8dcSSimon Schubert 32*5796c8dcSSimon Schubert /* Defined in p-typeprint.c */ 33*5796c8dcSSimon Schubert extern void pascal_print_type (struct type *, char *, struct ui_file *, int, int); 34*5796c8dcSSimon Schubert 35*5796c8dcSSimon Schubert extern void pascal_print_typedef (struct type *, struct symbol *, 36*5796c8dcSSimon Schubert struct ui_file *); 37*5796c8dcSSimon Schubert 38*5796c8dcSSimon Schubert extern int pascal_val_print (struct type *, const gdb_byte *, int, 39*5796c8dcSSimon Schubert CORE_ADDR, struct ui_file *, int, 40*5796c8dcSSimon Schubert const struct value_print_options *); 41*5796c8dcSSimon Schubert 42*5796c8dcSSimon Schubert extern int pascal_value_print (struct value *, struct ui_file *, 43*5796c8dcSSimon Schubert const struct value_print_options *); 44*5796c8dcSSimon Schubert 45*5796c8dcSSimon Schubert extern void pascal_type_print_method_args (char *, char *, 46*5796c8dcSSimon Schubert struct ui_file *); 47*5796c8dcSSimon Schubert 48*5796c8dcSSimon Schubert /* These are in p-lang.c: */ 49*5796c8dcSSimon Schubert 50*5796c8dcSSimon Schubert extern int 51*5796c8dcSSimon Schubert is_pascal_string_type (struct type *, int *, int *, int *, 52*5796c8dcSSimon Schubert struct type **, char **); 53*5796c8dcSSimon Schubert 54*5796c8dcSSimon Schubert extern void pascal_printchar (int, struct type *, struct ui_file *); 55*5796c8dcSSimon Schubert 56*5796c8dcSSimon Schubert extern void pascal_printstr (struct ui_file *, struct type *, const gdb_byte *, 57*5796c8dcSSimon Schubert unsigned int, int, 58*5796c8dcSSimon Schubert const struct value_print_options *); 59*5796c8dcSSimon Schubert 60*5796c8dcSSimon Schubert extern struct type **const (pascal_builtin_types[]); 61*5796c8dcSSimon Schubert 62*5796c8dcSSimon Schubert /* These are in p-typeprint.c: */ 63*5796c8dcSSimon Schubert 64*5796c8dcSSimon Schubert extern void 65*5796c8dcSSimon Schubert pascal_type_print_base (struct type *, struct ui_file *, int, int); 66*5796c8dcSSimon Schubert 67*5796c8dcSSimon Schubert extern void 68*5796c8dcSSimon Schubert pascal_type_print_varspec_prefix (struct type *, struct ui_file *, int, int); 69*5796c8dcSSimon Schubert 70*5796c8dcSSimon Schubert extern void pascal_object_print_value_fields (struct type *, const gdb_byte *, 71*5796c8dcSSimon Schubert CORE_ADDR, struct ui_file *, 72*5796c8dcSSimon Schubert int, 73*5796c8dcSSimon Schubert const struct value_print_options *, 74*5796c8dcSSimon Schubert struct type **, int); 75*5796c8dcSSimon Schubert 76*5796c8dcSSimon Schubert extern int pascal_object_is_vtbl_ptr_type (struct type *); 77*5796c8dcSSimon Schubert 78*5796c8dcSSimon Schubert extern int pascal_object_is_vtbl_member (struct type *); 79