$ od -c -N 50000 [Erinyes]<LispManual>ErrorFns.im!8 0000000 \r \r \r { B e g i n S u b S e c 0000020 C r e a t i n g B r e a k s 0000040 w i t h B R E A K 1 } \r { T 0000060 i t l e C r e a t i n g B r 0000100 e a k s w i t h B R E A K 1 0000120 } \r { T e x t \r \r \r T h e b a 0000140 s i c f u n c t i o n o f 0000160 t h e b r e a k p a c k a g 0000200 e i s { f n B R E A K 1 } 0000220 , w h i c h c r e a t e s 0000240 a b r e a k . A b r e a 0000260 k a p p e a r s t o b e 0000300 a r e g u l a r e x e c u t 0000320 i v e , w i t h t h e p r 0000340 o m p t " { l i s p : } " , 0000360 b u t { f n B R E A K 1 } 0000400 a l s o d e t e c t s a n 0000420 d i n t e r p r e t e s b r 0000440 e a k c o m m a n d s ( { P 0000460 a g e R e f T a g B r e a k 0000500 C o m m a n d s } ) . \r \r \r { F 0000520 n D e f { F n N a m e B R E 0000540 A K 1 } { F n A r g s B R K 0000560 E X P B R K W H E N B R K F 0000600 N B R K C O M S B R K T Y P 0000620 E E R R O R N } \r { T y p e 0000640 N L A M B D A } \r { T e x t \r I 0000660 f { i n d e x * P R I M A R 0000700 Y * B R K W H E N V a r } { 0000720 a r g B R K W H E N } ( e v 0000740 a l u a t e d ) i s n o n - 0000760 { l i s p N I L } , a b r 0001000 e a k o c c u r s a n d c 0001020 o m m a n d s a r e t h e n 0001040 t a k e n f r o m { i n d 0001060 e x B R K C O M S V a r } { 0001100 a r g B R K C O M S } o r 0001120 t h e t e r m i n a l a n d 0001140 i n t e r p r e t e d . A 0001160 l l i n p u t s n o t r e 0001200 c o g n i z e d b y { f n 0001220 B R E A K 1 } a r e s i m p 0001240 l y p a s s e d o n t o 0001260 t h e p r o g r a m m e r ' s 0001300 a s s i s t a n t . \r \r I f 0001320 { a r g B R K W H E N } i s 0001340 { l i s p N I L } , { i n 0001360 d e x B R K E X P V a r } { 0001400 a r g B R K E X P } i s e 0001420 v a l u a t e d a n d r e t 0001440 u r n e d a s t h e v a l 0001460 u e o f { f n B R E A K 1 0001500 } , w i t h o u t c a u s i 0001520 n g a b r e a k . \r \r W h e 0001540 n a b r e a k o c c u r s 0001560 , i f { a r g E R R O R N 0001600 } i s a l i s t w h o s 0001620 e { l i s p C A R } i s 0001640 a n u m b e r , { i n d e x 0001660 E R R O R M E S S F n } { f 0001700 n E R R O R M E S S } ( { P 0001720 a g e R e f F n E R R O R M 0001740 E S S } ) i s c a l l e d 0001760 t o p r i n t a n i d e n 0002000 t i f y i n g m e s s a g e . 0002020 I f { a r g E R R O R N 0002040 } i s a l i s t w h o s 0002060 e { l i s p C A R } i s 0002100 n o t a n u m b e r , { i 0002120 n d e x E R R O R M E S S 1 0002140 F n } { f n E R R O R M E S S 0002160 1 } ( { P a g e R e f F n 0002200 E R R O R M E S S 1 } ) i s 0002220 c a l l e d . O t h e r w i 0002240 s e , n o p r e l i m i n a 0002260 r y m e s s a g e i s p r 0002300 i n t e d . F o l l o w i n 0002320 g t h i s , t h e m e s s 0002340 a g e { l i s p ( { a r g 0002360 B R K F N } b r o k e n ) } { 0002400 i n d e x * P R I M A R Y * 0002420 B R K F N V a r } i s p r 0002440 i n t e d . \r \r { n o t e a b 0002460 o v e i s u n c l e a r } \r 0002500 \r \r S i n c e { f n B R E A 0002520 K 1 } i t s e l f c a l l s 0002540 f u n c t i o n s , w h e n 0002560 o n e o f t h e s e i s 0002600 b r o k e n , a n i n f i 0002620 n i t e l o o p w o u l d 0002640 o c c u r . { f n B R E A 0002660 K 1 } d e t e c t s t h i s 0002700 s i t u a t i o n , a n d 0002720 p r i n t s { l i s p B r e 0002740 a k w i t h i n a b r e a 0002760 k o n { a r g F N } } , 0003000 a n d t h e n s i m p l y 0003020 c a l l s t h e f u n c t i 0003040 o n w i t h o u t g o i n g 0003060 i n t o a b r e a k . \r \r 0003100 { i n d e x X { N a m e B r 0003120 e a k w i t h i n a b r e 0003140 a k o n } \r { 0003160 T y p e P r i n t e d b y 0003200 s y s t e m } \r 0003220 { I n f o * P R I M A R Y * } 0003240 \r { T e x t { 0003260 l i s p B r e a k w i t h i 0003300 n a b r e a k o n { a r 0003320 g F N } } } \r } \r \r \r T h e 0003340 c o m m a n d s { b r e a k c 0003360 o m G O } , { b r e a k c o 0003400 m ! G O } , { b r e a k c o 0003420 m O K } , { b r e a k c o m 0003440 ! O K } , { b r e a k c o m 0003460 R E T U R N } a n d { b r 0003500 e a k c o m ^ } a r e t h 0003520 e o n l y w a y s t o l 0003540 e a v e { f n B R E A K 1 } 0003560 . T h e c o m m a n d { 0003600 b r e a k c o m E V A L } c 0003620 a u s e s { i n d e x B R K 0003640 E X P V a r } { a r g B R K 0003660 E X P } t o b e e v a l u 0003700 a t e d , a n d s a v e s 0003720 t h e v a l u e o n t h e 0003740 v a r i a b l e { v a r ! 0003760 V A L U E } . { i n d e x ! V 0004000 A L U E V a r } O t h e r 0004020 c o m m a n d s c a n b e 0004040 d e f i n e d f o r { f n 0004060 B R E A K 1 } v i a { i n 0004100 d e x B R E A K M A C R O S 0004120 V a r } { v a r B R E A K M A 0004140 C R O S } ( b e l o w ) . \r \r 0004160 { a r g B R K T Y P E } { i n 0004200 d e x * P R I M A R Y * B R 0004220 K T Y P E V a r } i s { l 0004240 i s p N I L } f o r u s e 0004260 r b r e a k s , { a t o m 0004300 I N T E R R U P T } { i n d e x 0004320 I N T E R R U P T L i t a t 0004340 o m } f o r c o n t r o l - 0004360 H b r e a k s , a n d { a 0004400 t o m E R R O R X } { i n d e 0004420 x E R R O R X L i t a t o m 0004440 } f o r e r r o r b r e a 0004460 k s . F o r b r e a k s 0004500 w h e n { a r g B R K T Y P 0004520 E } i s n o t { l i s p 0004540 N I L } , { f n B R E A K 1 0004560 } w i l l c l e a r a n d 0004600 s a v e t h e i n p u t 0004620 b u f f e r . { i n d e x i n 0004640 p u t b u f f e r } I f 0004660 t h e b r e a k r e t u r n 0004700 s a v a l u e ( i . e . , 0004720 i s n o t a b o r t e d 0004740 v i a { b r e a k c o m ^ } 0004760 { i n d e x ^ B r e a k C o 0005000 m } o r { i n d e x c o n 0005020 t r o l - D ( I n t e r r u p 0005040 t C h a r a c t e r ) } c o n 0005060 t r o l - D ) t h e i n p u 0005100 t b u f f e r w i l l b e 0005120 r e s t o r e d . \r } } \r \r \r 0005140 \r T h e f o u r t h a r g u 0005160 m e n t t o { f n B R E A 0005200 K 1 } i s { i n d e x * P 0005220 R I M A R Y * B R K C O M S 0005240 V a r } { a r g B R K C O M S 0005260 } , a l i s t o f b r e 0005300 a k c o m m a n d s { i n d e 0005320 x b r e a k c o m m a n d s 0005340 } t h a t { f n B R E A K 0005360 1 } i n t e r p r e t s a n 0005400 d e x e c u t e s a s t h 0005420 o u g h t h e y w e r e k 0005440 e y b o a r d i n p u t . 0005460 O n e c a n t h i n k o f 0005500 { a r g B R K C O M S } a 0005520 s a n o t h e r i n p u t 0005540 f i l e w h i c h a l w a y 0005560 s h a s p r i o r i t y o 0005600 v e r t h e k e y b o a r d 0005620 . W h e n e v e r { a r g 0005640 B R K C O M S } = { l i s p 0005660 N I L } , { f n B R E A K 1 0005700 } r e a d s i t s n e x t 0005720 c o m m a n d f r o m t h 0005740 e k e y b o a r d . W h e 0005760 n e v e r { a r g B R K C O 0006000 M S } i s n o t { l i s p 0006020 N I L } , { f n B R E A K 0006040 1 } t a k e s { l i s p ( 0006060 C A R B R K C O M S ) } a s 0006100 i t s n e x t c o m m a n 0006120 d a n d s e t s { a r g 0006140 B R K C O M S } t o { l i s 0006160 p ( C D R B R K C O M S ) } 0006200 . F o r e x a m p l e , 0006220 s u p p o s e t h e u s e r 0006240 w i s h e d t o s e e t 0006260 h e v a l u e o f t h e 0006300 v a r i a b l e { l i s p X 0006320 } { i t a f t e r } a f 0006340 u n c t i o n w a s e v a l 0006360 u a t e d . H e c o u l d 0006400 s e t u p a b r e a k 0006420 w i t h { a r g B R K C O M 0006440 S } = { l i s p ( E V A L ( 0006460 P R I N T X ) O K ) } , w 0006500 h i c h w o u l d h a v e 0006520 t h e d e s i r e d e f f e 0006540 c t . N o t e t h a t i 0006560 f { a r g B R K C O M S } 0006600 i s n o t { l i s p N I L 0006620 } , t h e v a l u e o f 0006640 a b r e a k c o m m a n d 0006660 i s n o t p r i n t e d . 0006700 I f y o u d e s i r e t 0006720 o s e e a v a l u e , y 0006740 o u m u s t p r i n t i t 0006760 y o u r s e l f , a s i n 0007000 t h e a b o v e e x a m p 0007020 l e . T h e f u n c t i o 0007040 n { i n d e x T R A C E F 0007060 N } { f n T R A C E } ( { P 0007100 a g e R e f F n T R A C E } 0007120 ) u s e s { a r g B R K C 0007140 O M S } : i t s e t s u p 0007160 a b r e a k w i t h t w 0007200 o c o m m a n d s ; t h e 0007220 f i r s t o n e p r i n t s 0007240 t h e a r g u m e n t s o 0007260 f t h e f u n c t i o n , 0007300 o r w h a t e v e r t h e 0007320 u s e r s p e c i f i e s , 0007340 a n d t h e s e c o n d i 0007360 s t h e c o m m a n d { b 0007400 r e a k c o m G O } , w h i 0007420 c h c a u s e s t h e f u 0007440 n c t i o n t o b e e v a 0007460 l u a t e d a n d i t s v 0007500 a l u e p r i n t e d . \r \r N 0007520 o t e : I f a n e r r o 0007540 r o c c u r s w h i l e i 0007560 n t e r p r e t i n g t h e 0007600 { a r g B R K C O M S } c o 0007620 m m a n d s , { a r g B R K 0007640 C O M S } i s s e t t o 0007660 { l i s p N I L } , a n d 0007700 a f u l l i n t e r a c t i 0007720 v e b r e a k o c c u r s . 0007740 \r \r \r \r T h e b r e a k p a 0007760 c k a g e h a s a f a c i 0010000 l i t y f o r r e d i r e c 0010020 t i n g o u p u t t o a 0010040 f i l e . A l l o u t p u 0010060 t r e s u l t i n g f r o m 0010100 { i n d e x B R K C O M S 0010120 V a r } { a r g B R K C O M S 0010140 } w i l l b e o u t p u t 0010160 t o t h e v a l u e o f 0010200 t h e v a r i a b l e { v 0010220 a r B R K F I L E } , { i n d 0010240 e x * P R I M A R Y * B R K 0010260 F I L E V a r } w h i c h 0010300 s h o u l d b e t h e n a 0010320 m e o f a n o p e n f i 0010340 l e . O u t p u t d u e 0010360 t o u s e r t y p e i n i 0010400 s n o t a f f e c t e d , 0010420 a n d w i l l a l w a y s 0010440 g o t o t h e t e r m i n 0010460 a l . { v a r B R K F I L 0010500 E } i s i n i t i a l l y 0010520 { l i s p T } . \r \r \r { V a r 0010540 D e f { N a m e B R E A K M 0010560 A C R O S } \r { T e x t \r { v a 0010600 r B R E A K M A C R O S } i 0010620 s a l i s t o f t h e 0010640 f o r m { l i s p ( ( { a 0010660 r g N A M E { s u b 1 } } 0010700 { a r g C O M { s u b 1 1 } 0010720 } { e l l i p s i s } { a r 0010740 g C O M { s u b 1 n } } ) 0010760 ( { a r g N A M E { s u b 2 0011000 } } { a r g C O M { s u b 0011020 2 1 } } { e l l i p s i s } 0011040 { a r g C O M { s u b 2 n } 0011060 } ) { e l l i p s i s } ) } . 0011100 W h e n e v e r a n a t 0011120 o m i c c o m m a n d i s 0011140 g i v e n t o { f n B R E 0011160 A K 1 } , i t f i r s t s 0011200 e a r c h e s t h e l i s t 0011220 { v a r B R E A K M A C R O 0011240 S } f o r t h e c o m m a 0011260 n d . I f t h e c o m m 0011300 a n d i s e q u a l t o 0011320 { a r g N A M E { s u b i } 0011340 } , { f n B R E A K 1 } s 0011360 i m p l y a p p e n d s t h 0011400 e c o r r e s p o n d i n g 0011420 c o m m a n d s t o t h e 0011440 f r o n t o f { a r g B R 0011460 K C O M S } , a n d g o e s 0011500 o n . I f t h e c o m 0011520 m a n d i s n o t f o u n 0011540 d o n { v a r B R E A K M 0011560 A C R O S } , { f n B R E A 0011600 K 1 } t h e n c h e c k s 0011620 t o s e e i f i t i s 0011640 o n e o f t h e b u i l t 0011660 i n c o m m a n d s , a n 0011700 d f i n a l l y , t r e a t 0011720 s i t a s a f u n c t i 0011740 o n o r v a r i a b l e a 0011760 s b e f o r e . \r \r I f t h 0012000 e c o m m a n d i s n o t 0012020 t h e n a m e o f a d 0012040 e f i n e d f u n c t i o n , 0012060 b o u n d v a r i a b l e , 0012100 o r { f n L I S P X } c 0012120 o m m a n d , { f n B R E A 0012140 K 1 } w i l l a t t e m p t 0012160 s p e l l i n g c o r r e c 0012200 t i o n u s i n g { v a r 0012220 B R E A K C O M S L S T } { i n 0012240 d e x B R E A K C O M S L S T 0012260 V a r } a s a s p e l l 0012300 i n g l i s t . { i n d e x 0012320 s p e l l i n g l i s t s } { 0012340 i n d e x s p e l l i n g c 0012360 o r r e c t i o n } I f s 0012400 p e l l i n g c o r r e c t i 0012420 o n i s u n s u c c e s s f 0012440 u l , { f n B R E A K 1 } 0012460 w i l l g o a h e a d a n 0012500 d c a l l { f n L I S P X 0012520 } a n y w a y , s i n c e 0012540 t h e a t o m m a y a l s 0012560 o b e a m i s s p e l l e 0012600 d h i s t o r y c o m m a n 0012620 d . \r \r F o r e x a m p l e , 0012640 t h e c o m m a n d { b r 0012660 e a k c o m A R G S } c o u 0012700 l d b e d e f i n e d b y 0012720 i n c l u d i n g o n { v 0012740 a r B R E A K M A C R O S } 0012760 t h e f o r m : \r \r { l i s p 0013000 c o d e ( A R G S ( P R I N 0013020 T ( V A R I A B L E S L A S 0013040 T P O S T ) ) ) } \r } } \r \r \r 0013060 { F n D e f { F n N a m e B 0013100 R E A K R E A D } { F n A r g 0013120 s T Y P E } \r { T e x t \r U s 0013140 e f u l w i t h i n { v a r 0013160 B R E A K M A C R O S } f o 0013200 r r e a d i n g a r g u m e 0013220 n t s . I f { v a r B R 0013240 K C O M S } i s n o n - { l 0013260 i s p N I L } ( t h e c o 0013300 m m a n d i n w h i c h t 0013320 h e c a l l t o { f n B 0013340 R E A K R E A D } a p p e a r 0013360 s w a s n o t t y p e d 0013400 i n ) , r e t u r n s t h e 0013420 n e x t b r e a k c o m m 0013440 a n d f r o m { v a r B R 0013460 K C O M S } , a n d s e t s 0013500 { v a r B R K C O M S } t 0013520 o { l i s p ( C D R B R K 0013540 C O M S ) } . \r \r I f { v a r 0013560 B R K C O M S } i s { l i 0013600 s p N I L } ( t h e c o m 0013620 m a n d w a s t y p e d i 0013640 n ) , t h e n { f n B R E 0013660 A K R E A D } r e t u r n s 0013700 e i t h e r t h e r e s t 0013720 o f t h e c o m m a n d s 0013740 o n t h e l i n e a s a 0013760 l i s t ( i f { a r g T 0014000 Y P E } = { l i s p L I N E } 0014020 ) o r j u s t t h e n e 0014040 x t c o m m a n d o n t h 0014060 e l i n e ( i f { a r g 0014100 T Y P E } i s n o t { l i 0014120 s p L I N E } ) . \r \r F o r 0014140 e x a m p l e , t h e { b r 0014160 e a k c o m B T } c o m m a 0014200 n d i s d e f i n e d a s 0014220 { l i s p ( B A K T R A C E 0014240 L A S T P O S N I L ( B R 0014260 E A K R E A D ' L I N E ) 0 0014300 T ) } . T h u s , i f 0014320 t h e u s e r t y p e s { 0014340 b r e a k c o m B T } , t h 0014360 e t h i r d a r g u m e n t 0014400 t o { f n B A K T R A C E 0014420 } w i l l b e { l i s p 0014440 N I L } . I f t h e u s 0014460 e r t y p e s { l i s p B 0014500 T S U B R P } , t h e t h 0014520 i r d a r g u m e n t w i l 0014540 l b e { l i s p ( S U B R 0014560 P ) } . \r } } \r \r \r \r \r { V a r 0014600 D e f { N a m e B R E A K R 0014620 E S E T F O R M S } \r { T e x t 0014640 \r I f t h e u s e r i s 0014660 d e v e l o p i n g p r o g r 0014700 a m s t h a t c h a n g e 0014720 t h e w a y a u s e r a 0014740 n d I n t e r l i s p n o r 0014760 m a l l y i n t e r a c t ( 0015000 e . g . , c h a n g e o r 0015020 d i s a b l e t h e i n t e 0015040 r r u p t o r l i n e - e d 0015060 i t i n g c h a r a c t e r s 0015100 , t u r n o f f e c h o i 0015120 n g , e t c . ) , d e b u g 0015140 g i n g t h e m b y b r e 0015160 a k i n g o r t r a c i n g 0015200 m a y b e d i f f i c u l 0015220 t , b e c a u s e I n t e r 0015240 l i s p m i g h t b e i n 0015260 a " f u n n y " s t a t e 0015300 a t t h e t i m e o f 0015320 t h e b r e a k . { v a r 0015340 B R E A K R E S E T F O R M S 0015360 } i s d e s i g n e d t o 0015400 s o l v e t h i s p r o b 0015420 l e m . T h e u s e r p 0015440 u t s o n { v a r B R E A 0015460 K R E S E T F O R M S } e x p 0015500 r e s s i o n s s u i t a b l 0015520 e f o r u s e i n c o n 0015540 j u n c t i o n w i t h { f 0015560 n R E S E T F O R M } o r 0015600 { f n R E S E T S A V E } ( 0015620 { P a g e R e f F n R E S E 0015640 T S A V E } ) . W h e n a 0015660 b r e a k o c c u r s , { 0015700 f n B R E A K 1 } e v a l u 0015720 a t e s e a c h e x p r e s 0015740 s i o n o n { v a r B R E 0015760 A K R E S E T F O R M S } { i 0016000 t b e f o r e } a n y i n 0016020 t e r a c t i o n w i t h t 0016040 h e t e r m i n a l , a n d 0016060 s a v e s t h e v a l u e 0016100 s . W h e n t h e b r e 0016120 a k e x p r e s s i o n i s 0016140 e v a l u a t e d v i a a 0016160 n { b r e a k c o m E V A L 0016200 } , { b r e a k c o m O K } 0016220 , o r { b r e a k c o m G 0016240 O } , { f n B R E A K 1 } 0016260 f i r s t r e s t o r e s t 0016300 h e s t a t e o f t h e 0016320 s y s t e m w i t h r e s p 0016340 e c t t o t h e v a r i o 0016360 u s e x p r e s s i o n s o 0016400 n { v a r B R E A K R E S E 0016420 T F O R M S } . W h e n c 0016440 o n t r o l r e t u r n s t 0016460 o { f n B R E A K 1 } , t 0016500 h e e x p r e s s i o n s o 0016520 n { v a r B R E A K R E S E 0016540 T F O R M S } a r e { i t 0016560 a g a i n } e v a l u a t e d 0016600 , a n d t h e i r v a l u 0016620 e s s a v e d . W h e n 0016640 t h e b r e a k i s e x i 0016660 t e d w i t h a n { b r e 0016700 a k c o m O K } , { b r e a 0016720 k c o m G O } , { b r e a k 0016740 c o m R E T U R N } , o r 0016760 { b r e a k c o m ^ } c o m 0017000 m a n d , b y t y p i n g 0017020 c o n t r o l - D , o r b y 0017040 a { f n R E T F R O M } 0017060 o r { f n R E T E V A L } 0017100 t y p e d i n b y t h e 0017120 u s e r , { f n B R E A K 1 0017140 } a g a i n r e s t o r e s 0017160 s t a t e . T h u s t h 0017200 e n e t e f f e c t i s 0017220 t o m a k e t h e b r e a 0017240 k i n v i s i b l e w i t h 0017260 r e s p e c t t o t h e 0017300 u s e r ' s p r o g r a m s , 0017320 b u t n e v e r t h e l e s 0017340 s a l l o w t h e u s e r 0017360 t o i n t e r a c t i n 0017400 t h e b r e a k i n t h e 0017420 n o r m a l f a s h i o n . 0017440 \r \r N o t e : A l l u s e 0017460 r t y p e - i n i s s c a 0017500 n n e d i n o r d e r t o 0017520 m a k e t h e o p e r a t 0017540 i o n s u n d o a b l e a s 0017560 d e s c r i b e d o n { P 0017600 a g e R e f T a g S l a s h 0017620 i f y i n g T y p e d I n F n s 0017640 } . A t t h i s p o i n 0017660 t , { f n R E T F R O M } s 0017700 a n d { f n R E T E V A L 0017720 } s a r e a l s o n o t i 0017740 c e d . H o w e v e r , i 0017760 f t h e u s e r t y p e s 0020000 i n a n e x p r e s s i o 0020020 n w h i c h c a l l s a 0020040 f u n c t i o n t h a t t h 0020060 e n d o e s a { f n R E 0020100 T F R O M } , t h i s { f n 0020120 R E T F R O M } w i l l n 0020140 o t b e n o t i c e d , a 0020160 n d t h e e f f e c t s o 0020200 f { v a r B R E A K R E S E 0020220 T F O R M S } w i l l { i t 0020240 n o t } b e r e v e r s e 0020260 d . \r \r A s m e n t i o n e d 0020300 e a r l i e r , { f n B R 0020320 E A K 1 } d e t e c t s " B 0020340 r e a k w i t h i n a b r 0020360 e a k " s i t u a t i o n s , 0020400 a n d a v o i d s i n f i 0020420 n i t e l o o p s . I f 0020440 t h e l o o p o c c u r s 0020460 b e c a u s e o f a n e r 0020500 r o r , { f n B R E A K 1 } 0020520 s i m p l y r e b i n d s 0020540 { v a r B R E A K R E S E T F 0020560 O R M S } t o { l i s p N 0020600 I L } , a n d c a l l s { 0020620 f n H E L P } . T h i s 0020640 s i t u a t i o n m o s t f 0020660 r e q u e n t l y o c c u r s 0020700 w h e n t h e r e i s a 0020720 b u g i n a f u n c t i 0020740 o n c a l l e d b y { v a 0020760 r B R E A K R E S E T F O R M 0021000 S } . \r \r N o t e : { f n 0021020 S E T Q } e x p r e s s i o n 0021040 s c a n a l s o b e i n 0021060 c l u d e d o n { v a r B 0021100 R E A K R E S E T F O R M S } 0021120 f o r s a v i n g a n d r 0021140 e s t o r i n g s y s t e m 0021160 p a r a m e t e r s , e . g . 0021200 { l i s p ( S E T Q L I S 0021220 P X H I S T O R Y N I L ) } , 0021240 { l i s p ( S E T Q D W I 0021260 M F L G N I L ) } , e t c . 0021300 T h e s e a r e h a n d 0021320 l e d s p e c i a l l y b y 0021340 { f n B R E A K 1 } i n 0021360 t h a t t h e c u r r e n t 0021400 v a l u e o f t h e v a 0021420 r i a b l e i s s a v e d 0021440 b e f o r e t h e { f n S 0021460 E T Q } i s e x e c u t e d 0021500 , a n d u p o n r e s t o 0021520 r a t i o n , t h e v a r i 0021540 a b l e i s s e t b a c k 0021560 t o t h i s v a l u e . \r 0021600 } } \r \r \r \r } { E n d S u b S 0021620 e c C r e a t i n g B r e a 0021640 k s w i t h B R E A K 1 } \r 0021660 \r \r \r \r \r { B e g i n S u b S 0021700 e c S i g n a l l i n g E r 0021720 r o r s } \r { T i t l e S i g 0021740 n a l l i n g E r r o r s } \r 0021760 { T e x t \r \r \r { F n D e f { 0022000 F n N a m e E R R O R X } { 0022020 F n A r g s E R X M } \r { T e 0022040 x t \r T h e e n t r y t o 0022060 t h e e r r o r r o u t i n 0022100 e s . I f { a r g E R X 0022120 M } = { l i s p N I L } , { 0022140 l i s p ( E R R O R N ) } i 0022160 s u s e d t o d e t e r m 0022200 i n e t h e e r r o r - m e 0022220 s s a g e . O t h e r w i s 0022240 e , { l i s p ( S E T E R R 0022260 O R N ( C A R { a r g E R 0022300 X M } ) ( C A D R { a r g 0022320 E R X M } ) ) } i s p e r f 0022340 o r m e d , " s e t t i n g " 0022360 t h e e r r o r n u m b e 0022400 r a n d a r g u m e n t . 0022420 T h u s f o l l o w i n g 0022440 e i t h e r { l i s p ( E R 0022460 R O R X ' ( 1 0 T ) ) } o 0022500 r { l i s p ( P L U S T ) 0022520 } , { l i s p ( E R R O R N 0022540 ) } i s { l i s p ( 1 0 0022560 T ) } . { f n E R R O R X 0022600 } c a l l s { i n d e x B 0022620 R E A K C H E C K F N } { f n 0022640 B R E A K C H E C K } , a n 0022660 d e i t h e r i n d u c e s 0022700 a b r e a k o r p r i n 0022720 t s t h e m e s s a g e a 0022740 n d u n w i n d s t o t h 0022760 e l a s t { i n d e x E R 0023000 R O R S E T F N } { f n E R 0023020 R O R S E T } ( { P a g e R e 0023040 f F n B R E A K C H E C K } 0023060 ) . N o t e t h a t { f 0023100 n E R R O R X } c a n b e 0023120 c a l l e d b y a n y p 0023140 r o g r a m t o i n t e n t 0023160 i o n a l l y i n d u c e a 0023200 n e r r o r o f a n y t 0023220 y p e . H o w e v e r , f 0023240 o r m o s t a p p l i c a t 0023260 i o n s , t h e f u n c t i 0023300 o n { f n E R R O R } w i 0023320 l l b e m o r e u s e f u 0023340 l . \r } } \r \r \r \r { F n D e f 0023360 { F n N a m e E R R O R } { 0023400 F n A r g s M E S S 1 M E S 0023420 S 2 N O B R E A K } \r { T e x 0023440 t \r P r i n t s { a r g M E 0023460 S S 1 } ( u s i n g { f n 0023500 P R I N 1 } ) , f o l l o w e 0023520 d b y a s p a c e i f 0023540 { a r g M E S S 1 } i s a 0023560 n a t o m , o t h e r w i s 0023600 e a c a r r i a g e r e t 0023620 u r n . T h e n { a r g 0023640 M E S S 2 } i s p r i n t e 0023660 d ( u s i n g { f n P R I 0023700 N 1 } i f { a r g M E S S 0023720 2 } i s a s t r i n g , 0023740 o t h e r w i s e { f n P R 0023760 I N T } ) . F o r e x a m 0024000 p l e , { l i s p ( E R R O 0024020 R " N O N - N U M E R I C A 0024040 R G " T ) } p r i n t s \r \r 0024060 { l i s p c o d e \r N O N - N U 0024100 M E R I C A R G \r T } \r \r a n 0024120 d { l i s p ( E R R O R ' 0024140 F O O " N O T A F U N C T 0024160 I O N " ) } p r i n t s { l 0024200 i s p F O O N O T A F U 0024220 N C T I O N } . I f b o t 0024240 h { a r g M E S S 1 } a n 0024260 d { a r g M E S S 2 } a r 0024300 e { l i s p N I L } , t h 0024320 e m e s s a g e p r i n t e 0024340 d i s s i m p l y { l i s 0024360 p E R R O R } . { i n d e x 0024400 E R R O R E r r o r } \r \r I f 0024420 { a r g N O B R E A K } = { 0024440 l i s p T } , { f n E R R 0024460 O R } p r i n t s i t s m 0024500 e s s a g e a n d t h e n 0024520 c a l l s { f n E R R O R ! 0024540 } ( b e l o w ) . O t h e 0024560 r w i s e i t c a l l s { 0024600 l i s p ( E R R O R X ' ( 1 0024620 7 ( { a r g M E S S 1 } . 0024640 { a r g M E S S 2 } ) ) ) } 0024660 , i . e . , g e n e r a t e 0024700 s e r r o r n u m b e r 1 0024720 7 , i n w h i c h c a s e 0024740 t h e d e c i s i o n a s 0024760 t o w h e t h e r o r n 0025000 o t t o b r e a k , a n d 0025020 w h e t h e r o r n o t 0025040 t o p r i n t a m e s s a 0025060 g e , i s h a n d l e d a 0025100 s p e r a n y o t h e r 0025120 e r r o r . \r \r I f t h e v 0025140 a l u e o f { v a r H E L 0025160 P F L A G } ( { P a g e R e f 0025200 V a r H E L P F L A G } ) 0025220 i s { l i s p B R E A K ! } 0025240 , a b r e a k w i l l a 0025260 l w a y s o c c u r , i r r 0025300 e g a r d l e s s o f t h e 0025320 v a l u e o f { a r g N 0025340 O B R E A K } . \r \r N o t e : 0025360 I f { f n E R R O R } c 0025400 a u s e s a b r e a k , t 0025420 h e " b r e a k e x p r e s 0025440 s i o n " ( { P a g e R e f 0025460 T e r m B r e a k E x p r e 0025500 s s i o n } ) w i l l b e 0025520 { l i s p ( E R R O R M E S 0025540 S 1 M E S S 2 N O B R E A K 0025560 ) } . U s i n g t h e { 0025600 l i s p G O } , { l i s p 0025620 O K } , o r { l i s p E V 0025640 A L } b r e a k c o m m a n 0025660 d s ( { P a g e R e f ( B r 0025700 e a k C o m m a n d ) O K } 0025720 ) w i l l s i m p l y c a 0025740 l l { f n E R R O R } a g 0025760 a i n . I t i s s o m e 0026000 t i m e s h e l p f u l t o 0026020 d e s i g n p r o g r a m s 0026040 t h a t c a l l { f n E 0026060 R R O R } s u c h t h a t 0026100 i f t h e c a l l t o { 0026120 f n E R R O R } r e t u r n 0026140 s ( a s t h e r e s u l t 0026160 o f u s i n g t h e { l 0026200 i s p R E T U R N } b r e a 0026220 k c o m m a n d ) , t h e 0026240 o p e r a t i o n i s t r i 0026260 e d a g a i n . T h i s 0026300 a l l o w s t h e u s e t 0026320 o f i x a n y p r o b l e 0026340 m s w i t h i n t h e b r 0026360 e a k e n v i r o n m e n t , 0026400 a n d t r y t o c o n t 0026420 i n u e t h e o p e r a t i 0026440 o n . \r } } \r \r \r \r { F n D e f 0026460 { F n N a m e H E L P } { 0026500 F n A r g s M E S S 1 M E S 0026520 S 2 B R K T Y P E } \r { T e x 0026540 t \r P r i n t s { a r g M E 0026560 S S 1 } a n d { a r g M E 0026600 S S 2 } s i m i l a r t o 0026620 { f n E R R O R } , a n d 0026640 t h e n c a l l s { i n d e 0026660 x B R E A K 1 F N } { f n 0026700 B R E A K 1 } p a s s i n g 0026720 { a r g B R K T Y P E } a s 0026740 t h e { l i s p B R K T Y 0026760 P E } a r g u m e n t . I 0027000 f b o t h { a r g M E S S 0027020 1 } a n d { a r g M E S S 0027040 2 } a r e { l i s p N I L 0027060 } , { l i s p H e l p ! } { 0027100 i n d e x H e l p ! E r r o 0027120 r } i s u s e d f o r t 0027140 h e m e s s a g e . { f n 0027160 H E L P } i s a c o n v 0027200 e n i e n t w a y t o p r 0027220 o g r a m a d e f a u l t 0027240 c o n d i t i o n , o r t o 0027260 t e r m i n a t e s o m e 0027300 p o r t i o n o f a p r o 0027320 g r a m w h i c h t h e c 0027340 o m p u t a t i o n i s t h 0027360 e o r e t i c a l l y n e v e 0027400 r s u p p o s e d t o r e 0027420 a c h . \r } } \r \r \r \r { F n D 0027440 e f { F n N a m e S H O U L 0027460 D N T } { F n A r g s M E S 0027500 S } \r { T e x t \r U s e f u l 0027520 i n t h o s e s i t u a t i 0027540 o n s w h e n a p r o g r 0027560 a m d e t e c t s a c o n 0027600 d i t i o n t h a t s h o u 0027620 l d n e v e r o c c u r . 0027640 C a l l s { f n H E L P } 0027660 w i t h t h e m e s s a g 0027700 e a r g u m e n t s { a r g 0027720 M E S S } a n d { l i s p 0027740 " S h o u l d n ' t h a p p 0027760 e n ! " } a n d a { l i s 0030000 p B R K T Y P E } a r g u m 0030020 e n t o f { l i s p ' E R 0030040 R O R X } . { i n d e x S h o 0030060 u l d n ' t h a p p e n ! E 0030100 r r o r } \r } } \r \r \r \r { F n D 0030120 e f { F n N a m e E R R O R 0030140 ! } { F n A r g s } \r { T e x 0030160 t \r P r o g r a m m a b l e c 0030200 o n t r o l - E ; { i n d e x 0030220 c o n t r o l - E ( I n t e r 0030240 r u p t C h a r a c t e r ) } 0030260 i m m e d i a t e l y r e t 0030300 u r n s f r o m l a s t { 0030320 i n d e x E R R O R S E T F 0030340 N } { f n E R R O R S E T } 0030360 o r r e s e t s . \r \r { n o t 0030400 e F R O M t h e l a s t 0030420 E R R O R S E T , o r T O 0030440 ? ? ? } \r } } \r \r \r \r { F n D e 0030460 f { F n N a m e R E S E T } 0030500 { F n A r g s } \r { T e x t \r 0030520 P r o g r a m m a b l e c o n 0030540 t r o l - D ; { i n d e x c o 0030560 n t r o l - D ( I n t e r r u 0030600 p t C h a r a c t e r ) } i 0030620 m m e d i a t e l y r e t u r 0030640 n s t o t h e t o p l e 0030660 v e l . \r } } \r \r \r \r { F n D e 0030700 f { F n N a m e E R R O R N 0030720 } { F n A r g s } \r { T e x t 0030740 \r R e t u r n s i n f o r m a 0030760 t i o n a b o u t t h e l 0031000 a s t e r r o r i n t h e 0031020 f o r m { l i s p ( { a r 0031040 g N U M } { a r g E X P } 0031060 ) } w h e r e { a r g N U 0031100 M } i s t h e e r r o r 0031120 n u m b e r { i n d e x E r 0031140 r o r n u m b e r s } ( { P a 0031160 g e R e f T e r m E r r o r 0031200 N u m b e r s } ) a n d { 0031220 a r g E X P } i s t h e 0031240 e x p r e s s i o n w h i c h 0031260 w a s p r i n t e d o u t 0031300 a f t e r t h e e r r o r 0031320 m e s s a g e . F o r e 0031340 x a m p l e , f o l l o w i n 0031360 g { l i s p ( P L U S T ) 0031400 } , { l i s p ( E R R O R N 0031420 ) } w o u l d r e t u r n 0031440 { l i s p ( 1 0 T ) } . \r } 0031460 } \r \r \r \r { F n D e f { F n N 0031500 a m e S E T E R R O R N } { 0031520 F n A r g s N U M M E S S } 0031540 \r { T e x t \r S e t s t h e 0031560 v a l u e r e t u r n e d b 0031600 y { l i s p E R R O R N } 0031620 t o { l i s p ( { a r g N 0031640 U M } { a r g M E S S } ) } 0031660 . \r } } \r \r \r \r { F n D e f { 0031700 F n N a m e E R R O R M E S S 0031720 } { F n A r g s U } \r { T e 0031740 x t \r P r i n t s m e s s a g 0031760 e c o r r e s p o n d i n g 0032000 t o a n { f n E R R O R N 0032020 } t h a t y i e l d e d { 0032040 a r g U } . F o r e x a 0032060 m p l e , { l i s p ( E R R 0032100 O R M E S S ' ( 1 0 T ) ) } 0032120 w o u l d p r i n t \r \r { l 0032140 i s p c o d e \r N O N - N U M E 0032160 R I C A R G \r T } \r } } \r \r \r 0032200 { F n D e f { F n N a m e E 0032220 R R O R M E S S 1 } { F n A r 0032240 g s M E S S 1 M E S S 2 M 0032260 E S S 3 } \r { T e x t \r P r i n 0032300 t s t h e m e s s a g e c 0032320 o r r e s p o n d i n g t o 0032340 a { f n H E L P } o r { 0032360 f n E R R O R } b r e a k . 0032400 \r } } \r \r \r { F n D e f { F n 0032420 N a m e E R R O R S T R I N G 0032440 } { F n A r g s X } \r { T e 0032460 x t \r R e t u r n s a s a 0032500 n e w s t r i n g t h e m 0032520 e s s a g e c o r r e s p o n 0032540 d i n g t o e r r o r n u 0032560 m b e r { a r g X } , e . 0032600 g . , { l i s p ( E R R O R 0032620 S T R I N G 1 0 ) } = { l i s 0032640 p " N O N - N U M E R I C A 0032660 R G " } . \r } } \r \r \r \r } { E n 0032700 d S u b S e c S i g n a l l 0032720 i n g E r r o r s } \r \r \r \r \r 0032740 \r { B e g i n S u b S e c C 0032760 a t c h i n g E r r o r s } \r 0033000 { T i t l e C a t c h i n g 0033020 E r r o r s } \r { T e x t \r \r A 0033040 l l e r r o r c o n d i t i 0033060 o n s a r e n o t c a u s 0033100 e d b y p r o g r a m b u 0033120 g s . F o r s o m e p r 0033140 o g r a m s , i t i s r e 0033160 a s o n a b l e f o r s o m 0033200 e e r r o r s t o o c c u 0033220 r ( s u c h a s f i l e 0033240 n o t f o u n d e r r o r s 0033260 ) a n d i t i s p o s s 0033300 i b l e f o r t h e p r o 0033320 g r a m t o h a n d l e t 0033340 h e e r r o r i t s e l f . 0033360 T h e r e a r e a n u 0033400 m b e r o f f u n c t i o n 0033420 s t h a t a l l o w a p 0033440 r o g r a m t o " c a t c h 0033460 " e r r o r s , r a t h e r 0033500 t h a n a b o r t t h e 0033520 c o m p u t a t i o n o r c 0033540 a u s e a b r e a k . \r \r \r 0033560 { F n D e f { F n N a m e E 0033600 R R O R S E T } { F n A r g s 0033620 F O R M F L A G { a n o n 0033640 a r g } } \r { T e x t \r P e r f 0033660 o r m s { l i s p ( E V A L 0033700 { a r g F O R M } ) } . 0033720 I f n o e r r o r o c c u 0033740 r s i n t h e e v a l u a 0033760 t i o n o f { a r g F O R 0034000 M } , t h e v a l u e o f 0034020 { f n E R R O R S E T } i 0034040 s a l i s t c o n t a i n 0034060 i n g o n e e l e m e n t , 0034100 t h e v a l u e o f { l 0034120 i s p ( E V A L { a r g F 0034140 O R M } ) } . I f a n e 0034160 r r o r d i d o c c u r , 0034200 t h e v a l u e o f { f n 0034220 E R R O R S E T } i s { l 0034240 i s p N I L } . \r \r { f n E 0034260 R R O R S E T } i s a l a 0034300 m b d a f u n c t i o n , s 0034320 o i t s a r g u m e n t s 0034340 a r e e v a l u a t e d { i 0034360 t b e f o r e } i t i s 0034400 e n t e r e d , i . e . , { 0034420 l i s p ( E R R O R S E T X 0034440 ) } m e a n s { f n E V A 0034460 L } i s c a l l e d w i t 0034500 h t h e { i t v a l u e } 0034520 o f { l i s p X } . I 0034540 n m o s t c a s e s , { f 0034560 n E R S E T Q } a n d { f 0034600 n N L S E T Q } ( b e l o w 0034620 ) a r e m o r e u s e f u 0034640 l . \r \r P e r f o r m a n c e 0034660 N o t e : W h e n a c a 0034700 l l t o { f n E R S E T Q 0034720 } o r { f n N L S E T Q } 0034740 i s c o m p i l e d , t h 0034760 e f o r m t o b e e v a 0035000 l u a t e d i s c o m p i l 0035020 e d a s a s e p a r a t e 0035040 f u n c t i o n . H o w e 0035060 v e r , c o m p i l i n g a 0035100 c a l l t o { f n E R R 0035120 O R S E T } d o e s n o t 0035140 c o m p i l e { a r g F O R 0035160 M } . T h e r e f o r e , 0035200 i f { a r g F O R M } p e 0035220 r f o r m s a l e n g t h y 0035240 c o m p u t a t i o n , u s 0035260 i n g { f n E R S E T Q } 0035300 o r { f n N L S E T Q } c 0035320 a n b e m u c h m o r e 0035340 e f f i c i e n t t h a n u 0035360 s i n g { f n E R R O R S E 0035400 T } . \r \r \r T h e a r g u m e 0035420 n t { a r g F L A G } c o 0035440 n t r o l s t h e p r i n t 0035460 i n g o f e r r o r m e s 0035500 s a g e s i f a n e r r o 0035520 r o c c u r s . N o t e 0035540 t h a t i f a { i t b r 0035560 e a k } o c c u r s b e l o 0035600 w a n { f n E R R O R S E 0035620 T } , t h e m e s s a g e 0035640 i s p r i n t e d r e g a r 0035660 d l e s s o f t h e v a l 0035700 u e o f { a r g F L A G } 0035720 . \r \r I f { a r g F L A G } 0035740 = { l i s p T } , t h e e 0035760 r r o r m e s s a g e i s 0036000 p r i n t e d ; i f { a r g 0036020 F L A G } = { l i s p N I L 0036040 } , t h e e r r o r m e s 0036060 s a g e i s n o t p r i n 0036100 t e d ( u n l e s s { v a r 0036120 N L S E T Q G A G } i s { 0036140 l i s p N I L } , s e e b 0036160 e l o w ) . \r \r I f { a r 0036200 g F L A G } = { l i s p I N 0036220 T E R N A L } , t h i s { f 0036240 n E R R O R S E T } i s i 0036260 g n o r e d f o r t h e p 0036300 u r p o s e o f d e c i d i 0036320 n g w h e t h e r o r n o 0036340 t t o b r e a k o r p r 0036360 i n t a m e s s a g e ( s 0036400 e e { P a g e R e f T a g 0036420 W h e n T o B r e a k } ) . 0036440 H o w e v e r , t h e { f n 0036460 E R R O R S E T } i s i n 0036500 e f f e c t f o r t h e 0036520 p u r p o s e o f f l o w 0036540 o f c o n t r o l , i . e . 0036560 , i f a n e r r o r o c 0036600 c u r s , t h i s { f n E 0036620 R R O R S E T } r e t u r n s 0036640 { l i s p N I L } . \r \r I f 0036660 { a r g F L A G } = { l i s 0036700 p N O B R E A K } , n o b 0036720 r e a k w i l l o c c u r , 0036740 e v e n i f t h e t i m 0036760 e c r i t e r i o n f o r 0037000 b r e a k i n g i s m e t 0037020 ( s e e { P a g e R e f T a 0037040 g W h e n T o B r e a k } ) . 0037060 N o t e t h a t { a r g 0037100 F L A G } = { l i s p N O B 0037120 R E A K } w i l l { i t n 0037140 o t } p r e v e n t a b r 0037160 e a k f r o m o c c u r r i 0037200 n g i f t h e e r r o r 0037220 o c c u r s m o r e t h a n 0037240 { v a r H E L P D E P T H } 0037260 f u n c t i o n c a l l s 0037300 b e l o w t h e e r r o r s 0037320 e t , s i n c e { f n B R 0037340 E A K C H E C K } w i l l s 0037360 t o p s e a r c h i n g b e 0037400 f o r e i t r e a c h e s 0037420 t h e { f n E R R O R S E T 0037440 } . T o g u a r a n t e e 0037460 t h a t n o b r e a k o 0037500 c c u r s , t h e u s e r 0037520 w o u l d a l s o e i t h e 0037540 r h a v e t o r e s e t 0037560 { v a r H E L P D E P T H } 0037600 o r { v a r H E L P F L A G 0037620 } ( { P a g e R e f V a r 0037640 H E L P D E P T H } ) . \r } } \r 0037660 \r \r \r { F n D e f { F n N a m 0037700 e E R S E T Q } { F n A r g 0037720 s F O R M } \r { T y p e N L 0037740 A M B D A } \r { T e x t \r P e r 0037760 f o r m s { l i s p ( E R R 0040000 O R S E T ' { a r g F O R M 0040020 } T ) } , e v a l u a t i n 0040040 g { a r g F O R M } a n d 0040060 p r i n t i n g e r r o r 0040100 m e s s a g e s . \r } } \r \r \r \r 0040120 { F n D e f { F n N a m e N 0040140 L S E T Q } { F n A r g s F 0040160 O R M } \r { T y p e N L A M B 0040200 D A } \r { T e x t \r P e r f o r 0040220 m s { l i s p ( E R R O R S 0040240 E T ' { a r g F O R M } N 0040260 I L ) } , e v a l u a t i n g 0040300 { a r g F O R M } w i t h 0040320 o u t p r i n t i n g e r r 0040340 o r m e s s a g e s . \r } } \r 0040360 \r \r { V a r D e f { N a m e 0040400 N L S E T Q G A G } \r { T e x t 0040420 \r I f { v a r N L S E T Q G 0040440 A G } i s { l i s p N I L 0040460 } , e r r o r m e s s a g e 0040500 s w i l l p r i n t , r e 0040520 g a r d l e s s o f t h e 0040540 { a r g F L A G } a r g u m 0040560 e n t o f { f n E R R O R 0040600 S E T } . { v a r N L S E 0040620 T Q G A G } e f f e c t i v e 0040640 l y c h a n g e s a l l { 0040660 f n N L S E T Q } s t o { 0040700 f n E R S E T Q } s . { v 0040720 a r N L S E T Q G A G } i s 0040740 i n i t i a l l y { l i s p 0040760 T } . \r } } \r \r \r \r { B e g i 0041000 n N o t e } \r D a t e : 9 0041020 N O V 1 9 8 1 1 8 5 8 - P 0041040 S T \r F r o m : K A P L A N . 0041060 P A \r S u b j e c t : E R R O 0041100 R , N L S E T Q , a n d F 0041120 N C H E C K \r \r T r a c k i n g 0041140 d o w n a u s e r - b u g 0041160 l e d m e i n t o a t 0041200 h i c k e t o f n o n - f e 0041220 a t u r e s i n t h e e r 0041240 r o r m a c h i n e r y . \r \r 0041260 \r N L S E T Q \r \r F i r s t , 0041300 a s i s w e l l k n o w n 0041320 , N L S E T Q d o e s n o 0041340 t g u a r a n t e e t h a t 0041360 a n e r r o r m e s s a g 0041400 e w o n ' t b e p r i n t 0041420 e d a n d a b r e a k n 0041440 o t h a p p e n . T h e 0041460 r e a s o n i s t h a t i 0041500 t d o e s n ' t c o n s u l 0041520 t t h e f l a g t h a t 0041540 a f f e c t s t h e b e h a 0041560 v i o r i f i t d o e s n 0041600 ' t f i n d i t a f t e r 0041620 s c a n n i n g H E L P D E 0041640 P T H f r a m e s . T h i 0041660 s i s o b v i o u s l y a 0041700 b u g , w h i c h I p r 0041720 o p o s e t o f i x b y 0041740 n o t b o u n d i n g F I N 0041760 D E R S E T i n s i d e B R 0042000 E A K C H E C K b y H E L P 0042020 D E P T H , l e t t i n g t 0042040 h e s e a r c h g o a l l 0042060 t h e w a y t o t h e 0042100 t o p i f n e c e s s a r y 0042120 , t h e n u s i n g t h e 0042140 n u m b e r o f f r a m e 0042160 s s c a n n e d a n d H E 0042200 L P D E P T H o n l y t o 0042220 d e t e r m i n e w h a t s 0042240 h o u l d t h e n h a p p e 0042260 n . \r \r A m u c h m o r e 0042300 e f f i c i e n t i m p l e m 0042320 e n t a t i o n w o u l d b 0042340 e p o s s i b l e i f t h 0042360 e c o m p i l e r f o r E 0042400 R R O R S E T s b o u n d a 0042420 S P E C V A R E R R O R S E 0042440 T . F L G i n t h a t f r 0042460 a m e , s o a s i m p l e 0042500 f r e e - v a r i a b l e l 0042520 o o k u p i n s t e a d o f 0042540 a s t a c k s c a n c a 0042560 n b e u s e d a s a n 0042600 i n i t i a l f i l t e r . 0042620 C a n t h i s b e d o n 0042640 e u n i f o r m l y i n t 0042660 h e v a r i o u s i m p l e 0042700 m e n t a t i o n s ? ? \r \r S e 0042720 c o n d , t h e H E L P D 0042740 E P T H c r i t e r i o n c 0042760 u r r e n t l y s e e m s t 0043000 o c o u n t a l l f r a m 0043020 e s o n t h e s t a c k . 0043040 S i n c e t h e v a l u 0043060 e o f H E L P D E P T H i 0043100 s a h e u r i s t i c s e 0043120 t u p f o r t h e 1 0 0043140 i m p l e m e n t a t i o n , 0043160 i t i s n o t r e a l l y 0043200 a p p r o p r i a t e f o r 0043220 o t h e r i m p l e m e n t 0043240 a t i o n s w h e r e t h e 0043260 n u m b e r o f i n t e r 0043300 n a l f r a m e s o n t h 0043320 e s t a c k d i f f e r s 0043340 w i l d l y , p a r t i c u l 0043360 a r l y w h e n t h e r e 0043400 i s n ' t a b l o c k c o 0043420 m p i l e r . I p r o p o s 0043440 e c h a n g i n g t h i s 0043460 t o c o u n t o n l y R E 0043500 A L F R A M E P ' s . \r \r \r E R 0043520 R O R \r \r E R R O R h a s a 0043540 t h i r d a r g u m e n t , 0043560 N O B R E A K , w h i c h 0043600 i f T c u r r e n t l y m 0043620 e a n s p r i n t o u t t 0043640 h e e r r o r m e s s a g e 0043660 a n d c a l l E R R O R ! 0043700 . T h e b u g i n t h 0043720 i s i s t h a t B R E A K 0043740 C H E C K i s n o t c a l 0043760 l e d t o d e t e r m i n e 0044000 , e . g . , w h e t h e r 0044020 t h i s i s a n e r r o r 0044040 u n d e r a n N L S E T Q 0044060 o r a n E R S E T Q . 0044100 T h u s , a c l i e n t o 0044120 f a f u n c t i o n t h a 0044140 t h a s t h i s k i n d 0044160 o f c a l l t o E R R O R 0044200 c a n n o t s u p p r e s s 0044220 t h e e r r o r m e s s a 0044240 g e o r p r i n t i n g , 0044260 e v e n i f h e i s p 0044300 r e p a r e d t o h a n d l 0044320 e t h e e r r o r s i t u 0044340 a t i o n h i m s e l f . I 0044360 t h i n k t h i s i s a 0044400 l s o a b u g , a n d p 0044420 r o p o s e c h a n g i n g 0044440 E R R O R t o f i r s t c 0044460 a l l B R E A K C H E C K t 0044500 o d e t e r m i n e w h e t 0044520 h e r t h e r e i s a n 0044540 N L S E T Q a b o v e ( o r 0044560 a l t e r n a t i v e l y , 0044600 t o l o o k a t E R R O R 0044620 S E T . F L G ) , a n d i f 0044640 s o , l e t t h e b e h 0044660 a v i o r a p p r o p r i a t 0044700 e t o N L S E T Q p r e v 0044720 a i l . I N o t h e r w 0044740 o r d s , t h e N O B R E A 0044760 K a r g u m e n t t o E R 0045000 R O R w o u l d o p e r a t 0045020 e o n l y i f u n d e r 0045040 a n E R S E T Q . \r \r F N C H 0045060 E C K \r \r T h e r e a s o n 0045100 I g o t i n t o t h i s 0045120 i s t h a t S M A R T A R G 0045140 L I S T c a l l s F N C H E 0045160 C K w i t h a f l a g i 0045200 n d i c a t i n g t h a t t 0045220 h e F N C H E C K e r r o r 0045240 s h o u l d n o t b e s 0045260 u p p r e s s e d . F N C H 0045300 E C K t h e n c a l l s E 0045320 R R O R , w i t h a 3 r d 0045340 a r g u m e n t o f T ( 0045360 N O B R E A K ) j u s t i n 0045400 c a s e n e i t h e r L O 0045420 A D n o r L O A D F R O M 0045440 f r a m e s e x i s t o n 0045460 t h e s t a c k . T h i s 0045500 i s o b v i o u s l y a 0045520 c r o c k . D o e s a n y 0045540 o n e k n o w w h a t ' s 0045560 s o s p e c i a l a b o u t 0045600 L O A D a n d L O A D F R 0045620 O M ? ? \r \r I n m y p a r t 0045640 i c u l a r c a s e , w i t 0045660 h L O A D n o t o n t h 0045700 e s t a c k , e m b e d d i 0045720 n g t h e S M A R T A R G L 0045740 I S T i n a n N L S E T Q 0045760 d i d n o t s u p p r e s 0046000 s t h e e r r o r , b u t 0046020 d i d s u p p r e s s t h 0046040 e u s e r . \r \r \r - - - - - \r 0046060 A r e t h e r e a n y r e 0046100 a s o n a b l e o b j e c t i 0046120 o n s t o m y p r o p o s 0046140 a l t o c h a n g e F I N 0046160 D E R S E T a n d E R R O R 0046200 a s a b o v e ? C a n 0046220 t h e c o m p i l e r g u y 0046240 s i n s t a l l t h e s p 0046260 e c v a r ? A n y h y p o t 0046300 h e s e s a b o u t L O A D 0046320 / L O A D F R O M i n F N C 0046340 H E C K ? \r \r { E n d N o t e 0046360 } \r \r \r \r O c c a s i o n a l l 0046400 y t h e u s e r m a y w 0046420 a n t t o t r e a t c e r 0046440 t a i n t y p e s o f e r 0046460 r o r s d i f f e r e n t l y 0046500 f r o m o t h e r s , e . 0046520 g . , a l w a y s b r e a k 0046540 , n e v e r b r e a k , o 0046560 r p e r h a p s t a k e s 0046600 o m e c o r r e c t i v e a 0046620 c t i o n . T h i s c a n 0046640 b e a c c o m p l i s h e d 0046660 v i a { v a r E R R O R T 0046700 Y P E L S T } : \r \r \r { V a r D 0046720 e f { N a m e E R R O R T Y 0046740 P E L S T } \r { T e x t \r { v a 0046760 r E R R O R T Y P E L S T } 0047000 i s a l i s t o f e l e 0047020 m e n t s , w h e r e e a c 0047040 h e l e m e n t i s o f 0047060 t h e f o r m { l i s p ( 0047100 { a r g N U M } { a r g F 0047120 O R M { s u b 1 } } { e l l 0047140 i p s i s } { a r g F O R M 0047160 { s u b N } } ) } . { a r 0047200 g N U M } i s o n e o f 0047220 t h e e r r o r n u m b e 0047240 r s { i n d e x E r r o r 0047260 n u m b e r s } ( { P a g e R e 0047300 f T e r m E r r o r N u m 0047320 b e r s } ) . D u r i n g 0047340 a n e r r o r , a f t e r 0047360 { i n d e x B R E A K C H E C 0047400 K F N } { f n B R E A K C H 0047420 E C K } h a s b e e n c o 0047440 m p l e t e d , b u t b e f 0047460 o r e a n y o t h e r a c 0047500 t i o n i s t a k e n , { 0047520 v a r E R R O R T Y P E L S T 0047540 } i s s e a r c h e d f o 0047560 r a n e l e m e n t w i t 0047600 h t h e s a m e e r r o r 0047620 n u m b e r a s t h a t 0047640 c a u s i n g t h e e r r o 0047660 r . I f o n e i s f o 0047700 u n d , t h e c o r r e s p 0047720 o n d i n g f o r m s a r e 0047740 e v a l u a t e d , a n d 0047760 i f t h e l a s t o n e 0050000 p r o d u c e s a n o n - { 0050020 l i s p N I L } v a l u e , 0050040 t h i s v a l u e i s s 0050060 u b s t i t u t e d f o r t 0050100 h e o f f e n d e r , a n d 0050120 t h e f u n c t i o n c a 0050140 u s i n g t h e e r r o r 0050160 i s r e e n t e r e d . \r \r N 0050200 o t e : { v a r E R R O R 0050220 T Y P E L S T } i s a c c e 0050240 s s e d a s a s p e c i a 0050260 l v a r i a b l e ( s e e 0050300 { P a g e R e f T e r m S p 0050320 e c i a l V a r i a b l e s } 0050340 ) , s o i t c a n b e 0050360 r e b o u n d i n a f u n 0050400 c t i o n a r g u m e n t l 0050420 i s t o f { f n P R O G } 0050440 f o r m t o c a t c h e 0050460 r r o r s i n a d y n a m 0050500 i c c o n t e x t . \r } } \r \r 0050520 \r { n o t e o f f e n d e r ? 0050540 ? h o w s u b s t i t u t e 0050560 d ? h o w r e e n t e r e 0050600 d ? ( b y E V A L i n g B 0050620 R K E X P ? ? ) } \r \r \r W i t h 0050640 i n { v a r E R R O R T Y P 0050660 E L S T } e n t r i e s , t 0050700 h e f o l l o w i n g v a r 0050720 i a b l e s m a y b e u s 0050740 e f u l : \r \r \r { V a r D e f 0050760 { N a m e E R R O R M E S S } 0051000 \r { T e x t \r { f n C A R } 0051020 i s t h e e r r o r n u m 0051040 b e r , { f n C A D R } t 0051060 h e " o f f e n d e r " , e 0051100 . g . , { l i s p ( 1 0 N 0051120 I L ) } c o r r e s p o n d s 0051140 t o a { l i s p N O N - 0051160 N U M E R I C A R G N I L } 0051200 e r r o r . \r } } \r \r \r { V a 0051220 r D e f { N a m e E R R O R 0051240 P O S } \r { T e x t \r S t a c k 0051260 p o i n t e r t o t h e 0051300 f u n c t i o n i n w h i c 0051320 h t h e e r r o r o c c u 0051340 r r e d , e . g . , { l i s 0051360 p ( S T K N A M E E R R O R 0051400 P O S ) } m i g h t b e { 0051420 f n I P L U S } , { f n R 0051440 P L A C A } , { f n I N F I 0051460 L E } , e t c . \r \r N o t e : 0051500 I f t h e e r r o r i 0051520 s g o i n g t o b e h a 0051540 n d l e d b y a { f n R 0051560 E T F R O M } , { f n R E T 0051600 T O } , o r a { f n R E 0051620 T E V A L } i n t h e { v 0051640 a r E R R O R T Y P E L S T } 0051660 e n t r y , i t p r o b a 0051700 b l y i s a g o o d i d 0051720 e a t o f i r s t r e l e 0051740 a s e t h e s t a c k p o 0051760 i n t e r { v a r E R R O R 0052000 P O S } , e . g . b y p e 0052020 r f o r m i n g { l i s p ( 0052040 R E L S T K E R R O R P O S ) 0052060 } . \r } } \r \r \r { V a r D e f 0052100 { N a m e B R E A K C H K } \r 0052120 { T e x t \r V a l u e o f { 0052140 f n B R E A K C H E C K } , 0052160 i . e . , { l i s p T } m 0052200 e a n s a b r e a k w i l 0052220 l o c c u r , { l i s p N 0052240 I L } m e a n s o n e w i 0052260 l l n o t . T h i s m a 0052300 y b e r e s e t w i t h i 0052320 n t h e { v a r E R R O R 0052340 T Y P E L S T } e n t r y . \r 0052360 } } \r \r \r { V a r D e f { N a 0052400 m e P R I N T M S G } \r { T e 0052420 x t \r I f { l i s p T } , 0052440 m e a n s p r i n t e r r o 0052460 r m e s s a g e , i f { l 0052500 i s p N I L } , d o n ' t 0052520 p r i n t e r r o r m e s s 0052540 a g e , i . e . , c o r r e 0052560 s p o n d s t o s e c o n d 0052600 a r g u m e n t t o { f n 0052620 E R R O R S E T } . T h e 0052640 u s e r c a n f o r c e 0052660 o r s u p p r e s s t h e 0052700 p r i n t i n g o f e r r o 0052720 r m e s s a g e s f o r v 0052740 a r i o u s e r r o r t y p 0052760 e s b y i n c l u d i n g 0053000 o n { v a r E R R O R T Y P 0053020 E L S T } a n e x p r e s s 0053040 i o n w h i c h e x p l i c 0053060 i t l y s e t s { v a r P 0053100 R I N T M S G } . \r } } \r \r \r F 0053120 o r e x a m p l e , p u t t 0053140 i n g \r \r \r { l i s p c o d e \r 0053160 [ 1 0 ( A N D ( N U L L ( 0053200 C A D R E R R O R M E S S ) ) 0053220 \r ( S E L E C 0053240 T Q ( S T K N A M E E R R O 0053260 R P O S ) \r 0053300 ( ( I P L U S 0053320 A D D 1 S U B 1 ) 0 ) \r 0053340 0053360 ( I T I M E S 1 ) \r 0053400 ( P R 0053420 O G N ( S E T Q B R E A K C 0053440 H K T ) N I L ] } \r \r \r o n 0053460 { v a r E R R O R T Y P E L 0053500 S T } w o u l d s p e c i f 0053520 y t h a t w h e n e v e r 0053540 a { l i s p N O N - N U M E 0053560 R I C A R G - N I L } e 0053600 r r o r o c c u r r e d , a 0053620 n d t h e f u n c t i o n 0053640 i n q u e s t i o n w a s 0053660 { f n I P L U S } , { f n 0053700 A D D 1 } , o r { f n S U 0053720 B 1 } , { l i s p 0 } s h 0053740 o u l d b e u s e d f o r 0053760 t h e { l i s p N I L } . 0054000 I f t h e f u n c t i o 0054020 n w a s { f n I T I M E S 0054040 } , { l i s p 1 } s h o u 0054060 l d b e u s e d . O t h 0054100 e r w i s e , a l w a y s b 0054120 r e a k . N o t e t h a t 0054140 t h e l a t t e r c a s e 0054160 i s a c h i e v e d n o t 0054200 b y t h e v a l u e r e 0054220 t u r n e d , b u t b y t 0054240 h e { i t e f f e c t } o 0054260 f t h e e v a l u a t i o n 0054300 , i . e . , s e t t i n g 0054320 { v a r B R E A K C H K } t 0054340 o { l i s p T } . S i m 0054360 i l a r l y , { l i s p ( 1 0054400 6 ( S E T Q B R E A K C H K 0054420 N I L ) ) } w o u l d p r 0054440 e v e n t { l i s p E N D 0054460 O F F I L E } e r r o r s 0054500 f r o m e v e r b r e a k i 0054520 n g . \r \r \r { v a r E R R O R 0054540 T Y P E L S T } i s i n i t 0054560 i a l l y { l i s p ( ( 2 3 0054600 ( S P E L L F I L E ( C A D 0054620 R E R R O R M E S S ) N I L 0054640 N O F I L E S P E L L F L G ) 0054660 ) ) } , w h i c h c a u s e 0054700 s { i n d e x S P E L L F I 0054720 L E F N } { f n S P E L L F 0054740 I L E } t o b e c a l l e 0054760 d i n c a s e o f a { 0055000 l i s p F I L E N O T F O 0055020 U N D } e r r o r ( s e e 0055040 { P a g e R e f F n S P E L 0055060 L F I L E } ) . I f { f n 0055100 S P E L L F I L E } i s s 0055120 u c c e s s f u l , t h e o 0055140 p e r a t i o n w i l l b e 0055160 r e e x e c u t e d w i t h 0055200 t h e n e w ( c o r r e c 0055220 t e d ) f i l e n a m e . \r 0055240 \r \r } { E n d S u b S e c C 0055260 a t c h i n g E r r o r s } \r 0055300 \r \r \0 \0 \0 \0 \0 004 \0 002 \0 ? \0 1 ( D 0055320 E F A U L T F O N T 1 ( G A 0055340 C H A 1 0 ) ( G A C H A 8 0055360 ) ( T E R M I N A L 8 ) ) \0 0055400 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 ? \0 1 ( D E 0055420 F A U L T F O N T 1 ( G A C 0055440 H A 1 0 ) ( G A C H A 8 ) 0055460 ( T E R M I N A L 8 ) ) \0 \n 0055500 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 Z 302 \0 \0 \0 \0 0055520 002 \0 \0 Z 302 \0 001 z 272 0055531