$ 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