islands/libInit.cc
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 27 Jul 2015 16:28:48 +0100
changeset 506 e5d63143737f
parent 387 e2b2ccaa4de6
permissions -rw-r--r--
Added static analysis of blocks when inlining. Allow inlining only when block is functional ...i.e., does not access any shared state (in instance or class variables). If the block does a self-send, the sent method has to be (transitively) functional too. To allow for self-sends in action blocks, copy (transitively) self-sent methods to target parser. This is safe as these self-sent methods are guarnateed to be functional.

/*
 * $Header$
 *
 * DO NOT EDIT
 * automagically generated from the projectDefinition: stx_goodies_petitparser_islands.
 */
#define __INDIRECTVMINITCALLS__
#include <stc.h>

#ifdef WIN32
# pragma codeseg INITCODE "INITCODE"
#endif

#if defined(INIT_TEXT_SECTION) || defined(DLL_EXPORT)
DLL_EXPORT void _libstx_goodies_petitparser_islands_Init() INIT_TEXT_SECTION;
DLL_EXPORT void _libstx_goodies_petitparser_islands_InitDefinition() INIT_TEXT_SECTION;
#endif

void _libstx_goodies_petitparser_islands_InitDefinition(pass, __pRT__, snd)
OBJ snd; struct __vmData__ *__pRT__; {
__BEGIN_PACKAGE2__("libstx_goodies_petitparser_islands__DFN", _libstx_goodies_petitparser_islands_InitDefinition, "stx:goodies/petitparser/islands");
_stx_137goodies_137petitparser_137islands_Init(pass,__pRT__,snd);

__END_PACKAGE__();
}

void _libstx_goodies_petitparser_islands_Init(pass, __pRT__, snd)
OBJ snd; struct __vmData__ *__pRT__; {
__BEGIN_PACKAGE2__("libstx_goodies_petitparser_islands", _libstx_goodies_petitparser_islands_Init, "stx:goodies/petitparser/islands");
_PPInputEnds_Init(pass,__pRT__,snd);
_PPIsland_Init(pass,__pRT__,snd);
_PPNonEmptyParser_Init(pass,__pRT__,snd);
_PPWater_Init(pass,__pRT__,snd);
_stx_137goodies_137petitparser_137islands_Init(pass,__pRT__,snd);
_PPMemoizingIsland_Init(pass,__pRT__,snd);

_stx_137goodies_137petitparser_137islands_extensions_Init(pass,__pRT__,snd);
__END_PACKAGE__();
}