Shi
|
The following passage is taken from the standard on ambiguous conditions.
When an ambiguous condition exists, a system may take one or more of the following actions:
- ignore and continue;
- display a message;
- execute a particular word;
- set interpretation state and begin text interpretation;
- take other implementation-defined actions;
- take implementation-dependent actions.
The response to a particular ambiguous condition need not be the same under all circumstances.
Shi takes approach #1+2 and generally tries to ignore ambiguous conditions as much as possible. There is the SHI_ENABLE_PRINT macro which gives you an error message in case you implemented shi_printf but other than that all definitions try to stick to their stack effect. This produces garbage in case a word can can't fulfill its semantics but at least it doesn't corrupt the return-stack.