198944Sobrien/* Pascal language support definitions for GDB, the GNU debugger.
298944Sobrien   Copyright 2000 Free Software Foundation, Inc.
398944Sobrien
498944Sobrien   This file is part of GDB.
598944Sobrien
698944Sobrien   This program is free software; you can redistribute it and/or modify
798944Sobrien   it under the terms of the GNU General Public License as published by
898944Sobrien   the Free Software Foundation; either version 2 of the License, or
998944Sobrien   (at your option) any later version.
1098944Sobrien
1198944Sobrien   This program is distributed in the hope that it will be useful,
1298944Sobrien   but WITHOUT ANY WARRANTY; without even the implied warranty of
1398944Sobrien   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1498944Sobrien   GNU General Public License for more details.
1598944Sobrien
1698944Sobrien   You should have received a copy of the GNU General Public License
1798944Sobrien   along with this program; if not, write to the Free Software
1898944Sobrien   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
1998944Sobrien
2098944Sobrien/* This file is derived from c-lang.h */
2198944Sobrien
2298944Sobrienstruct value;
2398944Sobrien
2498944Sobrienextern int pascal_parse (void);	/* Defined in p-exp.y */
2598944Sobrien
2698944Sobrienextern void pascal_error (char *);	/* Defined in p-exp.y */
2798944Sobrien
2898944Sobrien/* Defined in p-typeprint.c */
2998944Sobrienextern void pascal_print_type (struct type *, char *, struct ui_file *, int, int);
3098944Sobrien
3198944Sobrienextern int pascal_val_print (struct type *, char *, int, CORE_ADDR, struct ui_file *, int, int,
3298944Sobrien			     int, enum val_prettyprint);
3398944Sobrien
3498944Sobrienextern int pascal_value_print (struct value *, struct ui_file *, int, enum val_prettyprint);
3598944Sobrien
3698944Sobrienextern void pascal_type_print_method_args (char *, char *,
3798944Sobrien					   struct ui_file *);
3898944Sobrien
3998944Sobrien/* These are in p-lang.c: */
4098944Sobrien
41130803Smarcelextern int
42130803Smarcel  is_pascal_string_type (struct type *, int *, int *, int *, int *, char **);
4398944Sobrien
4498944Sobrienextern void pascal_printchar (int, struct ui_file *);
4598944Sobrien
4698944Sobrienextern void pascal_printstr (struct ui_file *, char *, unsigned int, int, int);
4798944Sobrien
4898944Sobrienextern struct type *pascal_create_fundamental_type (struct objfile *, int);
4998944Sobrien
5098944Sobrienextern struct type **const (pascal_builtin_types[]);
5198944Sobrien
5298944Sobrien/* These are in p-typeprint.c: */
5398944Sobrien
5498944Sobrienextern void
5598944Sobrien  pascal_type_print_base (struct type *, struct ui_file *, int, int);
5698944Sobrien
5798944Sobrienextern void
5898944Sobrien  pascal_type_print_varspec_prefix (struct type *, struct ui_file *, int, int);
5998944Sobrien
6098944Sobrien/* These are in cp-valprint.c */
6198944Sobrien
6298944Sobrienextern int vtblprint;		/* Controls printing of vtbl's */
6398944Sobrien
6498944Sobrienextern int static_field_print;
6598944Sobrien
6698944Sobrienextern void pascal_object_print_class_member (char *, struct type *, struct ui_file *, char *);
6798944Sobrien
6898944Sobrienextern void pascal_object_print_class_method (char *, struct type *, struct ui_file *);
6998944Sobrien
7098944Sobrienextern void pascal_object_print_value_fields (struct type *, char *, CORE_ADDR,
7198944Sobrien			   struct ui_file *, int, int, enum val_prettyprint,
7298944Sobrien					      struct type **, int);
7398944Sobrien
7498944Sobrienextern int pascal_object_is_vtbl_ptr_type (struct type *);
7598944Sobrien
7698944Sobrienextern int pascal_object_is_vtbl_member (struct type *);
77