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