119370Spst/* C language support definitions for GDB, the GNU debugger. 298944Sobrien Copyright 1992, 1994, 1995, 1996, 1997, 1998, 2000, 2002 398944Sobrien Free Software Foundation, Inc. 419370Spst 598944Sobrien This file is part of GDB. 619370Spst 798944Sobrien This program is free software; you can redistribute it and/or modify 898944Sobrien it under the terms of the GNU General Public License as published by 998944Sobrien the Free Software Foundation; either version 2 of the License, or 1098944Sobrien (at your option) any later version. 1119370Spst 1298944Sobrien This program is distributed in the hope that it will be useful, 1398944Sobrien but WITHOUT ANY WARRANTY; without even the implied warranty of 1498944Sobrien MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1598944Sobrien GNU General Public License for more details. 1619370Spst 1798944Sobrien You should have received a copy of the GNU General Public License 1898944Sobrien along with this program; if not, write to the Free Software 1998944Sobrien Foundation, Inc., 59 Temple Place - Suite 330, 2098944Sobrien Boston, MA 02111-1307, USA. */ 2119370Spst 2219370Spst 2346283Sdfr#if !defined (C_LANG_H) 2446283Sdfr#define C_LANG_H 1 2546283Sdfr 26130803Smarcelstruct ui_file; 27130803Smarcel 2846283Sdfr#include "value.h" 29130803Smarcel#include "macroexp.h" 3046283Sdfr 3146283Sdfr 3298944Sobrienextern int c_parse (void); /* Defined in c-exp.y */ 3319370Spst 3498944Sobrienextern void c_error (char *); /* Defined in c-exp.y */ 3519370Spst 3698944Sobrien/* Defined in c-typeprint.c */ 3798944Sobrienextern void c_print_type (struct type *, char *, struct ui_file *, int, 3898944Sobrien int); 3919370Spst 4098944Sobrienextern int c_val_print (struct type *, char *, int, CORE_ADDR, 4198944Sobrien struct ui_file *, int, int, int, 4298944Sobrien enum val_prettyprint); 4319370Spst 4498944Sobrienextern int c_value_print (struct value *, struct ui_file *, int, 4598944Sobrien enum val_prettyprint); 4619370Spst 4719370Spst/* These are in c-lang.c: */ 4819370Spst 4998944Sobrienextern void c_printchar (int, struct ui_file *); 5019370Spst 5198944Sobrienextern void c_printstr (struct ui_file * stream, char *string, 5298944Sobrien unsigned int length, int width, 5398944Sobrien int force_ellipses); 5419370Spst 55130803Smarcelextern void scan_macro_expansion (char *expansion); 56130803Smarcelextern int scanning_macro_expansion (void); 57130803Smarcelextern void finished_macro_expansion (void); 58130803Smarcel 59130803Smarcelextern macro_lookup_ftype *expression_macro_lookup_func; 60130803Smarcelextern void *expression_macro_lookup_baton; 61130803Smarcel 6298944Sobrienextern struct type *c_create_fundamental_type (struct objfile *, int); 6319370Spst 6498944Sobrienextern struct type **const (c_builtin_types[]); 6519370Spst 6619370Spst/* These are in c-typeprint.c: */ 6719370Spst 6898944Sobrienextern void c_type_print_base (struct type *, struct ui_file *, int, int); 6919370Spst 7019370Spst/* These are in cp-valprint.c */ 7119370Spst 7219370Spstextern int vtblprint; /* Controls printing of vtbl's */ 7319370Spst 7446283Sdfrextern int static_field_print; 7546283Sdfr 7698944Sobrienextern void cp_print_class_member (char *, struct type *, struct ui_file *, 7798944Sobrien char *); 7819370Spst 7998944Sobrienextern void cp_print_class_method (char *, struct type *, struct ui_file *); 8019370Spst 8198944Sobrienextern void cp_print_value_fields (struct type *, struct type *, char *, 8298944Sobrien int, CORE_ADDR, struct ui_file *, int, 8398944Sobrien int, enum val_prettyprint, 8498944Sobrien struct type **, int); 8519370Spst 8698944Sobrienextern int cp_is_vtbl_ptr_type (struct type *); 8719370Spst 8898944Sobrienextern int cp_is_vtbl_member (struct type *); 8946283Sdfr 9046283Sdfr 9198944Sobrien#endif /* !defined (C_LANG_H) */ 92