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