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