/* %Z%%M% %I% %E% */

/*
 * Copyright (c) 1990, 1991, 1992, 1995 by Wayne C. Gramlich.
 * All rights reserved.
 *
 * Permission to use, copy, modify, distribute, and sell this software
 * for any purpose is hereby granted without fee provided that the above
 * copyright notice and this permission are retained.  The author makes
 * no representations about the suitability of this software for any purpose.
 * It is provided "as is" without express or implied warranty.
 */

/* This file declares the exported routines for the call data abstraction: */

#ifndef CALL_EXPORTS_H
#define CALL_EXPORTS_H

#ifndef CALL_TYPES_H
#include "call_types.h"
#endif

#ifndef EXP_TYPES_H
#include "exp_types.h"
#endif

#ifndef GEN_TYPES_H
#include "gen_types.h"
#endif

#ifndef OBJECT_TYPES_H
#include "object_types.h"
#endif

#ifndef ROUTINE_TYPES_H
#include "routine_types.h"
#endif

#ifndef STR_TYPES_H
#include "str_types.h"
#endif

#ifndef TYPE_TYPES_H
#include "type_types.h"
#endif

#ifndef UNIX_STDIO_H
#include "unix_stdio.h"
#endif

#ifndef VECTOR_TYPES_H
#include "vector_types.h"
#endif

extern Vec(Call) call_assign_convert(Convert, Exp);
extern Call	call_assign_create(Convert, Call, Call);
extern Call	call_binary_create(Convert, Call_type, Call, Call);
extern Call	call_cast_create(Convert, Call, Type_ref);
extern Call	call_error_create(Convert, int, Str);
extern Call	call_exp_constant(Convert, Exp, Type_refs, Vec(Call));
extern Call	call_exp_convert(Convert, Exp, Type_refs, Vec(Call));
extern void	call_gen(Call, int, Gen);
extern Call	call_if_create(Convert, Call, Call, Call);
extern Call	call_integer_create(Convert, int, int);
extern Call	call_invoke_create(Convert, Call, Vec(Call));
extern void	call_list_gen(Vec(Call), int, Gen);
extern void	call_list_print(Vec(Call), Stdio, int, int, Vec(Type_ref));
extern Call	call_multi_create(Convert, Call, Type_refs);
extern Call	call_not_create(Convert, Call);
extern Call	call_object_create(Convert, Object_ref, int);
extern void	call_print(Call, Stdio, int, Vec(Type_ref));
extern Call	call_routine_create(Convert, Routine_ref, int);
extern Call	call_temp_create(Convert, int, Type_ref);
extern Call	call_string_create(Convert, Str, int);
extern Call	call_var_create(Convert, Str, int, Type_refs);
extern Convert	convert_create(Gen);

#endif /* CALL_EXPORTS_H */
