$ od -c -N 50000 [eris]<LispCore>SOURCES>CL-ERROR!9
0000000 ( D E F I N E - F I L E - I N F
0000020 O 247 R E A D T A B L E " X C
0000040 L " 247 P A C K A G E " I N T
0000060 E R L I S P " ) \r 006 001 ( f i l e
0000100 c r e a t e d " 2 1 - O c t -
0000120 8 6 1 3 : 0 1 : 0 9 " 006 004 {
0000140 e r i s } < l i s p c o r e > s
0000160 o u r c e s > c l - e r r o r .
0000200 \ ; 9 006 001 3 5 3 6 6 \r \r
0000220 | c h a n g e s | |
0000240 t o : | ( f u n c t i o n s
0000260 d e f i n e - p r o c e e d -
0000300 f u n c t i o n ) \r \r
0000320 | p r e v i o u s | | d a t
0000340 e : | " 1 7 - O c t - 8 6 1
0000360 7 : 3 0 : 1 0 " { e r i s } <
0000400 l i s p c o r e > s o u r c e s
0000420 > c l - e r r o r . \ ; 8 ) \r \r
0000440 \r ; C o p y r i g h t ( c )
0000460 1 9 8 6 b y X e r o x C
0000500 o r p o r a t i o n . A l l
0000520 r i g h t s r e s e r v e d
0000540 . \r \r ( p r e t t y c o m p r i
0000560 n t c l - e r r o r c o m s )
0000600 \r \r ( r p a q q 006 002 c l - e r
0000620 r o r c o m s 006 001 \r
0000640 ( ( c o m s ( * | ; ; |
0000660 \r
0000700 " T e m p o r a r y b o o t
0000720 s t r a p p i n g s t u f f .
0000740 A n y t h i n g i n h e r
0000760 e g e t s c h a n g e d o
0001000 n c e C L s t a r t s w o
0001020 r k i n g . " \r
0001040 ) \r
0001060 ( f u n c t i
0001100 o n s c o n d i t i o n - t y
0001120 p e c a s e c o n d i t i o n
0001140 - b l o c k c o n d i t i o n
0001160 - r e t u r n ) ) \r
0001200 ( c o m s ( * | ; ; |
0001220 " I n t e r n a l s t u f f .
0001240 " ) \r
0001260 ( e x p o r t ( v a r i a b
0001300 l e s % c o n d i t i o n - t
0001320 y p e s - r e a l ) ) \r
0001340 ( f u n c t
0001360 i o n s d e f a u l t - p r o
0001400 c e e d - r e p o r t ) \r
0001420 ( f u n c
0001440 t i o n s w i t h - g e n s y
0001460 m s w i t h - e r r - l o o p
0001500 - v a r s s t r i p - k e y w
0001520 o r d s m a k e - f a k e - r
0001540 e p o r t - f u n c t i o n \r
0001560
0001600 m a k e - r e p o r t
0001620 - f u n c t i o n m a k e - e
0001640 n c a p s u l a t i o n n o r
0001660 m a l i z e - s l o t - d e s c
0001700 r i p t i o n s \r
0001720 e
0001740 x t r a c t - c o n d i t i o n
0001760 - b i n d i n g s n o r m a l
0002000 i z e - c o n d i t i o n - c l
0002020 a u s e s \r
0002040 m a s s
0002060 a g e - c a t c h - c o n d i t
0002100 i o n - c l a u s e s s p l i
0002120 t - p r o c e e d - c l a u s e
0002140 s p r o c e e d - c a s e - f
0002160 r o m - c l a u s e \r
0002200
0002220 p r o c e s s - p r o c e e d
0002240 - k e y w o r d s c h e c k -
0002260 * c a s e - s e l e c t o r c
0002300 o l l e c t - c a s e - s e l e
0002320 c t o r s \r
0002340 n o - p
0002360 r o c e e d - t e s t % p r e
0002400 f i x - s y m b o l % s u f f
0002420 i x - s y m b o l p r o c e e
0002440 d - a r g - c o l l e c t o r )
0002460 ) \r ( c o m s
0002500 ( * | ; ; | \r
0002520 " U s e r - v i s i b l
0002540 e f o r m s . T h e s e s
0002560 h o u l d a l l b e e x t
0002600 e r n a l s y m b o l s . A
0002620 n y o t h e r s s h o u l d
0002640 b e i n t e r n a l . " \r
0002660
0002700 ) \r
0002720 ( f u n c t i o n s d e f i n
0002740 e - c o n d i t i o n c l : c
0002760 h e c k - t y p e c l : e t y
0003000 p e c a s e c t y p e c a s e
0003020 c l : e c a s e c l : c c a
0003040 s e \r
0003060 c l : a s s e
0003100 r t h a n d l e r - b i n d
0003120 c o n d i t i o n - b i n d c
0003140 o n d i t i o n - c a s e r e
0003160 a l - c o n d i t i o n - c a s
0003200 e \r
0003220 i g n o r e - e
0003240 r r o r s p r o c e e d - c a
0003260 s e r e a l - p r o c e e d -
0003300 c a s e d e f i n e - p r o c
0003320 e e d - f u n c t i o n c a t
0003340 c h - a b o r t \r
0003360 ) )
0003400 \r ( p r o p f
0003420 i l e t y p e c l - e r r o r
0003440 ) \r ( d e c l a
0003460 r e \ : d o n t e v a l @ l o
0003500 a d d o e v a l @ c o m p i l
0003520 e d o n t c o p y c o m p i
0003540 l e r v a r s ( a d d v a r s
0003560 ( n l a m a ) \r
0003600
*
0003700 ( n l a m l ) \r
0003720
*
0004020 ( l a m a
0004040 ) ) ) ) ) \r \r \r \r 006 004 ( * | ;
0004060 ; | " T e m p o r a r y b o
0004100 o t s t r a p p i n g s t u f
0004120 f . A n y t h i n g i n h
0004140 e r e g e t s c h a n g e d
0004160 o n c e C L s t a r t s
0004200 w o r k i n g . " ) 006 001 \r \r ( d
0004220 e f m a c r o 006 002 c o n d i t
0004240 i o n - t y p e c a s e 006 001 (
0004260 o b j e c t & r e s t c l a
0004300 u s e s ) \r ( l e t \r
0004320 ( ( v a l ( c l : g e n s
0004340 y m ) ) ) \r ( c l : i f
0004360 % c o n d i t i o n - t y p e
0004400 s - r e a l ` ( c l : t y p e
0004420 c a s e , o b j e c t , @ c
0004440 l a u s e s ) \r
0004460 ` ( l e t ( ( , v a l
0004500 , o b j e c t ) ) \r
0004520 ( c o n d
0004540 \r
0004560 , @ ( c l : m a p c a
0004600 r ( f u n c t i o n ( c l :
0004620 l a m b d a \r
0004640
*
0004700 ( c l a u s e ) \r
0004720
*
0004760 ( d e s t r u c
0005000 t u r i n g - b i n d \r
0005020
*
0005060 ( s e l e c t
0005100 o r . b o d y ) \r
0005120
*
0005160 c l a u s e \r
0005200
*
0005240 ( c l :
0005260 i f ( e q s e l e c t o r
0005300 t ) \r
0005320
*
0005360 c l a u s e \r
0005400
*
0005460 ` ( ( c o n d i t i o n - t
0005500 y p e p , v a l ' , s e l e
0005520 c t o r ) \r
0005540
*
0005600 , @ b o
0005620 d y ) ) ) ) ) \r
0005640
0005660 c l a u s e s ) ) ) )
0005700 ) ) \r \r ( d e f m a c r o 006 002
0005720 c o n d i t i o n - b l o c k 006
0005740 001 ( t a g & b o d y f o r
0005760 m s ) ` ( c l : c a t c h '
0006000 , t a g , @ f o r m s ) ) \r \r
0006020 ( d e f m a c r o 006 002 c o n d
0006040 i t i o n - r e t u r n 006 001 (
0006060 t a g & o p t i o n a l r e
0006100 s u l t ) ` ( c l : t h r o w
0006120 ' , t a g , r e s u l t ) )
0006140 \r \r \r \r \r 006 004 ( * | ; ; | "
0006160 I n t e r n a l s t u f f . "
0006200 ) 006 001 \r \r ( * F O L L O W I N
0006220 G D E F I N I T I O N S E X
0006240 P O R T E D ) \r \r \r ( c l : d e
0006260 f c o n s t a n t 006 002 % c o n
0006300 d i t i o n - t y p e s - r e a
0006320 l 006 001 n i l ) \r \r \r \r ( * E
0006340 N D E X P O R T E D D E F I
0006360 N I T I O N S ) \r \r ( d e f m a
0006400 c r o 006 002 d e f a u l t - p r
0006420 o c e e d - r e p o r t 006 001 (
0006440 p r o c e e d - t y p e ) ` (
0006460 g e t , p r o c e e d - t y p
0006500 e ' % d e f a u l t - p r o c
0006520 e e d - r e p o r t \r
0006540
*
0006620 ' d e f a u l t - p r o c e e
0006640 d - r e p o r t e r ) ) \r \r ( d
0006660 e f m a c r o 006 002 w i t h - g
0006700 e n s y m s 006 001 ( v a r s p
0006720 r e f i x & b o d y b o d y
0006740 ) \r ` ( l e t , ( m a p
0006760 c a r v a r s ( f u n c t i
0007000 o n ( c l : l a m b d a ( v
0007020 a r ) \r
0007040
0007060 ` ( , v
0007100 a r ( g e n s y m , p r e f
0007120 i x ) ) ) ) ) , @ b o d y ) )
0007140 \r \r ( d e f m a c r o 006 002 w i
0007160 t h - e r r - l o o p - v a r s
0007200 006 001 ( p r e f i x & b o d y
0007220 b o d y ) ` ( w i t h - g e
0007240 n s y m s ( v a l b l o c k
0007260 - n a m e a g a i n ) \r
0007300
*
0007360 , p r e f i x \r
0007400
*
0007460 , @ b o d y ) ) \r
0007500 \r ( c l : d e f u n 006 002 s t r
0007520 i p - k e y w o r d s 006 001 ( a
0007540 r g s ) ( c l : v a l u e s
0007560 ( 006 002 f o r 006 001 006 002 o l d 006 001
0007600 a r g s 006 002 o n 006 001 a r g
0007620 s 006 002 b y 006 001 c d d r \r
0007640
*
0007700 006 002 w h
0007720 i l e 006 001 ( c l : k e y w o r
0007740 d p ( c l : f i r s t a r g
0007760 s ) ) \r
0010000
*
0010040 006 002 c o l l e c t 006 001 ( l
0010060 i s t ( c l : f i r s t a r
0010100 g s ) \r
0010120
*
0010200 ( c l : s e c o n d a r g s )
0010220 ) ) \r
0010240
0010260 a r g s ) )
0010300 \r \r ( c l : d e f u n 006 002 m a
0010320 k e - f a k e - r e p o r t - f
0010340 u n c t i o n 006 001 ( d a t u m
0010360 b o u n d - v a r & o p t i
0010400 o n a l e n c a p s u l a t i
0010420 o n ) \r ( c l : e t y p e
0010440 c a s e d a t u m ( s t r i
0010460 n g ` ( l a m b d a ( d a t
0010500 u m s t r e a m ) \r
0010520
0010540 ( 006 002
0010560 d e c l a r e 006 001 ( i g n o r
0010600 e d a t u m ) ) \r
0010620
0010640 ( c l :
0010660 w r i t e - s t r i n g , d a
0010700 t u m s t r e a m ) ) ) \r
0010720 ( l i s t ` (
0010740 l a m b d a ( , b o u n d - v
0010760 a r * s t a n d a r d - o u t
0011000 p u t * ) \r
0011020 , ( c l : i f
0011040 ( n u l l e n c a p s u l a
0011060 t i o n ) \r
0011100
0011120 d a t u m \r
0011140
0011160 ` ( l e t , e n c a p s u
0011200 l a t i o n , d a t u m ) ) )
0011220 ) ) ) \r \r ( c l : d e f u n 006
0011240 002 m a k e - r e p o r t - f u n
0011260 c t i o n 006 001 ( d a t u m b
0011300 o u n d - v a r & o p t i o n
0011320 a l t y p e - n a m e ) \r
0011340 ( c l : e t y p e c a s e d
0011360 a t u m ( s t r i n g ` ( l
0011400 a m b d a ( d a t u m s t r
0011420 e a m ) \r
0011440
0011460 ( 006 002 d e c l a r
0011500 e 006 001 ( i g n o r e d a t u
0011520 m ) ) \r
0011540
0011560 ( c l : w r i t e -
0011600 s t r i n g , d a t u m s t
0011620 r e a m ) ) ) \r
0011640 ( l i s t ` ( l a m b d a
0011660 ( , b o u n d - v a r * s t
0011700 a n d a r d - o u t p u t * ) \r
0011720
0011740 , ( c l : i f t y p e -
0011760 n a m e ` ( 006 002 w i t h 006 001
0012000 , t y p e - n a m e , b o u n
0012020 d - v a r , d a t u m ) d a
0012040 t u m ) ) ) ) ) \r \r ( c l : d e
0012060 f u n 006 002 m a k e - e n c a p
0012100 s u l a t i o n 006 001 ( c o n d
0012120 i t i o n - t y p e s l o t -
0012140 n a m e s ) \r ( m a p c a
0012160 r ( c l : r e m o v e ' - -
0012200 d u m m y - s l o t - - s l o
0012220 t - n a m e s ) \r
0012240 ( f u n c t i o n ( l a
0012260 m b d a ( s l o t ) \r
0012300
0012320 ` ( , s l o t ( , ( % s u
0012340 f f i x - s y m b o l c o n d
0012360 i t i o n - t y p e ( c l : c
0012400 o n c a t e n a t e ' s t r i
0012420 n g " - " \r
0012440
*
0012520 ( c l
0012540 : s y m b o l - n a m e s l o
0012560 t ) ) ) \r
0012600
0012620 c o n d i
0012640 t i o n ) ) ) ) ) ) \r \r ( c l :
0012660 d e f u n 006 002 n o r m a l i z
0012700 e - s l o t - d e s c r i p t i
0012720 o n s 006 001 ( s l o t s ) \r
0012740 ( m a p c a r s l o t s (
0012760 f u n c t i o n ( c l : l a m
0013000 b d a ( s l o t ) \r
0013020
0013040 ( 006 002
0013060 | i f | 006 001 ( l i s t p s l
0013100 o t ) \r
0013120
0013140 006 002 | t h e
0013160 n | 006 001 ( 006 002 | i f | 006 001 (
0013200 e q u a l ( l e n g t h s l
0013220 o t ) \r
0013240
*
0013300 1 )
0013320 \r
0013340
*
0013400 006 002 | t h e n | 006 001 ( a p
0013420 p e n d s l o t ' ( n i l
0013440 : r e a d o n l y t ) ) \r
0013460
*
0013520 006 002 |
0013540 e l s e | 006 001 ` ( , ( c a r
0013560 s l o t ) , ( c a d r s l o
0013600 t ) : r e a d - o n l y t \r
0013620
*
0013700 , @
0013720 ( c d d r s l o t ) ) ) \r
0013740
*
0014000 006 002 | e l s e | 006 001 ` ( ,
0014020 s l o t n i l : r e a d - o
0014040 n l y t ) ) ) ) ) ) \r \r ( c l
0014060 : d e f u n 006 002 e x t r a c t
0014100 - c o n d i t i o n - b i n d i
0014120 n g s 006 001 ( c l a u s e s ) \r
0014140 ( m a p c a r c l a u s
0014160 e s ( f u n c t i o n ( c l
0014200 : l a m b d a ( c l a u s e )
0014220 \r
0014240
0014260 ` ( c o n s ' , ( c
0014300 l : f i r s t c l a u s e )
0014320 , ( c l : s e c o n d c l a u
0014340 s e ) ) ) ) ) ) \r \r ( c l : d e
0014360 f u n 006 002 n o r m a l i z e -
0014400 c o n d i t i o n - c l a u s e
0014420 s 006 001 ( c l a u s e s ) \r
0014440 ( m a p c o n c c l a u s e
0014460 s ( f u n c t i o n ( c l :
0014500 l a m b d a \r
0014520
0014540 ( c l a u s e ) \r
0014560
0014600 ( l
0014620 e t ( ( c o n d i t i o n s
0014640 ( c l : f i r s t c l a u s e
0014660 ) ) ) \r
0014700
0014720 ( c l : t y p e
0014740 c a s e \r
0014760
0015000 c o n d i t
0015020 i o n s \r
0015040
0015060 ( l i s t
0015100 ( c l : i f ( e q ( c l : f
0015120 i r s t c o n d i t i o n s )
0015140 \r
0015160
*
0015220 ' q u o t e ) \r
0015240
*
0015320 ( c l : e r r o r \r
0015340
*
0015420 " B a d c o n d i t
0015440 i o n s p e c ~ s . S h o
0015460 u l d b e u n q u o t e d .
0015500 " \r
0015520
*
0015560 c o n d
0015600 i t i o n s ) \r
0015620
*
0015660 ( m a p c a
0015700 r c o n d i t i o n s \r
0015720
*
0016000 ( f u n c t i o n
0016020 ( c l : l a m b d a \r
0016040
*
0016120 (
0016140 c ) \r
0016160
*
0016240 ( c l : i f ( c
0016260 l : s y m b o l p c ) \r
0016300
*
0016400 ( c o n s c
0016420 ( c d r c l a u s e ) ) \r
0016440
*
0016540 ( c l : e r r
0016560 o r \r
0016600
0016620 " B a
0016640 d c o n d i t i o n s p e c
0016660 ~ s . S h o u l d b e l
0016700 i s t o f u n q u o t e d
0016720 s y m b o l s . " \r
0016740
*
0017040 c o n
0017060 d i t i o n s ) ) ) ) ) ) ) \r
0017100
*
0017140 ( c l : s y m b o l (
0017160 l i s t c l a u s e ) ) \r
0017200
*
0017240 ( t ( c l : e r r o r
0017260 \r
0017300
0017320 " B a d c o
0017340 n d i t i o n s p e c ~ s .
0017360 S h o u l d b e s y m b o
0017400 l o r l i s t o f s y m
0017420 b o l s . " \r
0017440
*
0017500 c o n d i t i o n
0017520 s ) ) ) ) ) ) ) ) \r \r ( c l : d
0017540 e f u n 006 002 m a s s a g e - c
0017560 a t c h - c o n d i t i o n - c
0017600 l a u s e s 006 001 ( c l a u s e
0017620 s i n i t - v a l u e ) \r
0017640 ( m a p c a r c l a u s e s
0017660 ( f u n c t i o n ( c l : l
0017700 a m b d a \r
0017720
0017740 ( c l a u s e ) \r
0017760
0020000 ( d e s t
0020020 r u c t u r i n g - b i n d \r
0020040
0020060 ( s
0020100 e l e c t o r b v l . f o
0020120 r m s ) \r
0020140
0020160 c l a u s e \r
0020200
0020220 ( c l : i f
0020240 ( n u l l b v l ) \r
0020260
*
0020320 ( c o n s s e l e c t o r
0020340 f o r m s ) \r
0020360
0020400 ( l
0020420 i s t s e l e c t o r ` ( l
0020440 e t ( , ( l i s t ( c a r
0020460 b v l ) \r
0020500
*
0020560 i n i t - v a l
0020600 u e ) , @ ( c d r b v l ) )
0020620 \r
0020640
*
0020700 , @ f o
0020720 r m s ) ) ) ) ) ) ) ) \r \r ( c l
0020740 : d e f u n 006 002 s p l i t - p
0020760 r o c e e d - c l a u s e s 006 001
0021000 ( c l a u s e s t a g ) \r
0021020 ( l e t \r ( c a s e
0021040 s b o d i e s ) \r ( 006
0021060 002 | f o r | 006 001 c l a u s e
0021100 006 002 | i n | 006 001 c l a u s e s
0021120 006 002 | a s | 006 001 s e l e c t
0021140 o r 006 002 | f r o m | 006 001 0 \r
0021160 006 002 | d o | 006 001
0021200 ( d e s t r u c t u r i n g - b
0021220 i n d \r
0021240 ( n a m e v a r s ) \r
0021260 c l a u s e
0021300 \r ( c
0021320 l : m u l t i p l e - v a l u e
0021340 - b i n d \r
0021360 ( t e s t r e p o r t
0021400 t a i l ) \r
0021420 ( p r o c e s s - p r
0021440 o c e e d - k e y w o r d s n
0021460 a m e ( c d d r c l a u s e
0021500 ) ) \r
0021520 ( 006 002 | i f | 006 001 ( n u l l
0021540 n a m e ) \r
0021560 006 002 | t h e n
0021600 | 006 001 ( c l : u n l e s s t
0021620 e s t ( c l : s e t f t e s
0021640 t ' t r u e ) ) \r
0021660
0021700 ( c l : u n l e s s r e p
0021720 o r t ( c l : e r r o r \r
0021740
*
0022000 "
0022020 U n n a m e d p r o c e e d
0022040 c a s e s m u s t h a v e
0022060 a r e p o r t m e t h o d :
0022100 ~ S " \r
0022120
*
0022160 c l a u s e ) ) \r
0022200
0022220 006 002 | e l s e | 006 001 ( c l : u
0022240 n l e s s t e s t ( 006 002 | i
0022260 f | 006 001 ( n o t ( g e t n
0022300 a m e ' % d e f a u l t - p r
0022320 o c e e d - t e s t ) ) \r
0022340
*
0022400 006 002 | t h e n |
0022420 006 001 ( c l : w a r n \r
0022440
*
0022500 " N o t e s t
0022520 s p e c i f i e d f o r p
0022540 r o c e e d t y p e ~ A :
0022560 m a y b e u n d e f i n e d
0022600 . " \r
0022620
*
0022660 n a m
0022700 e ) ) ) \r
0022720 ( c l : u
0022740 n l e s s r e p o r t ( c l
0022760 : s e t f r e p o r t \r
0023000
*
0023040 ` ( c l
0023060 : l a m b d a ( p c s t r e
0023100 a m ) \r
0023120
*
0023160 ( c l : f
0023200 u n c a l l ( d e f a u l t -
0023220 p r o c e e d - r e p o r t \r
0023240
*
0023340 ' , n a m e ) \r
0023360
*
0023440 p c s t r e
0023460 a m ) ) ) ) ) \r
0023500 ( c l : p u s h `
0023520 ( m a k e - p r o c e e d - c a
0023540 s e : n a m e ' , n a m e
0023560 : t a g , t a g : s e l e c
0023600 t o r , s e l e c t o r : t
0023620 e s t \r
0023640
0023660 , ( a n d t e s t ` (
0023700 f u n c t i o n , t e s t ) )
0023720 : r e p o r t ( f u n c t i
0023740 o n , r e p o r t ) ) c a s
0023760 e s ) \r
0024000 ( c l : p u s h ` ( , s e
0024020 l e c t o r ( f u n c t i o n
0024040 ( c l : l a m b d a , v a r
0024060 s , @ t a i l ) ) ) b o d i
0024100 e s ) ) ) ) \r ( c l : v
0024120 a l u e s ( r e v e r s e c
0024140 a s e s ) \r
0024160 ( r e v e r s e b o d i e s
0024200 ) ) ) ) \r \r ( c l : d e f u n
0024220 006 002 p r o c e e d - c a s e - f
0024240 r o m - c l a u s e 006 001 ( c l
0024260 a u s e t a g d u m m y ) \r
0024300 ( d e s t r u c t u r i n
0024320 g - b i n d \r ( n a m e
0024340 v a r s . t a i l ) \r
0024360 c l a u s e \r ( c l
0024400 : m u l t i p l e - v a l u e -
0024420 b i n d \r ( t e s t
0024440 r e p o r t b o d y ) \r
0024460 ( p r o c e s s - p r o c e
0024500 e d - k e y w o r d s n a m e
0024520 t a i l ) \r ( 006 002 |
0024540 i f | 006 001 ( n u l l n a m e
0024560 ) \r 006 002 | t h
0024600 e n | 006 001 ( c l : u n l e s s
0024620 t e s t ( c l : s e t f t
0024640 e s t ' t r u e ) ) \r
0024660 ( c l : u
0024700 n l e s s r e p o r t ( c l
0024720 : e r r o r " U n n a m e d
0024740 p r o c e e d c a s e s m u
0024760 s t h a v e a r e p o r t
0025000 m e t h o d : ~ S " \r
0025020
*
0025060 c l a u s e ) ) \r
0025100 006 002 | e l s e | 006 001
0025120 ( c l : u n l e s s t e s t
0025140 ( 006 002 | i f | 006 001 ( n o t
0025160 ( g e t n a m e ' % d e f a
0025200 u l t - p r o c e e d - t e s t
0025220 ) ) \r
0025240
0025260 006 002 | t h e n | 006 001
0025300 ( c l : w a r n \r
0025320
*
0025360 " N o t e s t s p
0025400 e c i f i e d f o r p r o c
0025420 e e d t y p e ~ A : m a y
0025440 b e u n d e f i n e d . "
0025460 \r
0025500
*
0025540 n a m e ) ) ) \r
0025560 ( c l : u n l e s s
0025600 r e p o r t ( c l : s e t f
0025620 r e p o r t ` ( c l : l a m
0025640 b d a ( p c s t r e a m ) \r
0025660
*
0025740 ( c l : f u n c a
0025760 l l ( d e f a u l t - p r o c
0026000 e e d - r e p o r t \r
0026020
*
0026100 '
0026120 , n a m e ) \r
0026140
*
0026220 p c s t r e a m ) )
0026240 ) ) ) \r ` ( m a k e -
0026260 r e a l - p r o c e e d - c a s
0026300 e : n a m e ' , n a m e :
0026320 t a g , t a g : c o n t i n
0026340 u a t i o n \r
0026360 ( f u n c t i o n ( c
0026400 l : l a m b d a ( & o p t i o
0026420 n a l , @ ( o r v a r s (
0026440 l i s t d u m m y ) ) ) \r
0026460
0026500 , @ b o
0026520 d y ) ) \r
0026540 : t e s t \r
0026560 , ( a n d t e s t
0026600 ` ( f u n c t i o n , t e s t
0026620 ) ) : r e p o r t ( f u n c
0026640 t i o n , r e p o r t ) ) ) )
0026660 ) \r \r ( c l : d e f u n 006 002 p
0026700 r o c e s s - p r o c e e d - k
0026720 e y w o r d s 006 001 ( n a m e
0026740 a r g ) \r ( l e t ( t e
0026760 s t r e p o r t ) \r
0027000 ( c l : m u l t i p l e -
0027020 v a l u e - b i n d \r
0027040 ( k e y s t a i l ) \r
0027060 ( s t r i p -
0027100 k e y w o r d s a r g ) \r
0027120 ( 006 002 | f o r | 006
0027140 001 p a i r 006 002 | i n | 006 001
0027160 k e y s \r
0027200 006 002 | d o | 006 001 ( d e s t r
0027220 u c t u r i n g - b i n d ( k
0027240 e y v a l u e ) \r
0027260
0027300 p a i r \r
0027320 (
0027340 c a s e k e y ( : t e s t
0027360 ( c l : i f t e s t ( c l :
0027400 e r r o r \r
0027420
*
0027460 " D u p l i c a
0027500 t e t e s t f o r m s p e
0027520 c i f i e d f o r p r o c e
0027540 e d t y p e ~ S . " \r
0027560
*
0027640 n a m e ) )
0027660 \r
0027700
0027720 ( c l : s e
0027740 t f t e s t v a l u e ) ) \r
0027760
0030000 ( :
0030020 c o n d i t i o n ( c l : i f
0030040 t e s t ( c l : e r r o r
0030060 \r
0030100
*
0030140 " D u p l i c a t e t e s
0030160 t f o r m s p e c i f i e d
0030200 f o r p r o c e e d t y p
0030220 e ~ S . " \r
0030240
*
0030320 n a m e ) ) \r
0030340
*
0030400 ( c l : s e t f t e s t `
0030420 ( c l : l a m b d a ( c ) \r
0030440
*
0030520 ( c o n d i
0030540 t i o n - t y p e p c ' , v
0030560 a l u e ) ) ) ) \r
0030600
0030620 ( : r e p o r t -
0030640 f u n c t i o n ( c l : i f
0030660 r e p o r t ( c l : e r r o r
0030700 \r
0030720
*
0030760 " D u p l i c a t e r e p o
0031000 r t f o r m s p e c i f i e
0031020 d f o r p r o c e e d t y
0031040 p e ~ S . " \r
0031060
*
0031140 n a
0031160 m e ) ) \r
0031200
0031220 ( c l : s e
0031240 t f r e p o r t v a l u e )
0031260 ) \r
0031300
0031320 ( : r e p o r t ( c l : i f
0031340 r e p o r t ( c l : e r r o r
0031360 \r
0031400
*
0031440 " D u p l i c a t e r e p o
0031460 r t f o r m s p e c i f i e
0031500 d f o r p r o c e e d t y
0031520 p e ~ S . " \r
0031540
*
0031620 n a m e ) ) \r
0031640
*
0031700 ( c l : s e t f r e p o r t
0031720 ( m a k e - r e p o r t - f u
0031740 n c t i o n v a l u e ' p r
0031760 o c e e d - c a s e ) ) ) \r
0032000
0032020 ( o t h
0032040 e r w i s e ( c l : c e r r o
0032060 r " I g n o r e k e y / v a
0032100 l u e p a i r " \r
0032120
*
0032160 " I l l e
0032200 g a l k e y w o r d ~ S i
0032220 n p r o c e e d c a s e ~
0032240 S . " k e y n a m e ) ) ) )
0032260 \r
0032300 ) \r ( c l :
0032320 v a l u e s t e s t r e p o
0032340 r t t a i l ) ) ) ) \r \r ( c l
0032360 : d e f u n 006 002 c h e c k - *
0032400 c a s e - s e l e c t o r 006 001
0032420 ( s e l e c t o r n a m e )
0032440 ( c l : i f ( o r ( e q s
0032460 e l e c t o r ' t ) \r
0032500
*
0032560 ( e q s e l e c t
0032600 o r ' o t h e r w i s e ) ) \r
0032620
*
0032700 ( c l : e r r o r
0032720 " ~ A n o t a l l o w e d
0032740 i n t h e ~ A f o r m . "
0032760 \r
0033000
*
0033040 s
0033060 e l e c t o r n a m e ) \r
0033100
*
0033160 s e l e c t o r ) ) \r \r
0033200 ( c l : d e f u n 006 002 c o l l
0033220 e c t - c a s e - s e l e c t o
0033240 r s 006 001 ( c l a u s e s n a
0033260 m e ) \r ( m a p c o n c
0033300 c l a u s e s ( f u n c t i o
0033320 n ( c l : l a m b d a ( c l
0033340 a u s e ) \r
0033360
0033400 ( 006 002 | i
0033420 f | 006 001 ( a n d ( c l : c o
0033440 n s p ( c a r c l a u s e )
0033460 ) \r
0033500
*
0033540 ( f m e m b n a m e ' (
0033560 c l : e c a s e c l : c c a s
0033600 e ) ) ) \r
0033620
0033640 006 002
0033660 | t h e n | 006 001 ( c l : c o p
0033700 y - l i s t ( c a r c l a u
0033720 s e ) ) \r
0033740
0033760 006 002 | e
0034000 l s e | 006 001 ( l i s t ( c h
0034020 e c k - * c a s e - s e l e c t
0034040 o r ( c a r c l a u s e ) \r
0034060
*
0034140 n a m e )
0034160 ) ) ) ) ) ) \r \r ( c l : d e f u
0034200 n 006 002 n o - p r o c e e d - t
0034220 e s t 006 001 ( n a m e & a u x
0034240 o n c e ) \r ( p r o c e
0034260 e d - c a s e ( h a n d l e r
0034300 - b i n d ( ( n o - p r o c e
0034320 e d - t e s t ( f u n c t i o
0034340 n ( c l : l a m b d a \r
0034360
*
0034440 ( c ) \r
0034460
*
0034540 ( c l : w h e
0034560 n ( e q ( n o - p r o c e e
0034600 d - t e s t - n a m e c ) \r
0034620
*
0034720 n a m e ) \r
0034740
*
0035040 ( c l : i f o n c e ( c l
0035060 : t h r o w ' \r
0035100
*
0035200 s k i
0035220 p - p r o c e e d - c a s e \r
0035240
*
0035360 n i l ) \r
0035400
*
0035500 ( c l : s e t f o n
0035520 c e t ) ) ) ) ) ) ) \r
0035540
0035560 ( c l : e r r o r ' n
0035600 o - p r o c e e d - t e s t :
0035620 n a m e n a m e ) ) \r
0035640 ( n i l n i l :
0035660 r e p o r t " U s e F A L S
0035700 E f o r t h e t e s t "
0035720 : c o n d i t i o n n o - p r
0035740 o c e e d - t e s t ( f u n c
0035760 t i o n f a l s e ) ) \r
0036000 ( p r o c e e d
0036020 n i l : r e p o r t " M a k
0036040 e T R U E t h e d e f a u
0036060 l t t e s t " : c o n d i t
0036100 i o n n o - p r o c e e d - t
0036120 e s t \r
0036140 ( c l : s e t f ( d
0036160 e f a u l t - p r o c e e d - t
0036200 e s t n a m e ) \r
0036220
0036240 ( f u n c t i o n t r u e
0036260 ) ) ) ) ) \r \r ( c l : d e f u n
0036300 006 002 % p r e f i x - s y m b o
0036320 l 006 001 ( p r e f i x c l : s
0036340 y m b o l ) ( c l : i n t e r
0036360 n ( c l : c o n c a t e n a t
0036400 e ' s t r i n g p r e f i x
0036420 ( c l : s y m b o l - n a m e
0036440 \r
0036460
*
0036560 c l : s y m b o
0036600 l ) ) \r
0036620
*
0036660 ( c l : s y m b o
0036700 l - p a c k a g e c l : s y m
0036720 b o l ) ) ) \r \r ( c l : d e f u
0036740 n 006 002 % s u f f i x - s y m b
0036760 o l 006 001 ( c l : s y m b o l
0037000 s u f f i x ) ( c l : i n t e
0037020 r n ( c l : c o n c a t e n a
0037040 t e ' s t r i n g ( c l : s
0037060 y m b o l - n a m e \r
0037100
*
0037220 c l : s y m b o l ) \r
0037240
*
0037320 s u f f i
0037340 x ) \r
0037360
*
0037420 ( c l : s y m b o l
0037440 - p a c k a g e c l : s y m b
0037460 o l ) ) ) \r \r ( d e f m a c r o
0037500 006 002 p r o c e e d - a r g - c
0037520 o l l e c t o r 006 001 ( n a m e
0037540 ) " F u n c t i o n t h a t
0037560 c o l l e c t s u s e r - s
0037600 p e c i f i e d o p t i o n a
0037620 l a r g s ( e x c l u d i n
0037640 g t h e c o n d i t i o n )
0037660 f o r a n a m e d p r o
0037700 c e e d c a s e . " \r `
0037720 ( g e t , n a m e ' % p r o
0037740 c e e d - a r g - c o l l e c t
0037760 o r ) ) \r \r \r \r \r 006 004 ( * | ;
0040000 ; | " U s e r - v i s i b l e
0040020 f o r m s . T h e s e s h
0040040 o u l d a l l b e e x t e
0040060 r n a l s y m b o l s . A n
0040100 y o t h e r s s h o u l d
0040120 b e i n t e r n a l . " ) 006 001
0040140 \r \r ( d e f d e f i n e r 006 002
0040160 d e f i n e - c o n d i t i o n
0040200 006 001 \r s t r u c t u r e s
0040220 \r ( n a m e p a r e n t
0040240 - t y p e & r e s t a r g s
0040260 ) \r " D e f i n e s a
0040300 n e w c o n d i t i o n t y
0040320 p e " \r ( c l : f l e t \r
0040340 ( ( e x t r a c t - s l
0040360 o t - n a m e ( x ) \r
0040400 ( s l o t - n a
0040420 m e x ) ) ) \r ( l e t
0040440 \r ( ( c l a s s - o p
0040460 t i o n s ` ( , @ ( c l : i f
0040500 % c o n d i t i o n - t y p e
0040520 s - r e a l ' ( ( : p r i n t
0040540 - f u n c t i o n % p r i n t
0040560 - c o n d i t i o n ) ) \r
0040600
0040620 ' ( (
0040640 : t y p e l i s t ) \r
0040660
0040700 : n
0040720 a m e d ) ) ( : c o n s t r u
0040740 c t o r , ( % p r e f i x - s
0040760 y m b o l " % M A K E - " n
0041000 a m e ) ) \r
0041020
0041040 ( : c o p i e r n i l )
0041060 \r
0041100 ( :
0041120 p r e d i c a t e n i l ) ) )
0041140 \r r e p o r t e r
0041160 h a n d l e r e n c a p s u l
0041200 a t i o n ) \r ( c l :
0041220 m u l t i p l e - v a l u e - b
0041240 i n d \r ( k e y s
0041260 s l o t - d e s c r i p t i o n
0041300 s ) \r ( s t r i p -
0041320 k e y w o r d s a r g s ) \r
0041340 ( c l : s e t f s l
0041360 o t - d e s c r i p t i o n s
0041400 ( n o r m a l i z e - s l o t -
0041420 d e s c r i p t i o n s s l o
0041440 t - d e s c r i p t i o n s ) )
0041460 \r ( a n d ( n e q
0041500 p a r e n t - t y p e n a m
0041520 e ) \r ( l
0041540 e t * ( ( a l l - s u p e r -
0041560 s l o t s ( s l o t - l i s t
0041600 p a r e n t - t y p e ) ) \r
0041620
0041640 ( r e d e f i n e d - s l o t
0041660 s ( 006 002 | f o r | 006 001 s l o
0041700 t 006 002 | i n | 006 001 s l o t -
0041720 d e s c r i p t i o n s \r
0041740
*
0042000 006 002 | w h e n | 006 001 ( c
0042020 l : m e m b e r ( c a r s l
0042040 o t ) \r
0042060
*
0042120 a l l - s u p e
0042140 r - s l o t s : k e y ( f u
0042160 n c t i o n e x t r a c t - s
0042200 l o t - n a m e ) \r
0042220
*
0042260 )
0042300 006 002 | c o l l e c t | 006 001 s l
0042320 o t ) ) ) \r
0042340 ( c l : p u s h
0042360 ( l i s t * : i n c l u d e
0042400 p a r e n t - t y p e r e d e
0042420 f i n e d - s l o t s ) \r
0042440
0042460 c l a s s - o p t i o
0042500 n s ) \r
0042520 ( c l : s e t f s l
0042540 o t - d e s c r i p t i o n s
0042560 ( 006 002 | f o r | 006 001 s l o t
0042600 006 002 | i n | 006 001 s l o t - d e
0042620 s c r i p t i o n s \r
0042640
*
0042700 006 002 | u n l
0042720 e s s | 006 001 ( c l : m e m b e
0042740 r s l o t r e d e f i n e d
0042760 - s l o t s ) 006 002 | c o l l e
0043000 c t | 006 001 \r
0043020
*
0043120 s
0043140 l o t ) ) ) ) \r ( c
0043160 l : u n l e s s ( a n d n i
0043200 l % c o n d i t i o n - t y p
0043220 e s - r e a l ) \r
0043240 ( c l : s e t f e
0043260 n c a p s u l a t i o n ( m a
0043300 k e - e n c a p s u l a t i o n
0043320 n a m e ( n c o n c ( m a
0043340 p c a r ( s l o t - l i s t
0043360 p a r e n t - t y p e ) \r
0043400
*
0043500 ( f u n c t i o
0043520 n \r
0043540
*
0043620 e
0043640 x t r a c t - s l o t - n a m e
0043660 ) ) \r
0043700
*
0043760 ( m a p c a r s
0044000 l o t - d e s c r i p t i o n s
0044020 \r
0044040
*
0044120 ( f u n
0044140 c t i o n \r
0044160
*
0044260 e x t r a c t - s l o t -
0044300 n a m e ) ) ) ) ) ) \r
0044320 ( 006 002 | f o r | 006 001 p a i r
0044340 006 002 | i n | 006 001 k e y s \r
0044360 006 002 | d o | 006 001
0044400 \r ( d e s t r
0044420 u c t u r i n g - b i n d \r
0044440 ( k e y v a l
0044460 u e ) \r p a
0044500 i r \r ( c a
0044520 s e k e y ( : c o n c - n a
0044540 m e ( c l : p u s h p a i r
0044560 c l a s s - o p t i o n s ) )
0044600 \r
0044620 ( : r e p o r t - f u n c t i
0044640 o n ( 006 002 | i f | 006 001 r e p
0044660 o r t e r \r
0044700
0044720 006 002 | t
0044740 h e n | 006 001 ( c l : e r r o r
0044760 " R e p o r t f u n c t i o
0045000 n a l r e a d y s p e c i f
0045020 i e d f o r ~ S . " \r
0045040
*
0045120 n a m e ) \r
0045140
0045160 006 002 | e
0045200 l s e | 006 001 ( c l : s e t f
0045220 r e p o r t e r v a l u e ) )
0045240 ) \r
0045260 ( : r e p o r t ( 006 002 | i
0045300 f | 006 001 r e p o r t e r \r
0045320
0045340 006 002 | t h
0045360 e n | 006 001 ( c l : e r r o r
0045400 " R e p o r t f u n c t i o n
0045420 a l r e a d y s p e c i f i
0045440 e d f o r ~ S . " n a m e
0045460 ) \r
0045500 006 002 |
0045520 e l s e | 006 001 ( c l : s e t f
0045540 r e p o r t e r ( c l : i f
0045560 ( a n d n i l % c o n d i
0045600 t i o n - t y p e s - r e a l )
0045620 \r
0045640
*
0045700 ( m a k
0045720 e - r e p o r t - f u n c t i o
0045740 n v a l u e ' c o n d i t i
0045760 o n \r
0046000
*
0046060 n a m e ) \r
0046100
*
0046160 ( m a k e - f a k
0046200 e - r e p o r t - f u n c t i o
0046220 n v a l u e \r
0046240
*
0046320 ' c o n d i
0046340 t i o n e n c a p s u l a t i
0046360 o n ) ) ) ) ) \r
0046400 ( : h a n d l e
0046420 r - f u n c t i o n ( 006 002 i f
0046440 006 001 h a n d l e r \r
0046460
*
0046520 006 002 t h e n 006 001 ( c l : e
0046540 r r o r " H a n d l e r a l
0046560 r e a d y s p e c i f i e d
0046600 f o r ~ S . " n a m e ) \r
0046620
*
0046660 006 002 e l s e 006 001 ( c l
0046700 : s e t f h a n d l e r v a
0046720 l u e ) ) ) \r
0046740 ( : h a n d l e
0046760 ( 006 002 i f 006 001 h a n d l e r \r
0047000
0047020 006 002 t
0047040 h e n 006 001 ( c l : e r r o r
0047060 " H a n d l e r a l r e a d y
0047100 s p e c i f i e d f o r ~
0047120 S . " n a m e ) \r
0047140
0047160 006 002 e l s e 006 001 ( c
0047200 l : s e t f h a n d l e r `
0047220 ( l a m b d a ( c o n d i t i
0047240 o n ) \r
0047260
*
0047320 , ( c l : i f
0047340 ( n u l l e n c a p s u l a t
0047360 i o n ) \r
0047400
*
0047460 v a l u e \r
0047500
*
0047560 ` ( l e t , e n c a p s
0047600 u l a t i o n , v a l u e ) )
0047620 ) ) ) ) \r
0047640 ( o t h e r w i s e
0047660 ( c l : c e r r o r " S k i p
0047700 k e y - v a l u e p a i r "
0047720 " I l l e g a l k e y w o r
0047740 d ~ S i n ~ S . " k e y
0047760 \r
0050000
0050020 ' d e f i n e - c o n d i
0050040 t i o n ) ) ) ) ) \r
0050060 ` ( p r o g n ( d e f s t r u
0050100 c t ( 006 002 ( \ \ \ , n a m e
0050120 ) 006 001 , @ c l a s s - o p t i
0050140 o n s ) , @ s l o t - d e s c
0050160 r i p t i o n s ) \r \r
0050200 , @ ( c l :
0050220 i f ( n e q n a m e p a r
0050240 e n t - t y p e ) \r
0050260
0050300 ` ( ( f i x - i n h e r i t a
0050320 n c e - l i n k s ' , n a m e
0050340 ' , p a r e n t - t y p e ) )
0050360 ) \r
0050400 , @ ( c l : i f ( c l : c o n
0050420 s p h a n d l e r ) \r
0050440
0050460 ( l e t ( ( h a n d l e
0050500 r - n a m e ( % s u f f i x -
0050520 s y m b o l n a m e " d e
0050540 f a u l t h a n d l e r " ) )
0050560 ) \r
0050600 ( p
0050620 r o g 1 ` ( ( c l : s e t f
0050640 ( c l : s y m b o l - f u n c t
0050660 i o n ' , h a n d l e r - n a
0050700 m e ) \r
0050720
*
0050760 ( f u n c t i o n , h a n d l
0051000 e r ) ) ) ( s e t q h a n d
0051020 l e r h a n d l e r - n a m e
0051040 ) ) ) ) \r
0051060 ( c l : s e t f ( c o n
0051100 d i t i o n - h a n d l e r '
0051120 , n a m e ) \r
0051140 , ( a n
0051160 d h a n d l e r ` ( f u n c
0051200 t i o n , h a n d l e r ) ) )
0051220 \r ,
0051240 @ ( c l : i f ( c l : c o n s
0051260 p r e p o r t e r ) \r
0051300
0051320 ( l e t ( ( r e p o r t
0051340 e r - n a m e ( % s u f f i x
0051360 - s y m b o l n a m e " r
0051400 e p o r t m e t h o d " ) ) )
0051420 \r
0051440 ( p r
0051460 o g 1 ` ( ( c l : s e t f (
0051500 c l : s y m b o l - f u n c t i
0051520 o n ' , r e p o r t e r - n a
0051540 m e ) \r
0051560
*
0051620 ( f u n c t i o n , r e p o r
0051640 t e r ) ) ) ( s e t q r e p
0051660 o r t e r r e p o r t e r - n
0051700 a m e ) ) ) ) \r
0051720 ( c l : s e t f (
0051740 c o n d i t i o n - r e p o r t
0051760 e r ' , n a m e ) \r
0052000
0052020 , ( a n d r e p o r t e r `
0052040 ( f u n c t i o n , r e p o r
0052060 t e r ) ) ) \r
0052100 ' , n a m e ) ) ) ) )
0052120 \r \r ( d e f m a c r o 006 002 c l
0052140 : c h e c k - t y p e 006 001 ( p
0052160 l a c e t y p e s p e c & o
0052200 p t i o n a l s t r i n g ) \r
0052220 ( w i t h - e r r - l o o
0052240 p - v a r s " C H E C K - T Y
0052260 P E " ` ( c l : b l o c k ,
0052300 b l o c k - n a m e \r
0052320
*
0052360 ( c l : t a g b o
0052400 d y , a g a i n \r
0052420
*
0052460 ( l e
0052500 t ( ( , v a l , p l a c e )
0052520 ) \r
0052540
*
0052600 ( c l : w h
0052620 e n ( t y p e p , v a l '
0052640 , t y p e s p e c ) \r
0052660
*
0052740 ( c l : r e
0052760 t u r n - f r o m , b l o c k
0053000 - n a m e ) ) \r
0053020
*
0053100 ( c l : s e t f , p l a c e
0053120 ( c h e c k - t y p e - f a i l
0053140 \r
0053160
*
0053240 t \r
0053260
*
0053360 ' , p l a c e \r
0053400
*
0053500 , v a l \r
0053520
*
0053620 ' , t y p e s p e c \r
0053640
*
0053740 , s t r i n g )
0053760 ) \r
0054000
*
0054040 ( g o , a
0054060 g a i n ) ) ) ) ) ) \r \r ( d e f
0054100 m a c r o 006 002 c l : e t y p e
0054120 c a s e 006 001 ( k e y f o r m
0054140 & b o d y c l a u s e s ) \r
0054160 ( w i t h - g e n s y m s
0054200 ( v a l u e ) \r
0054220 " E T Y P E C A S E " \r
0054240 ( l e t ( ( c
0054260 a s e - s e l e c t o r s ( c
0054300 o n s ' o r ( c o l l e c t
0054320 - c a s e - s e l e c t o r s
0054340 c l a u s e s ' c l : e t y p
0054360 e c a s e ) ) ) ) \r
0054400 ` ( l e t (
0054420 ( , v a l u e , k e y f o r m
0054440 ) ) \r
0054460 ( c l : t y p e
0054500 c a s e , v a l u e , @ c l
0054520 a u s e s ( t ( c h e c k -
0054540 t y p e - f a i l n i l ' ,
0054560 k e y f o r m , v a l u e \r
0054600
*
0054660 ' , c a
0054700 s e - s e l e c t o r s n i l
0054720 ) ) ) ) ) ) ) \r \r ( d e f m a c
0054740 r o 006 002 c t y p e c a s e 006 001
0054760 ( k e y p l a c e & b o d y
0055000 c l a u s e s ) \r ( l e
0055020 t ( ( c a s e - s e l e c t o
0055040 r s ( c o n s ' o r ( c o
0055060 l l e c t - c a s e - s e l e c
0055100 t o r s c l a u s e s ' c t
0055120 y p e c a s e ) ) ) ) \r
0055140 ( w i t h - e r r - l o
0055160 o p - v a r s \r
0055200 " C T Y P E C A S E " \r
0055220 ` ( c l : b l o c k
0055240 , b l o c k - n a m e ( c l
0055260 : t a g b o d y \r
0055300
0055320 , a g a i n
0055340 \r
0055360
0055400 ( l e t ( ( , v a l , k
0055420 e y p l a c e ) ) \r
0055440
*
0055500 ( c l : r e t u r n - f r o m
0055520 , b l o c k - n a m e \r
0055540
*
0055600 ( c l : t y p
0055620 e c a s e , v a l , @ c l a
0055640 u s e s \r
0055660
*
0055720 ( t ( c l :
0055740 s e t f , k e y p l a c e (
0055760 c h e c k - t y p e - f a i l \r
0056000
*
0056100 t \r
0056120
*
0056220 ' , k e y p l a
0056240 c e \r
0056260
*
0056340 , v
0056360 a l \r
0056400
*
0056460 ' ,
0056500 c a s e - s e l e c t o r s n
0056520 i l ) ) \r
0056540
*
0056600 ( g o
0056620 , a g a i n ) ) ) ) ) ) ) ) ) )
0056640 \r \r ( d e f m a c r o 006 002 c l
0056660 : e c a s e 006 001 ( k e y f o r
0056700 m & r e s t c l a u s e s )
0056720 \r ( w i t h - g e n s y m
0056740 s ( v a l u e ) \r
0056760 " E C A S E " \r
0057000 ( l e t ( ( c a s
0057020 e - s e l e c t o r s ( c o l
0057040 l e c t - c a s e - s e l e c t
0057060 o r s c l a u s e s ' c l :
0057100 e c a s e ) ) ) \r
0057120 ( c l : i f c
0057140 a s e - s e l e c t o r s ` (
0057160 l e t ( ( , v a l u e , k e
0057200 y f o r m ) ) \r
0057220
*
0057260 ( c a s e , v a l u e
0057300 , @ c l a u s e s ( t ( e c
0057320 a s e - f a i l n i l \r
0057340
*
0057440 ' , k e y f o
0057460 r m \r
0057500
*
0057560 ,
0057600 v a l u e \r
0057620
*
0057720 ' , c a s e - s e l e c t o
0057740 r s ) ) ) ) \r
0057760 ` ( c
0060000 l : e r r o r " E m p t y c
0060020 a s e s t a t e m e n t . " )
0060040 ) ) ) ) \r \r ( d e f m a c r o
0060060 006 002 c l : c c a s e 006 001 ( k e
0060100 y f o r m & b o d y c l a u
0060120 s e s ) \r ( l e t ( ( c
0060140 a s e - s e l e c t o r s ( c
0060160 o l l e c t - c a s e - s e l e
0060200 c t o r s c l a u s e s ' c
0060220 l : c c a s e ) ) ) \r
0060240 ( c l : u n l e s s c a
0060260 s e - s e l e c t o r s ( c l
0060300 : e r r o r " E m p t y C C
0060320 A S E . " ) ) \r
0060340 ( w i t h - e r r - l o o p - v
0060360 a r s \r " C C
0060400 A S E " \r ` (
0060420 c l : b l o c k , b l o c k -
0060440 n a m e ( c l : t a g b o d y
0060460 \r
0060500
0060520 , a g a i n \r
0060540
0060560 ( l e t (
0060600 ( , v a l , k e y f o r m ) )
0060620 \r
0060640
0060660 ( c l : r e t u r
0060700 n - f r o m , b l o c k - n a
0060720 m e \r
0060740
*
0061000 ( c a s e , v a l , @ c l a
0061020 u s e s \r
0061040
*
0061100 ( t ( c l : s
0061120 e t f , k e y f o r m ( e c
0061140 a s e - f a i l \r
0061160
*
0061260 t \r
0061300
*
0061360 ' , k
0061400 e y f o r m \r
0061420
*
0061520 , v a l \r
0061540
*
0061620 ' ,
0061640 c a s e - s e l e c t o r s ) )
0061660 \r
0061700
*
0061740 ( g o , a g a i
0061760 n ) ) ) ) ) ) ) ) ) ) \r \r ( d e
0062000 f m a c r o 006 002 c l : a s s e
0062020 r t 006 001 ( t e s t - f o r m
0062040 & o p t i o n a l p l a c e s
0062060 s t r i n g & r e s t a r
0062100 g s ) \r ( c l : u n l e s
0062120 s ( c l : l i s t p p l a c
0062140 e s ) \r ( c
0062160 l : e r r o r " ~ S s h o u
0062200 l d b e a l i s t o f
0062220 p l a c e s . " p l a c e s )
0062240 ) \r ( w i t h - e r r - l
0062260 o o p - v a r s " A S S E R T
0062300 " ` ( c l : b l o c k , b l
0062320 o c k - n a m e ( c l : t a g
0062340 b o d y , a g a i n ( c l :
0062360 w h e n \r
0062400
*
0062500 , t e s t - f o r m \r
0062520
*
0062620 ( c l : r e t u r n
0062640 - f r o m \r
0062660
*
0062760 , b l o c k - n a m e \r
0063000
*
0063100 ( c l : v a
0063120 l u e s ) ) ) \r
0063140
*
0063220 ( a s s e r t - f a
0063240 i l , s t r i n g , @ a r g
0063260 s ) \r
0063300
*
0063360 ( g o , a g a i n ) ) ) ) )
0063400 \r \r ( d e f m a c r o 006 002 h a
0063420 n d l e r - b i n d 006 001 ( b i
0063440 n d i n g s & r e s t f o r
0063460 m s ) " E v a l f o r m s
0063500 u n d e r t e m p o r a r y
0063520 n e w c o n d i t i o n h a
0063540 n d l e r s . " \r ` ( l e
0063560 t ( ( * c o n d i t i o n - h
0063600 a n d l e r - b i n d i n g s *
0063620 ( l i s t * , @ ( e x t r a
0063640 c t - c o n d i t i o n - b i n
0063660 d i n g s ( \r
0063700
*
0064000 n o r m a l i z e - c o n d
0064020 i t i o n - c l a u s e s \r
0064040
*
0064140 b i n d
0064160 i n g s ) ) \r
0064200
*
0064240 * c o n d i t i o
0064260 n - h a n d l e r - b i n d i n
0064300 g s * ) ) ) \r
0064320 , @ f o r m s ) ) \r \r ( d e f m
0064340 a c r o 006 002 c o n d i t i o n
0064360 - b i n d 006 001 ( b i n d i n g
0064400 s & r e s t f o r m s ) \r
0064420
0064440 " E v a l f o
0064460 r m s u n d e r t e m p o r
0064500 a r y n e w c o n d i t i o
0064520 n h a n d l e r s ; s y n o
0064540 n y m f o r H A N D L E R -
0064560 B I N D " \r ` ( h a n d l
0064600 e r - b i n d , b i n d i n g
0064620 s , @ f o r m s ) ) \r \r ( d e
0064640 f m a c r o 006 002 c o n d i t i
0064660 o n - c a s e 006 001 ( f o r m
0064700 & r e s t b i n d i n g s )
0064720 \r
0064740 " E v a
0064760 l f o r m u n d e r c o n
0065000 d i t i o n h a n d l e r s
0065020 t h a t p r o v i d e a l t
0065040 e r n a t e c o n t i n u a t
0065060 i o n s . " \r ( w i t h -
0065100 g e n s y m s \r ( c o n
0065120 d i t i o n c l : v a l u e s
0065140 b n a m e h a n d l e r ) \r
0065160 " C O N D I T I O N - C
0065200 A S E " \r ( l e t \r
0065220 ( ( c l a u s e s ( n o
0065240 r m a l i z e - c o n d i t i o
0065260 n - c l a u s e s b i n d i n
0065300 g s ) ) ) \r ( 006 002 | i
0065320 f | 006 001 ( n u l l c l a u s
0065340 e s ) \r 006 002 |
0065360 t h e n | 006 001 f o r m \r
0065400 006 002 | e l s e | 006 001 `
0065420 ( l e t * ( ( , c o n d i t i
0065440 o n n i l ) \r
0065460 ( ,
0065500 c l : v a l u e s ( c o n d i
0065520 t i o n - b l o c k \r
0065540
0065560 , b
0065600 n a m e \r
0065620
0065640 ( l e t ( ( ,
0065660 h a n d l e r ( f u n c t i o
0065700 n ( c l : l a m b d a ( c )
0065720 \r
0065740
*
0066020 ( c l : s e t f , c
0066040 o n d i t i o n c ) \r
0066060
*
0066160 ( c o n d i t i o n - r e t u r
0066200 n , b n a m e ) ) ) ) ) \r
0066220
*
0066260 ( h a n d l e r - b
0066300 i n d ( ( , ( c l : m a p c a
0066320 r ( f u n c t i o n c a r )
0066340 \r
0066360
*
0066440 c l a u s e s ) , h a n d l
0066460 e r ) ) \r
0066500
*
0066540 ( c l : m u l t i p l e
0066560 - v a l u e - l i s t , f o r
0066600 m ) ) ) ) ) ) \r
0066620 ( c l
0066640 : i f , c o n d i t i o n ,
0066660 ( 006 002 | i f | 006 001 ( e q l (
0066700 l e n g t h c l a u s e s ) \r
0066720
*
0067000 1 ) \r
0067020
*
0067060 006 002 | t h e n | 006 001 ( c a
0067100 d r ( c a r ( m a s s a g e
0067120 - c a t c h - c o n d i t i o n
0067140 - c l a u s e s \r
0067160
*
0067240 c
0067260 l a u s e s c o n d i t i o n
0067300 ) ) ) \r
0067320
0067340 006 002
0067360 | e l s e | 006 001 ` ( c o n d i
0067400 t i o n - t y p e c a s e , c
0067420 o n d i t i o n \r
0067440
*
0067520 , @ ( m a s s a g e - c a t
0067540 c h - c o n d i t i o n - c l a
0067560 u s e s c l a u s e s \r
0067600
*
0067700 c o n d i t i o n ) \r
0067720
*
0070000 ( t ( c l : e r r o r
0070020 \r
0070040
*
0070100 " B u g i n c o n d
0070120 i t i o n - c a s e ! ~ & U n e
0070140 x p e c t e d c o n d i t i o
0070160 n : ~ S . " \r
0070200
*
0070260 , c o n d
0070300 i t i o n ) ) ) ) ( c l : v a
0070320 l u e s - l i s t \r
0070340
*
0070440 , c l
0070460 : v a l u e s ) ) ) ) ) ) ) \r \r
0070500 ( d e f m a c r o 006 002 r e a l
0070520 - c o n d i t i o n - c a s e 006
0070540 001 ( f o r m & r e s t c a
0070560 s e s ) \r
0070600
0070620 " E v a l f o r m u n d e
0070640 r c o n d i t i o n h a n d
0070660 l e r s t h a t p r o v i d
0070700 e a l t e r n a t e c o n t
0070720 i n u a t i o n s . " \r (
0070740 w i t h - g e n s y m s \r
0070760 ( o u t e r i n n e r c o
0071000 n d i t i o n d u m m y ) \r
0071020 " C O N D I T I O N - C A
0071040 S E " \r ` ( c l : b l o
0071060 c k \r , o u t e r \r
0071100 ( c l : m u l t i p
0071120 l e - v a l u e - c a l l \r
0071140 ' c l : f u n c a l l
0071160 \r ( c l : b l o c
0071200 k \r , i n n e r
0071220 \r ( h a n d l e
0071240 r - b i n d \r
0071260 , ( 006 002 f o r 006 001 c a s e 006
0071300 002 i n 006 001 c a s e s \r
0071320 006 002 c o l l e
0071340 c t 006 001 \r
0071360 ( d e s t r u c t u r i n g
0071400 - b i n d \r
0071420 ( t y p e s b v l .
0071440 b o d y ) \r
0071460 c a s e \r
0071500 ` ( , t y p e s
0071520 \r
0071540 ( f u n c t i o n ( c l : l
0071560 a m b d a \r
0071600
0071620 ( , c o n d i t i o n ) \r
0071640
0071660 ( c l : r e t
0071700 u r n - f r o m \r
0071720
0071740 , i n n e r \r
0071760
0072000 ( c l : v a l u
0072020 e s \r
0072040
0072060 ( f u n c t i o n ( c l : l a
0072100 m b d a \r
0072120
0072140 , @ (
0072160 c l : i f b v l ( l i s t
0072200 b v l ) \r
0072220
*
0072260 ` ( ( , d u m m y )
0072300 \r
0072320
*
0072360 ( 006 002 d e c l a r e 006 001
0072400 ( i g n o r e , d u m m y )
0072420 ) ) ) \r
0072440
0072460 , @ b o
0072500 d y ) ) \r
0072520
0072540 , c o n d i t i o n ) ) ) )
0072560 ) ) ) \r ( c l
0072600 : r e t u r n - f r o m , o u
0072620 t e r , f o r m ) ) ) ) ) ) )
0072640 \r \r ( d e f m a c r o 006 002 i g
0072660 n o r e - e r r o r s 006 001 ( &
0072700 b o d y f o r m s ) " E v a
0072720 l f o r m s w i t h h a n
0072740 d l e r f o r a n y c o n
0072760 d i t i o n o f t y p e E
0073000 R R O R . " \r ` ( c o n d
0073020 i t i o n - c a s e ( p r o g
0073040 n , @ f o r m s ) \r
0073060 ( e r r o r ( c o
0073100 n d i t i o n ) \r
0073120 n i l ) )
0073140 ) \r \r ( d e f m a c r o 006 002 p
0073160 r o c e e d - c a s e 006 001 ( f
0073200 o r m & r e s t c l a u s e
0073220 s ) \r
0073240
0073260 "
0073300 E v a l f o r m s , e s t a
0073320 b l i s h i n g a p l a c e
0073340 t o p r o c e e d f r o m
0073360 e r r o r s . " \r ( w i
0073400 t h - g e n s y m s \r (
0073420 s e l e c t o r c l : v a l u
0073440 e s t a g ) \r " P R O
0073460 C E E D - C A S E " \r (
0073500 c l : m u l t i p l e - v a l u
0073520 e - b i n d \r ( c a s
0073540 e s b o d i e s ) \r
0073560 ( s p l i t - p r o c e e d - c
0073600 l a u s e s c l a u s e s t
0073620 a g ) \r ( 006 002 | i f |
0073640 006 001 ( n u l l c a s e s ) \r
0073660 006 002 | t h e n
0073700 | 006 001 f o r m \r
0073720 006 002 | e l s e | 006 001 ` ( d e s
0073740 t r u c t u r i n g - b i n d
0073760 ( , s e l e c t o r \ \ \ ,
0074000 c l : v a l u e s ) \r
0074020
0074040 ( l e t ( ( , t a g ( l i
0074060 s t n i l ) ) ) \r
0074100
0074120 ( c l : c a t c h ,
0074140 t a g ( c o n s : n o r m a
0074160 l ( l e t ( ( * p r o c e e
0074200 d - c a s e s * ( l i s t *
0074220 , @ c a s e s \r
0074240
*
0074340 *
0074360 p r o c e e d - c a s e s * \r
0074400
*
0074520 ) ) ) \r
0074540
*
0074620 ( c l : m u l t i p
0074640 l e - v a l u e - l i s t , f
0074660 o r m ) ) ) ) ) \r
0074700 (
0074720 c l : i f ( e q , s e l e c
0074740 t o r : n o r m a l ) \r
0074760
0075000 ( c l : v a
0075020 l u e s - l i s t , c l : v a
0075040 l u e s ) \r
0075060
0075100 ( c l : a p p l y , ( 006
0075120 002 | i f | 006 001 ( e q l ( l e
0075140 n g t h b o d i e s ) \r
0075160
*
0075240 1 ) \r
0075260
0075300 006
0075320 002 | t h e n | 006 001 ( c a d r
0075340 ( c a r b o d i e s ) ) \r
0075360
*
0075420 006 002 | e l s e |
0075440 006 001 ` ( c a s e , s e l e c
0075460 t o r , @ b o d i e s ) ) ,
0075500 c l : v a l u e s ) ) ) ) ) ) )
0075520 \r \r ( d e f m a c r o 006 002 r e
0075540 a l - p r o c e e d - c a s e 006
0075560 001 ( f o r m & r e s t c l
0075600 a u s e s ) \r
0075620
*
0075660 " E v a l f o r m s ,
0075700 e s t a b l i s h i n g a p
0075720 l a c e t o p r o c e e d
0075740 f r o m e r r o r s . " \r
0075760 ( w i t h - g e n s y m s (
0076000 o u t e r t a g d u m m y )
0076020 \r " P R O C
0076040 E E D - C A S E " \r
0076060 ` ( c l : b l o c k ,
0076100 o u t e r ( l e t * ( ( , t
0076120 a g ( l i s t n i l ) ) \r
0076140
*
0076200 ( * p r o c e e d - c a s e
0076220 s * ( l i s t * , @ ( m a p
0076240 c a r c l a u s e s \r
0076260
*
0076360 ( f u n c t i o n ( c l : l a
0076400 m b d a ( c l a u s e ) \r
0076420
*
0076540 ( \r
0076560
*
0076660 p r o c e e d - c a s e - f
0076700 r o m - c l a u s e \r
0076720
*
0077040 c l a u s e t a g \r
0077060
*
0077200 d u m m y ) ) ) ) \r
0077220
*
0077300 * p r o c e e
0077320 d - c a s e s * ) ) ) \r
0077340
0077360 ( c
0077400 l : m u l t i p l e - v a l u e
0077420 - c a l l ' c l : f u n c a l
0077440 l ( c l : c a t c h , t a g
0077460 \r
0077500
*
0077560 ( c
0077600 l : r e t u r n - f r o m \r
0077620
*
0077720 , o u t
0077740 e r \r
0077760
*
0100060 , f o r m ) ) ) ) ) ) ) \r \r (
0100100 d e f d e f i n e r 006 002 d e f
0100120 i n e - p r o c e e d - f u n c
0100140 t i o n 006 001 \r f u n c t i
0100160 o n s \r ( n a m e & r e
0100200 s t t a i l & a u x v a r
0100220 s ) \r ( c l : m u l t i p
0100240 l e - v a l u e - b i n d \r
0100260 ( t e s t r e p o r t a
0100300 r g l i s t ) \r ( p r o
0100320 c e s s - p r o c e e d - k e y
0100340 w o r d s n a m e t a i l )
0100360 \r ( c l : s e t f v a
0100400 r s ( m a p c a r a r g l i
0100420 s t ( f u n c t i o n ( l a
0100440 m b d a ( x ) \r
0100460
*
0100520 ( c l : i f ( c
0100540 l : s y m b o l p x ) \r
0100560
*
0100640 x \r
0100660
*
0100720 ( c a r x )
0100740 ) ) ) ) ) \r ( c l : u n
0100760 l e s s t e s t ( c l : s e
0101000 t f t e s t ' t r u e ) ) \r
0101020 ( c l : u n l e s s r
0101040 e p o r t ( c l : s e t f r
0101060 e p o r t ' d e f a u l t - p
0101100 r o c e e d - r e p o r t e r )
0101120 ) \r ` ( p r o g n , @
0101140 ( c l : i f ( c l : c o n s p
0101160 t e s t ) \r
0101200 ( l e t
0101220 ( ( t e s t e r ( % s u f f
0101240 i x - s y m b o l n a m e "
0101260 - p r o c e e d - t e s t " ) )
0101300 ) \r
0101320 ( p r o
0101340 g 1 ` ( ( c l : s e t f ( c
0101360 l : s y m b o l - f u n c t i o
0101400 n ' , t e s t e r ) \r
0101420
*
0101460 ( f u n c t i o n
0101500 , t e s t ) ) ) ( s e t q t
0101520 e s t t e s t e r ) ) ) ) \r
0101540 ( c l : s
0101560 e t f ( d e f a u l t - p r o
0101600 c e e d - t e s t ' , n a m e
0101620 ) \r
0101640 ' , t e s t ) \r
0101660 , @ ( c l : i
0101700 f ( c l : c o n s p r e p o
0101720 r t ) \r
0101740 ( l e t ( (
0101760 r e p o r t e r ( % s u f f i
0102000 x - s y m b o l n a m e " -
0102020 p r o c e e d - r e p o r t e r
0102040 " ) ) ) \r
0102060 (
0102100 p r o g 1 ` ( ( c l : s e t f
0102120 ( c l : s y m b o l - f u n c
0102140 t i o n ' , r e p o r t e r )
0102160 \r
0102200
0102220 ( f u n c
0102240 t i o n , r e p o r t ) ) )
0102260 ( s e t q r e p o r t r e p
0102300 o r t e r ) ) ) ) \r
0102320 ( c l : s e t f (
0102340 d e f a u l t - p r o c e e d -
0102360 r e p o r t ' , n a m e ) \r
0102400
0102420 ' , r e p o r t ) \r
0102440 ( c l : s e t f
0102460 ( p r o c e e d - a r g - c o
0102500 l l e c t o r ' , n a m e ) \r
0102520
0102540 ( f u n c t i o n ( c l
0102560 : l a m b d a ( & o p t i o n
0102600 a l c o n d i t i o n , @ a
0102620 r g l i s t ) \r
0102640
0102660 ( l i s
0102700 t , @ v a r s ) ) ) ) \r
0102720 ( c l : d e f
0102740 u n ( 006 002 \ \ \ , 006 001 n a m
0102760 e ) ( & o p t i o n a l c o
0103000 n d i t i o n , @ a r g l i s
0103020 t ) ( c o n d i t i o n - c a
0103040 s e \r
0103060
*
0103140 ( i n v o k e - p r
0103160 o c e e d - c a s e \r
0103200
*
0103260 '
0103300 , n a m e c o n d i t i o n
0103320 , @ v a r s ) \r
0103340
*
0103420 ( b a d -
0103440 p r o c e e d - c a s e n i l
0103460 n i l ) ) ) \r ) ) ) \r \r ( d e
0103500 f m a c r o 006 002 c a t c h - a
0103520 b o r t 006 001 ( p r i n t - f o
0103540 r m & b o d y f o r m s )
0103560 ` ( p r o c e e d - c a s e (
0103600 p r o g n , @ f o r m s ) \r
0103620
*
0103700 ( a b o r t ( c o
0103720 n d i t i o n ) \r
0103740
*
0104020 : r e p o r t \r
0104040
*
0104120 , p r
0104140 i n t - f o r m : t e s t t
0104160 r u e ( c l : v a l u e s \r
0104200
*
0104320 n i l c o n d i t i
0104340 o n ) ) \r
0104360
*
0104420 ) ) \r \r
0104440 \r ( p u t p r o p s 006 002 c l -
0104460 e r r o r f i l e t y p e 006 001
0104500 c l : c o m p i l e - f i l e
0104520 ) \r ( d e c l a r e \ : d o n
0104540 t e v a l @ l o a d d o e v a
0104560 l @ c o m p i l e d o n t c o
0104600 p y c o m p i l e r v a r s
0104620 \r \r ( a d d t o v a r 006 002 n l
0104640 a m a 006 001 ) \r \r ( a d d t o v
0104660 a r 006 002 n l a m l 006 001 ) \r \r
0104700 ( a d d t o v a r 006 002 l a m a
0104720 006 001 ) \r ) \r ( p u t p r o p s
0104740 c l - e r r o r c o p y r i
0104760 g h t ( " X e r o x C o r p
0105000 o r a t i o n " 1 9 8 6 ) ) \r
0105020 ( d e c l a r e \ : d o n t c
0105040 o p y \r ( f i l e m a p (
0105060 n i l ) ) ) \r s t o p \r
0105074