/**************************************************************************** ** *FInitKernel(<module>)........initialisekerneldatastructures
*/ staticInt InitKernel (
StructInitInfo * module )
{ // set the bag type names (for error messages and debugging)
InitBagNamesFromTable( BagNames );
// install the marking functions for boolean values
InitMarkFuncBags( T_BOOL, MarkNoSubBags );
// init filters and functions
InitHdlrFiltsFromTable( GVarFilts );
// make and install the 'RETURN_TRUE' function
InitHandlerFunc( ReturnTrue1, "src/bool.c:ReturnTrue1" );
InitHandlerFunc( ReturnTrue2, "src/bool.c:ReturnTrue2" );
InitHandlerFunc( ReturnTrue3, "src/bool.c:ReturnTrue3" );
// make and install the 'RETURN_FALSE' function
InitHandlerFunc( ReturnFalse1, "src/bool.c:ReturnFalse1" );
InitHandlerFunc( ReturnFalse2, "src/bool.c:ReturnFalse2" );
InitHandlerFunc( ReturnFalse3, "src/bool.c:ReturnFalse3" );
// make and install the 'RETURN_FAIL' function
InitHandlerFunc( ReturnFail1, "src/bool.c:ReturnFail1" );
InitHandlerFunc( ReturnFail2, "src/bool.c:ReturnFail2" );
InitHandlerFunc( ReturnFail3, "src/bool.c:ReturnFail3" );
// install the type function
ImportGVarFromLibrary( "TYPE_BOOL", &TYPE_BOOL );
TypeObjFuncs[ T_BOOL ] = TypeBool;
// init filters and functions
InitGVarFiltsFromTable( GVarFilts );
// bags are registered in 'InitKernel' True = NewBag(T_BOOL, 0); False = NewBag(T_BOOL, 0);
Fail = NewBag(T_BOOL, 0);
// `fail' is a variable not a language construct
AssReadOnlyGVar( GVarName( "fail" ), Fail );
// Undefined is an internal value
Undefined = NewBag(T_BOOL, 0);
// make and install the 'RETURN_TRUE' function
tmp = NewFunctionC("RETURN_TRUE", -1, "arg", ReturnTrue1);
SET_HDLR_FUNC( tmp, 1, ReturnTrue1);
SET_HDLR_FUNC( tmp, 2, ReturnTrue2);
SET_HDLR_FUNC( tmp, 3, ReturnTrue3);
AssReadOnlyGVar( GVarName("RETURN_TRUE"), tmp );
// make and install the 'RETURN_FALSE' function
tmp = NewFunctionC("RETURN_FALSE", -1, "arg", ReturnFalse1);
SET_HDLR_FUNC( tmp, 1, ReturnFalse1);
SET_HDLR_FUNC( tmp, 2, ReturnFalse2);
SET_HDLR_FUNC( tmp, 3, ReturnFalse3);
AssReadOnlyGVar( GVarName( "RETURN_FALSE" ), tmp );
// make and install the 'RETURN_FAIL' function
tmp = NewFunctionC("RETURN_FAIL", -1, "arg", ReturnFail1);
SET_HDLR_FUNC( tmp, 1, ReturnFail1);
SET_HDLR_FUNC( tmp, 2, ReturnFail2);
SET_HDLR_FUNC( tmp, 3, ReturnFail3);
AssReadOnlyGVar( GVarName( "RETURN_FAIL" ), tmp );
return0;
}
/**************************************************************************** ** *FInitInfoBool().................tableofinitfunctions
*/ static StructInitInfo module = { // init struct using C99 designated initializers; for a full list of // fields, please refer to the definition of StructInitInfo
.type = MODULE_BUILTIN,
.name = "bool",
.initKernel = InitKernel,
.initLibrary = InitLibrary,
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.