1e93f7393Sniklas /* C language support definitions for GDB, the GNU debugger. 2b725ae77Skettenis Copyright 1992, 1994, 1995, 1996, 1997, 1998, 2000, 2002 3b725ae77Skettenis Free Software Foundation, Inc. 4e93f7393Sniklas 5e93f7393Sniklas This file is part of GDB. 6e93f7393Sniklas 7e93f7393Sniklas This program is free software; you can redistribute it and/or modify 8e93f7393Sniklas it under the terms of the GNU General Public License as published by 9e93f7393Sniklas the Free Software Foundation; either version 2 of the License, or 10e93f7393Sniklas (at your option) any later version. 11e93f7393Sniklas 12e93f7393Sniklas This program is distributed in the hope that it will be useful, 13e93f7393Sniklas but WITHOUT ANY WARRANTY; without even the implied warranty of 14e93f7393Sniklas MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15e93f7393Sniklas GNU General Public License for more details. 16e93f7393Sniklas 17e93f7393Sniklas You should have received a copy of the GNU General Public License 18e93f7393Sniklas along with this program; if not, write to the Free Software 19b725ae77Skettenis Foundation, Inc., 59 Temple Place - Suite 330, 20b725ae77Skettenis Boston, MA 02111-1307, USA. */ 21e93f7393Sniklas 22e93f7393Sniklas 23b725ae77Skettenis #if !defined (C_LANG_H) 24b725ae77Skettenis #define C_LANG_H 1 25e93f7393Sniklas 26b725ae77Skettenis struct ui_file; 27*63addd46Skettenis struct language_arch_info; 28e93f7393Sniklas 29b725ae77Skettenis #include "value.h" 30b725ae77Skettenis #include "macroexp.h" 31e93f7393Sniklas 32e93f7393Sniklas 33b725ae77Skettenis extern int c_parse (void); /* Defined in c-exp.y */ 34b725ae77Skettenis 35b725ae77Skettenis extern void c_error (char *); /* Defined in c-exp.y */ 36b725ae77Skettenis 37b725ae77Skettenis /* Defined in c-typeprint.c */ 38b725ae77Skettenis extern void c_print_type (struct type *, char *, struct ui_file *, int, 39b725ae77Skettenis int); 40b725ae77Skettenis 41b725ae77Skettenis extern int c_val_print (struct type *, char *, int, CORE_ADDR, 42b725ae77Skettenis struct ui_file *, int, int, int, 43b725ae77Skettenis enum val_prettyprint); 44b725ae77Skettenis 45b725ae77Skettenis extern int c_value_print (struct value *, struct ui_file *, int, 46b725ae77Skettenis enum val_prettyprint); 47e93f7393Sniklas 48e93f7393Sniklas /* These are in c-lang.c: */ 49e93f7393Sniklas 50b725ae77Skettenis extern void c_printchar (int, struct ui_file *); 51e93f7393Sniklas 52b725ae77Skettenis extern void c_printstr (struct ui_file * stream, char *string, 53b725ae77Skettenis unsigned int length, int width, 54b725ae77Skettenis int force_ellipses); 55e93f7393Sniklas 56b725ae77Skettenis extern void scan_macro_expansion (char *expansion); 57b725ae77Skettenis extern int scanning_macro_expansion (void); 58b725ae77Skettenis extern void finished_macro_expansion (void); 59e93f7393Sniklas 60b725ae77Skettenis extern macro_lookup_ftype *expression_macro_lookup_func; 61b725ae77Skettenis extern void *expression_macro_lookup_baton; 62b725ae77Skettenis 63b725ae77Skettenis extern struct type *c_create_fundamental_type (struct objfile *, int); 64b725ae77Skettenis 65*63addd46Skettenis extern void c_language_arch_info (struct gdbarch *gdbarch, 66*63addd46Skettenis struct language_arch_info *lai); 67e93f7393Sniklas 68e93f7393Sniklas /* These are in c-typeprint.c: */ 69e93f7393Sniklas 70b725ae77Skettenis extern void c_type_print_base (struct type *, struct ui_file *, int, int); 71e93f7393Sniklas 72e93f7393Sniklas /* These are in cp-valprint.c */ 73e93f7393Sniklas 74e93f7393Sniklas extern int vtblprint; /* Controls printing of vtbl's */ 75e93f7393Sniklas 76b725ae77Skettenis extern int static_field_print; 77e93f7393Sniklas 78b725ae77Skettenis extern void cp_print_class_member (char *, struct type *, struct ui_file *, 79b725ae77Skettenis char *); 80e93f7393Sniklas 81b725ae77Skettenis extern void cp_print_class_method (char *, struct type *, struct ui_file *); 82e93f7393Sniklas 83b725ae77Skettenis extern void cp_print_value_fields (struct type *, struct type *, char *, 84b725ae77Skettenis int, CORE_ADDR, struct ui_file *, int, 85b725ae77Skettenis int, enum val_prettyprint, 86b725ae77Skettenis struct type **, int); 87e93f7393Sniklas 88b725ae77Skettenis extern int cp_is_vtbl_ptr_type (struct type *); 89b725ae77Skettenis 90b725ae77Skettenis extern int cp_is_vtbl_member (struct type *); 91b725ae77Skettenis 92b725ae77Skettenis 93b725ae77Skettenis #endif /* !defined (C_LANG_H) */ 94