/* %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 defines the external routines for manipulationg exp objects: */

#ifndef EXP_EXPORTS_H
#define EXP_EXPORTS_H

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

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

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

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

#ifndef PARSER_TYPES_H
#include "parser_types.h"
#endif

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

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

extern Exp		exp_assign_parse(Parser, int);
extern Vec(Exp)		exp_list_parse(Parser, int);
extern void		exp_list_print(Vec(Exp), Stdio, Vec(Type_ref));
extern Type_refs	exp_list_types_extract(Vec(Exp), Gen);
extern Exp		exp_parse(Parser);
extern void		exp_print(Exp, Stdio, Vec(Type_ref));

#endif /* EXP_EXPORTS_H */
