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