/* compile.h: -*- C -*-  DESCRIPTIVE TEXT. */

/*  Copyright (c) 1996 Universal Access Inc.
    Author: E. B. Gamble Jr. (ebg@ai.mit.edu) Thu Nov  7 15:19:12 1996.  */

#if !defined (_BC_COMPILE_H_)
#define _BC_COMPILE_H_ 1

#include "object.h"
#include "core.h"
#include "parse.h"
#include "xmalloc.h"

extern bc_parse_t    bc_parse    (bc_string_t string);
extern bc_core_t     bc_expand   (bc_parse_t parse, bc_package_t env);
extern bc_core_t     bc_optimize (bc_core_t core);
extern bc_function_t bc_generate (bc_core_t core, bc_string_t name);
extern bc_function_t bc_compile  (bc_string_t);

extern void fail (void);

/* extern void initialize_compiler_functions (Package *package); */

extern void bc_function_disassemble (bc_function_t function, FILE *file);

extern bc_object_t bc_welcome_to_the_machine (bc_function_t function);

#endif /* ! _BC_COMPILE_H_ */


