Next: Grammar methods, Previous: Static methods, Up: Top [Contents][Index]
The configuration object is intended for future extensions.
These may
allow the application to override Libmarpa’s memory allocation
and fatal error handling without resorting to global
variables, and therefore in a thread-safe way.
Currently, the only function of the Marpa_Config
class is to give
marpa_g_new()
a place to put its error code.
Marpa_Config
is Libmarpa’s only “major”
class which is not a time class.
There is no constructor or destructor, although
Marpa_Config
objects do need to be initialized
before use.
Aside from its own accessor,
Marpa_Config
objects are only used by
marpa_g_new()
and no reference to their location is not kept
in any of Libmarpa’s time objects.
The intent is to that it be convenient
to have them in memory that might be deallocated
soon after
marpa_g_new()
returns.
For example, they could be put on the stack.
[Mutator] Initialize the config information to “safe” default values. An irrecoverable error will result if an uninitialized configuration is used to create a grammar.
Return value: Always succeeds. The return value is indeterminate.
[Accessor] Error codes are usually kept in the base grammar,
which leaves
marpa_g_new()
no place to put
its error code on failure.
Objects of
the Marpa_Config
class provide such a place.
p_error_string is reserved for use by
the internals.
Applications should set it to NULL
.
Return value: The error code in config.
Always succeeds, so that
marpa_c_error()
never requires an error code
for itself.
Next: Grammar methods, Previous: Static methods, Up: Top [Contents][Index]