Functions | |
| word_t | croc_ex_lookup (CrocThread *t, const char *name) |
| word_t | croc_ex_pushRegistryVar (CrocThread *t, const char *name) |
| void | croc_ex_setRegistryVar (CrocThread *t, const char *name) |
| word_t | croc_ex_throwNamedException (CrocThread *t, const char *exName, const char *fmt,...) |
| word_t | croc_ex_vthrowNamedException (CrocThread *t, const char *exName, const char *fmt, va_list args) |
| word_t | croc_ex_CFileToNativeStream (CrocThread *t, FILE *f, const char *mode) |
| int | croc_ex_isHaltException (CrocThread *t, word_t index) |
Miscellaneous useful stuff.
| word_t croc_ex_lookup | ( | CrocThread * | t, |
| const char * | name | ||
| ) |
Given a dotted name, looks up the value given by that name and pushes it onto the stack.
This is to alleviate tedious repeated calls to croc_field to access a chain of fields. For example, if you want to call the doctools.console.help Croc stdlib function, you can do it like so:
The name must be properly formatted – it can't be empty, and none of the components between periods can be empty.
| word_t croc_ex_pushRegistryVar | ( | CrocThread * | t, |
| const char * | name | ||
| ) |
Pushes the value of the field named name from the registry.
Since the registry is a namespace, this will throw an exception if no field of that name exists in the registry.
| void croc_ex_setRegistryVar | ( | CrocThread * | t, |
| const char * | name | ||
| ) |
Expects one value on top of the stack, and assigns it to the field named name in the registry.
Pops the value.
| word_t croc_ex_throwNamedException | ( | CrocThread * | t, |
| const char * | exName, | ||
| const char * | fmt, | ||
| ... | |||
| ) |
Very similar to croc_eh_throwStd, except instead of being limited to the standard exception types, you can throw any exception type given by exName.
This uses croc_ex_lookup to look up exName, so you can use a dotted name here too.
| word_t croc_ex_vthrowNamedException | ( | CrocThread * | t, |
| const char * | exName, | ||
| const char * | fmt, | ||
| va_list | args | ||
| ) |
Same as croc_ex_throwNamedException, but takes a va_list instead of variadic arguments.
| word_t croc_ex_CFileToNativeStream | ( | CrocThread * | t, |
| FILE * | f, | ||
| const char * | mode | ||
| ) |
Given a C stdio FILE*, creates a new Croc stream.NativeStream instance which will read from or write to that FILE*, and pushes that instance.
| f | is the FILE* to wrap. It will be flushed before creating the instance. Do not use this FILE* at the same time Croc is using it! The NativeStream uses an unbuffered, lower-level OS interface to access the underlying file, and C's stdio functions can make weird things happen because of buffering. |
| mode | will be passed as the mode parameter to the NativeStream constructor. This is a string which defines what script code can do with it: if the character 'r' is in the string, the stream will be readable; 'w' makes it writable; 's' makes it seekable; and 'c' makes it closable. |
| int croc_ex_isHaltException | ( | CrocThread * | t, |
| word_t | index | ||
| ) |
index is an instance of the HaltException standard exception type. You shouldn't really catch halt exceptions, so if you use croc_tryCall or croc_tryMethodCall and they caught an exception, you should test if it was a halt exception and rethrow it if so.
1.8.6