/*Interface to public routines in objects.c
  Copyright (C) 1997-2002 Free Software Foundation, Inc.

  Authors: Peter Gerwinski <peter@gerwinski.de>
           Frank Heckenbach <frank@pascal.gnu.de>

  This file is part of GNU Pascal.

  GNU Pascal is free software; you can redistribute it and/or
  modify it under the terms of the GNU General Public License as
  published by the Free Software Foundation; either version 2, or
  (at your option) any later version.

  GNU Pascal is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with GNU Pascal; see the file COPYING. If not, write to the
  Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
  02111-1307, USA. */

#ifndef _GPC_OBJECTS_H_
#define _GPC_OBJECTS_H_

/* Include files needed by this one. */


/* Structure definitions. */


/* Global objects accessed by users of this module. */


/* Declare functions with prototypes. */

extern tree simple_get_field PARAMS ((register tree, tree, char *));
extern tree call_method PARAMS ((tree, tree));
extern tree get_method_name PARAMS ((tree, tree));
extern void push_self_parameter PARAMS ((tree, int));
extern void check_object_pointer PARAMS ((void));
extern void store_object_name PARAMS ((tree));
extern void inherit PARAMS ((tree, tree));
extern void add_vmt_field PARAMS ((tree));
extern void check_method_parameters PARAMS ((tree));
extern tree get_vmt PARAMS ((tree));
extern void construct_vmt PARAMS ((tree, int));
extern tree mark_virtual_method PARAMS ((tree));
extern tree mark_abstract_method PARAMS ((tree));

#endif /* _GPC_OBJECTS_H_ */
