NAME ^

compilers/imcc/imc.c

DESCRIPTION ^

Main entry point and top level of IMCC compiler.

Moved all register allocation and spill code to reg_alloc.c

Functions ^

PARROT_API void imc_compile_all_units(PARROT_INTERP)

TODO: Not yet documented!!!

PARROT_API void imc_compile_unit(PARROT_INTERP, NOTNULL(IMC_Unit *unit))

imc_compile_unit is the main loop of the IMC compiler for each unit. It operates on a single compilation unit at a time.

PARROT_API void imc_cleanup(PARROT_INTERP, NULLOK(void *yyscanner))

Any activity required to cleanup the compiler state and be ready for a new compiler invocation goes here.

PARROT_CANNOT_RETURN_NULL static IMC_Unit *imc_new_unit(IMC_Unit_Type t)

Create a new IMC_Unit.

PARROT_CANNOT_RETURN_NULL IMC_Unit *imc_open_unit(PARROT_INTERP, IMC_Unit_Type t)

Create a new IMC_Unit and "open" it for construction. This sets the current state of the parser. The unit can be closed later retaining all the current state.

void imc_close_unit(PARROT_INTERP, NULLOK(IMC_Unit *unit))

Close a unit from compilation. Does not destroy the unit, leaves it on the list.

static void imc_free_unit(PARROT_INTERP, NOTNULL(IMC_Unit *unit))

TODO: Not yet documented!!!


parrot