(
/nestprompt)
(Redefines prompt to append a !, opens a new keystream for execution,
and then restores prompt when stream is terminated)
( (.mystream .readline .pop .dup .length 0 .eq (.pop .exit)(.cvx .exec)/ifelse).cvx .loop )
/xdef

(
.stkundflw)((**Stack Underflow - attempt to retrieve argument from empty stack.) = /stk /nestprompt ) .cvx .def
(
.undefkey)((**Undefined symbol: ).print = /stk /nestprompt) .cvx .def
(
.longname) ((**Long File Name --file name passed to .run or .bytestream is too long (256 chars). ) = /stk /nestprompt).cvx .def
(
.badname)
((**Bad File Name -- attempt to create stream with given name.) = /stk /nestprompt).cvx .def
(
.typechk)
((**Type Error -- bad arguments on stack --) = /stk /nestprompt).cvx .def
(
.dictfull)
(( **Dictionary Full --an attempt to define entry into full dictionary.) = /stk /nestprompt).cvx .def
(
.syntaxerr)
((**Syntax Error-- an isolated right paren has been found by the scanner.) = /stk /nestprompt).cvx .def
(
.overflow)
((**Numeric Overflow-- numeric overflow has occurred in scanning a number.) = /stk /nestprompt).cvx .def
(
.stkovrflw)
((**Stack Overflow-- This error may come from various parts of the JaM machine. When error occurs, all stacks are stored into arrays and put on operand stack in the order: opstack, dictstack, execstk.) = /stk /nestprompt).cvx .def
(
.rangechk)
((**Range Error -- some operation is attempting to index out of bounds.) = /stk /nestprompt).cvx .def