Next: Wrapping and Unwrapping Values, Previous: Overview of the Code Generation Methods, Up: G-Wrap's Code Generation API
As we have just seen, wrapset objects (i.e. instances of a sub-class
of <gw-wrapset>
) are the most complex objects manipulated when
using G-Wrap: they aggregate a number of objects providing information
about what is to be wrapped. Consequently, the top-level code
generation methods are those that apply to wrapset themselves.
This method generates a wrapset call name, for language run-time lang, and using basename as the base for the names of the generated files. This is the highest-level method in G-Wrap. It will actually lookup a registered wrapset with name name (using the
get-wrapset
method which returns a<gw-wrapset>
object) and invoke the method described below.
Generate wrapper code for the wrapset wrapset for language run-time lang. The generated files will named using basename as a base name: the name of C source files will be the concatenation of basename and
".c"
, etc. Currently, lang may be eitherguile
(when generating wrappers for GNU Guile) orscheme48
(when generating wrappers for the Scheme48 system).
The default implementation of generate-wrapset
will in turn
call a number of methods whose purpose is to generate the necessary
file includes, global declarations and definitions for each C file.
These methods are listed below in the order in which they are
invoked at code-generation time.
Return a tree of C code that contains global declarations needed for wrapset wrapset.
Return a tree of C code that contains global definitions needed for wrapset wrapset.
Return a tree of C code that contains declarations of local variables for the wrapset run-time initialization function. By default, the generated wrapset run-time initialization function is named
gw_initialize_wrapset_WRAPSET
whereWRAPSET
is the name of the wrapset it initializes (actually a C-compatible representation of it).
FIXME: To be continued.