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