Shi
Loading...
Searching...
No Matches
Ambiguous conditions

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.