An Obeyfile is
Null | (Obeyfile : Command)
A command has a result of one of
CLI_OK, CLI_BAIL, CLI_ERROR e, APP_OK, APP_BAIL, APP_ERROR e
Examples of results
CLI_OK: *Echo
CLI_BAIL: *Obey
CLI_ERROR: *Error 0 Hello
APP_OK: *Quit
APP_BAIL: *Quit : *Obey
APP_ERROR: *Memory FFFFF000
Then an Obeyfile o:c
has result
R(o:c) :=
R(c) if R(o) = CLI_OK
CLI_BAIL if R(o) = CLI_BAIL
CLI_ERROR e if R(o) = CLI_ERROR e
APP_BAIL if R(c) = CLI_BAIL, | if R(o) = APP_OK
max{APP_OK, R(c)} otherwise |
APP_BAIL if R(o) = APP_BAIL
APP_ERROR e if R(o) = APP_ERROR e
where
CLI_OK < APP_OK < APP_ERROR
The result of Obeyfile f
is the result of the command *Obey f
.