$ od -c -N 50000 [eris]<LispCore>SOURCES>CMLMACROS!3
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 " 1 6 - O c t -
0000120 8 6 1 4 : 4 2 : 3 3 " 006 004 {
0000140 e r i s } < l i s p c o r e > s
0000160 o u r c e s > c m l m a c r o s
0000200 . \ ; 3 006 001 9 0 9 1 \r \r
0000220 | p r e v i o u s |
0000240 | d a t e : | " 4 - S e p
0000260 - 8 6 1 8 : 2 2 : 2 8 " { e
0000300 r i s } < l i s p c o r e > s o
0000320 u r c e s > c m l m a c r o s .
0000340 \ ; 2 ) \r \r \r ; C o p y r i g
0000360 h t ( c ) 1 9 8 6 b y X
0000400 e r o x C o r p o r a t i o n
0000420 . A l l r i g h t s r e
0000440 s e r v e d . \r \r ( p r e t t y
0000460 c o m p r i n t c m l m a c r
0000500 o s c o m s ) \r \r ( r p a q q
0000520 006 002 c m l m a c r o s c o m s 006
0000540 001 ( ( f n s c l i s p e x p
0000560 a n s i o n \ \ i n t e r l i
0000600 s p - n l a m b d a - m a c r o
0000620 c l : m a c r o - f u n c t i
0000640 o n c l : m a c r o e x p a n
0000660 d \r
0000700 c l
0000720 : m a c r o e x p a n d - 1 s
0000740 e t f - m a c r o - f u n c t i
0000760 o n ) \r
0001000 ( a p p e n
0001020 d v a r s ( c o m p i l e r m
0001040 a c r o p r o p s d m a c r o
0001060 b y t e m a c r o m a c r o
0001100 \r
0001120
0001140 s h o u l
0001160 d - h a v e - m a c r o - f u n
0001200 c t i o n ) ) \r
0001220 ( p
0001240 r o p m a c r o * ) \r
0001260
0001300 ( i n i t v a r s ( * m
0001320 a c r o e x p a n d - h o o k *
0001340 ' c l : f u n c a l l ) ) \r
0001360
0001400 ( f u n c t i o n s
0001420 c l : m a c r o l e t ) \r
0001440
0001460 ( s e t f s c l : m a c
0001500 r o - f u n c t i o n ) \r
0001520
0001540 ( p r o p f i l e t y p
0001560 e c m l m a c r o s ) \r
0001600
0001620 ( d e c l a r e \ : d o
0001640 n t e v a l @ l o a d d o e v
0001660 a l @ c o m p i l e d o n t c
0001700 o p y c o m p i l e r v a r s
0001720 \r
0001740 ( a
0001760 d d v a r s ( n l a m a ) \r
0002000
*
0002040 ( n l a m l ) \r
0002060
0002100 (
0002120 l a m a c l : m a c r o e x p
0002140 a n d - 1 c l : m a c r o e x
0002160 p a n d ) ) ) ) ) \r ( d e f i n
0002200 e q \r \r ( 006 004 c l i s p e x p a
0002220 n s i o n 006 001 \r ( l a m b d
0002240 a ( x e n v ) 006 003 006 001
0002260
*
0002320 006 003 ( * | l
0002340 m m | " 2 9 - J u l - 8 6 0
0002360 3 : 3 4 " ) 006 001 \r ( c l
0002400 : b l o c k c l i s p e x p a
0002420 n s i o n ( c l : v a l u e s
0002440 ( o r ( a n d ( g e t p r
0002460 o p ( c a r x ) \r
0002500
*
0002560 ' c l i s p w o r d ) \r
0002600
*
0002660 ( r e s e t v a r s ( ( c l i
0002700 s p f l g n i l ) ) \r
0002720
*
0003000 ( l e t ( ( n
0003020 o s p e l l f l g t ) \r
0003040
*
0003120 (
0003140 v a r s n i l ) \r
0003160
*
0003240 ( c o p
0003260 ( c o p y x ) ) ) \r
0003300
*
0003360 ( 006 002
0003400 d e c l a r e 006 001 ( c l : s p
0003420 e c i a l n o s p e l l f l g
0003440 v a r s \r
0003460
*
0003560 ) ) \r
0003600
*
0003660 006 003 ( * | m a k
0003700 e | \ a | c o p y | | s o
0003720 | | d w i m | \r 006 001
0003740
*
0004020 006 003 | d o e s
0004040 n ' t | | m u c k | | w i t
0004060 h | | i t ! | ) 006 001 \r
0004100
*
0004160 ( d w
0004200 i m i f y 0 ? c o p c o p
0004220 c o p n i l n i l n i l \r
0004240
*
0004340 ' v a r s b o u
0004360 n d ) \r
0004400
*
0004460 ( r e t u r n ( g e
0004500 t h a s h c o p c l i s p a
0004520 r r a y ) ) ) ) ) \r
0004540
*
0004600 ( c l : r e t u r n
0004620 - f r o m c l i s p e x p a n
0004640 s i o n x ) ) \r
0004660
0004700 t ) )
0004720 ) ) \r \r ( 006 004 \ \ i n t e r l i
0004740 s p - n l a m b d a - m a c r o
0004760 006 001 \r ( l a m b d a ( x
0005000 e n v ) 006 003 006 001
0005020
*
0005060 006 003 ( * | l m m | "
0005100 7 - M a y - 8 6 1 7 : 2 4 "
0005120 ) 006 001 \r ` ( c l : f u n
0005140 c a l l ( f u n c t i o n ,
0005160 ( c a r x ) ) \r
0005200 , @ ( s e l e c t q
0005220 ( a r g t y p e ( c a r x )
0005240 ) \r
0005260 ( 1 ( m a p c a r (
0005300 c d r x ) \r
0005320
0005340 ( f u n c t i o n k w o
0005360 t e ) ) ) \r
0005400 ( 3 ( l i s t
0005420 ( k w o t e ( c d r x ) )
0005440 ) ) \r
0005460 ( s h o u l d n t ) )
0005500 ) ) ) \r \r ( 006 004 c l : m a c r o
0005520 - f u n c t i o n 006 001 \r ( l
0005540 a m b d a ( x e n v ) 006 003 006
0005560 001
0005600
0005620 006 003 (
0005640 * | P a v e l | " 6 - J u
0005660 n - 8 6 1 2 : 1 8 " ) 006 001 \r
0005700 \r
0005720 006 003 ( * * " I f t
0005740 h e g i v e n s y m b o l
0005760 h a s a m a c r o d e f i
0006000 n i t i o n i n e i t h e r
0006020 t h e g i v e n l e x i c
0006040 a l e n v i r o n m e n t o
0006060 r g l o b a l l y , r e t u
0006100 r n i t s e x p a n s i o n
0006120 f u n c t i o n , e l s e
0006140 N I L . " ) 006 001 \r \r ( l
0006160 e t ( m d ) \r
0006200 ( c l : e t y p e c a s e e
0006220 n v ( e n v i r o n m e n t
0006240
0006260 006 003 ( * \r 006 001
0006300
*
0006360 006 003 " I n t
0006400 e r p r e t e r / c o d e - w a
0006420 l k e r ' s e n v i r o n m e
0006440 n t s " ) 006 001 \r
0006460
0006500 ( c o n d \r
0006520
*
0006560 ( ( s e t q m d (
0006600 a s s o c x ( e n v i r o n
0006620 m e n t - m a c r o s e n v )
0006640 ) ) \r
0006660
0006700 ( d e s t r u
0006720 c t u r i n g - b i n d ( n a
0006740 m e d e f m a c r o - a r g s
0006760 & r e s t d e f m a c r o -
0007000 b o d y ) \r
0007020
*
0007060 m d \r
0007100
*
0007140 ( c l : m u l t i p l e -
0007160 v a l u e - b i n d ( p a r s
0007200 e d - b o d y p a r s e d - d
0007220 e c l a r a t i o n s \r
0007240
*
0007340 p a r s e d -
0007360 d o c s t r i n g ) \r
0007400
*
0007440 (
0007460 p a r s e - d e f m a c r o d
0007500 e f m a c r o - a r g s ' $ $
0007520 m a c r o - f o r m \r
0007540
*
0007620 d e f m a c r o -
0007640 b o d y n a m e n i l : e
0007660 n v i r o n m e n t \r
0007700
*
0007760 ' $ $ m a c r o - e
0010000 n v i r o n m e n t ) \r
0010020
*
0010100 ` ( l a m b d a ( $ $ m a c r
0010120 o - f o r m $ $ m a c r o - e
0010140 n v i r o n m e n t ) \r
0010160
*
0010240 , @ p a r s e d - d e c l
0010260 a r a t i o n s \r
0010300
*
0010360 ( c l : b l o c k , n a m e
0010400 , p a r s e d - b o d y ) ) ) )
0010420 ) \r
0010440
0010460 ( t ( 006 002 c l :
0010500 m a c r o - f u n c t i o n 006 001
0010520 x ( e n v i r o n m e n t -
0010540 p a r e n t e n v ) ) ) ) ) \r
0010560
0010600 ( e n v
0010620
0010640 006 003 (
0010660 * " N e w c o m p i l e r '
0010700 s e n v i r o n m e n t s . "
0010720 ) 006 001 \r
0010740 ( c l : m u l
0010760 t i p l e - v a l u e - b i n d
0011000 ( k i n d e x p n - f n ) \r
0011020
0011040 ( e n v
0011060 - f b o u n d p e n v x ) \r
0011100
0011120 ( c l :
0011140 i f ( e q k i n d : m a c
0011160 r o ) \r
0011200
0011220 e x p n - f n \r
0011240
*
0011300 ( 006 002 c l : m a c r o - f u
0011320 n c t i o n 006 001 x n i l ) )
0011340 ) ) \r
0011360 ( n u l l ( c o n d \r
0011400
0011420 ( ( g e t x
0011440 ' m a c r o - f n ) ) \r
0011460
0011500 ( ( c l : s p e c i a
0011520 l - f o r m - p x ) \r
0011540
0011560 n i l ) \r
0011600
0011620 ( ( a n d ( n o t (
0011640 f m e m b ( a r g t y p e x
0011660 ) \r
0011700
0011720 ' ( 0
0011740 2 ) ) ) \r
0011760
0012000 ( 006 002 | f i n d | 006 001
0012020 p r o p 006 002 | i n | 006 001 c
0012040 o m p i l e r m a c r o p r o p
0012060 s \r
0012100
0012120 006 002 | s u c h t h a t |
0012140 006 001 ( a n d ( s e t q m d
0012160 ( g e t p r o p x p r o p
0012200 ) ) \r
0012220
*
0012260 ( n o t ( o r ( l
0012300 i t a t o m m d ) \r
0012320
*
0012400 ( f m e m b ( c a
0012420 r m d ) \r
0012440
*
0012520 ' ( a p p l y
0012540 a p p l y * ) ) ) ) ) ) ) \r
0012560
0012600 ` ( l a m b d a
0012620 ( f o r m e n v ) \r
0012640
0012660 ( m a c r o e
0012700 x p a n s i o n f o r m ' ,
0012720 m d ) ) ) \r
0012740 (
0012760 ( a n d ( n o t ( g e t d
0013000 x ) ) \r
0013020
0013040 ( g e t p r o p x ' c
0013060 l i s p w o r d ) ) \r
0013100
0013120 ( f u n c t i o n c
0013140 l i s p e x p a n s i o n ) ) \r
0013160
0013200 ( ( f m e m b
0013220 ( a r g t y p e x ) \r
0013240
0013260 ' (
0013300 1 3 ) ) \r
0013320
0013340 ( f u n c t i o n \ \ i n t e
0013360 r l i s p - n l a m b d a - m a
0013400 c r o ) ) ) ) ) ) ) ) \r \r ( 006 004
0013420 c l : m a c r o e x p a n d 006 001
0013440 \r ( c l : l a m b d a ( f
0013460 o r m & o p t i o n a l e n
0013500 v ) 006 003 006 001
0013520
0013540 006 003 ( * " P a v e l " "
0013560 1 6 - M a y - 8 6 1 9 : 0 7 "
0013600 ) 006 001 \r \r
0013620 006 003 ( * *
0013640 " I f F O R M i s a m a
0013660 c r o c a l l , t h e n t
0013700 h e f o r m i s e x p a n
0013720 d e d u n t i l t h e r e
0013740 s u l t i s " \r 006 001
0013760 006 003 " n o t a m
0014000 a c r o . R e t u r n s a s
0014020 m u l t i p l e v a l u e s
0014040 , t h e f o r m a f t e r
0014060 a n y e x p a n s i o n "
0014100 \r 006 001 006 003 "
0014120 h a s b e e n d o n e a n
0014140 d T i f e x p a n s i o n
0014160 w a s d o n e , o r N I
0014200 L o t h e r w i s e . E n v
0014220 i s t h e " \r 006 001
0014240 006 003 " l e x i c a l
0014260 e n v i r o n m e n t t o
0014300 e x p a n d i n , w h i c h
0014320 d e f a u l t s t o t h e
0014340 n u l l e n v i r o n m e n
0014360 t . " ) 006 001 \r \r
0014400 ( p r o g ( f l a g ) \r
0014420 ( c l
0014440 : m u l t i p l e - v a l u e -
0014460 s e t q ( f o r m f l a g )
0014500 \r
0014520 ( 006 002 c l : m a c
0014540 r o e x p a n d - 1 006 001 f o r
0014560 m e n v ) ) \r
0014600 ( c l : u n l e s
0014620 s f l a g ( r e t u r n (
0014640 c l : v a l u e s f o r m n
0014660 i l ) ) ) \r
0014700 c l : l o o p \r
0014720 ( c l : m u l t
0014740 i p l e - v a l u e - s e t q
0014760 ( f o r m f l a g ) \r
0015000
0015020 ( 006 002 c l : m a c r o e x p
0015040 a n d - 1 006 001 f o r m e n v
0015060 ) ) \r
0015100 ( c l : i f f l a g ( g
0015120 o c l : l o o p ) \r
0015140
0015160 ( r e t u r n ( c l : v a l
0015200 u e s f o r m t ) ) ) ) ) )
0015220 \r \r ( 006 004 c l : m a c r o e x p
0015240 a n d - 1 006 001 \r ( c l : l a
0015260 m b d a ( f o r m & o p t i
0015300 o n a l e n v & a u x d e
0015320 f ) 006 003 006 001
0015340 006 003 ( * " P
0015360 a v e l " " 1 6 - M a y - 8 6
0015400 1 9 : 0 8 " ) 006 001 \r
0015420 \r
0015440 006 003 ( * * " I f f o r m
0015460 i s a m a c r o , e x p a
0015500 n d s i t o n c e . R e t
0015520 u r n s t w o v a l u e s ,
0015540 t h e e x p a n d e d " \r
0015560 006 001 006 003 " f
0015600 o r m a n d a T - o r - N
0015620 I L f l a g i n d i c a t i
0015640 n g w h e t h e r t h e f
0015660 o r m w a s , i n f a c t
0015700 , a " \r 006 001
0015720 006 003 " m a c r o . E n v
0015740 i s t h e l e x i c a l e
0015760 n v i r o n m e n t t o e x
0016000 p a n d i n , w h i c h d
0016020 e f a u l t s t o " \r 006 001
0016040 006 003 " t h e
0016060 n u l l e n v i r o n m e n t
0016100 . " ) 006 001 \r \r
0016120 ( c o n d \r
0016140 ( ( a n d ( c l : c o n s
0016160 p f o r m ) \r
0016200 ( c l : s y
0016220 m b o l p ( c a r f o r m )
0016240 ) ) \r
0016260 ( l e t ( ( d e f ( 006 002 c l
0016300 : m a c r o - f u n c t i o n 006
0016320 001 ( c a r f o r m ) \r
0016340
0016360 e n v )
0016400 ) ) \r
0016420 ( c o n d \r
0016440
0016460 ( d e f ( 006 002 | i f | 006 001 (
0016500 n e q f o r m ( s e t q f
0016520 o r m ( c l : f u n c a l l
0016540 * m a c r o e x p a n d - h o o
0016560 k * d e f f o r m e n v )
0016600 ) ) \r
0016620
0016640 006 002 | t h e n | 006 001 ( c l :
0016660 v a l u e s f o r m t ) \r
0016700
0016720 006 002 | e l
0016740 s e | 006 001 ( c l : v a l u e s
0016760 f o r m n i l ) ) ) \r
0017000
0017020 ( t ( c l : v a l u e s
0017040 f o r m n i l ) ) ) ) ) \r
0017060 ( t ( c l
0017100 : v a l u e s f o r m n i l
0017120 ) ) ) ) ) \r \r ( 006 004 s e t f - m
0017140 a c r o - f u n c t i o n 006 001 \r
0017160 ( l a m b d a ( x b o d
0017200 y ) 006 003 006 001
0017220
*
0017260 006 003 ( * | j r b : | " 2 1
0017300 - A u g - 8 6 1 7 : 4 2 " ) 006
0017320 001 \r ( p r o g 1 ( c l
0017340 : s e t f ( g e t x ' m a
0017360 c r o - f n ) \r
0017400 b o d y ) \r
0017420 ( a n d
0017440 ( g e t d x ) \r
0017460 ( f m e m b
0017500 ( a r g t y p e x ) \r
0017520
0017540 ' ( 0 2 ) ) \r
0017560 ( p r o g
0017600 n ( p r i n t o u t t t
0017620 " W a r n i n g : w i l l s
0017640 o o n d o P U T D o n "
0017660 x " b e c a u s e i t
0017700 n o w i s a m a c r o " )
0017720 \r
0017740 ) ) ) ) ) \r ) \r
0017760 \r ( a p p e n d t o v a r 006 002
0020000 c o m p i l e r m a c r o p r o
0020020 p s 006 001 d m a c r o b y t e
0020040 m a c r o m a c r o s h o u
0020060 l d - h a v e - m a c r o - f u
0020100 n c t i o n ) \r \r ( p u t p r o
0020120 p s 006 002 * m a c r o 006 001 (
0020140 ( x . y ) \r
0020160 ' x ) ) \r
0020200 \r ( r p a q ? 006 002 * m a c r o
0020220 e x p a n d - h o o k * 006 001 '
0020240 c l : f u n c a l l ) \r ( d e f
0020260 m a c r o 006 002 c l : m a c r o
0020300 l e t 006 001 ( m a c r o d e f s
0020320 & b o d y b o d y & e n v
0020340 i r o n m e n t e n v ) ( w
0020360 a l k - f o r m ( c o n s '
0020400 p r o g n b o d y ) \r
0020420
*
0020520 : e n v i r o n m e n t \r
0020540
*
0020640 ( m a k e - e n v i r o n
0020660 m e n t : m a c r o s \r
0020700
*
0021000 m a c r o d
0021020 e f s : p a r e n t e n v )
0021040 ) ) \r \r ( c l : d e f s e t f
0021060 006 002 c l : m a c r o - f u n c t
0021100 i o n 006 001 s e t f - m a c r o
0021120 - f u n c t i o n ) \r \r \r ( p u
0021140 t p r o p s 006 002 c m l m a c r
0021160 o s f i l e t y p e 006 001 c l
0021200 : c o m p i l e - f i l e ) \r (
0021220 d e c l a r e \ : d o n t e v
0021240 a l @ l o a d d o e v a l @ c
0021260 o m p i l e d o n t c o p y
0021300 c o m p i l e r v a r s \r \r (
0021320 a d d t o v a r 006 002 n l a m a
0021340 006 001 ) \r \r ( a d d t o v a r
0021360 006 002 n l a m l 006 001 ) \r \r ( a d
0021400 d t o v a r 006 002 l a m a 006 001
0021420 c l : m a c r o e x p a n d - 1
0021440 c l : m a c r o e x p a n d )
0021460 \r ) \r ( p u t p r o p s c m l
0021500 m a c r o s c o p y r i g h t
0021520 ( " X e r o x C o r p o r a
0021540 t i o n " 1 9 8 6 ) ) \r ( d e
0021560 c l a r e \ : d o n t c o p y
0021600 \r ( f i l e m a p ( n i l
0021620 ( 1 1 4 6 8 1 7 5 ( c l i
0021640 s p e x p a n s i o n 1 1 5 6
0021660 . 2 5 1 4 ) ( \ \ i n t e
0021700 r l i s p - n l a m b d a - m a
0021720 c r o 2 5 1 6 . 2 8 8 3 )
0021740 ( \r c l : m a c r o - f u n c
0021760 t i o n 2 8 8 5 . 5 8 9 9
0022000 ) ( c l : m a c r o e x p a n
0022020 d 5 9 0 1 . 6 8 0 0 ) (
0022040 c l : m a c r o e x p a n d - 1
0022060 6 8 0 2 . 7 7 6 5 ) ( \r
0022100 s e t f - m a c r o - f u n c t
0022120 i o n 7 7 6 7 . 8 1 7 3 )
0022140 ) ) ) ) \r s t o p \r
0022152