*DECK CBSYN                                                             027490
PROC FTSYNTX                                                            006310
ALIAS                                201                                003840
ALL                                  202                                003850
BOOLEAN                              404                    ID STAR TEST000720
CHARACTER                            407
COMPLEX                              405                    ID STAR TEST000730
DOUBLE                               401                    ID STAR TEST000740
END                                  204                                003870
INTEGER                              402                    ID STAR TEST000760
ITEM                                 222     00003                      000660
LOGICAL                              406                    ID STAR TEST000780
PRECISION                            206                                003890
REAL                                 403                    ID STAR TEST000800
REALM                                220     00001                      000680
RECORD                               221     00002                      000690
RELATION                             210                                003930
SCHEMA                               211                                003940
SUBSCHEMA                            212                                003950
.                                    213                                003960
:                                    223                                000420
)                                    214                                003970
,                                    215                                003980
(                                    216                                003990
=                                    217                                004000
*                                    222
+                                                                       031440
SUBSCHNME 
SCHNAME 
ALIASTYP                                                                031460
ALIAS1QAL                                                               031480
ALIAS2QAL                                                               031490
ALIAS1STORNM                                                            031510
ALIAS2STORNM                                                            031520
ALIASINIT                                                               031580
REALMALL                                                                031590
REALMALIAS                                                              031600
REALMNAME                                                               031610
RECDNAME                                                                031630
RECDWITHIN                                                              031640
ITEMNAME                                                                031660
ITEMDOM                                                                 031670
ITEM1COMP                                                               031700
ITEM2COMP                                                               031710
ITEMUSECK                                                               031740
ITEMOC1INT                                                              031750
ITEMTIMES                                                               031760
ITEMOC2INT                                                              031770
ITEMOCEND 
LEVEL01                                                                 031930
ENDPASS1
ENDSS 
ABORT3
ITEMEND 
RESETCHARFLG
SETCHARLEN
SETDFLEN1 
SETDFLEN2 
CHKFTN5 
SETWBPTR
ADJWBPTR
SETRELFG
SETSSFGT
CHKMSS
ABORT4
INCRWBPTR 
DOUBLERTN                                                               004040
BOOLEANRTN                                                              000250
CHARACTERRTN
COMPLEXRTN                                                              000260
LOGICALRTN                                                              000270
GENCOMMON                                                               004050
SETLEVEL01                                                              004070
RECD1STCKF                                                              004100
ITEMF1CKF                                                               004110
LEVELCONVRTF                                                            004120
WRTCOM                                                                  004130
ALIASSAVENEW        SAVES ALIAS NEW-NAME SO IT CAN BE HANDLED LATER.    000710
ALIASRESTNEW        RESTORES ALIAS NEW-NAME AT POINT COBOL WOULD USE IT.000720
+                                                                       032040
:ROOT:01          +EOS        05  # NOTE +EOS ALSO RETURNS TRUE IF EOT #000700
            /     D100    *ABORT3                                       004160
          :05     SUBSCHEMA                                             004170
            /     ALIAS                                                 004180
            /     REALM                                                 004190
            /     RECORD                                                004200
            /     $RELATION  07                                         004210
            /     *SETRELFG   *ENDPASS1    09 
          :07     END         09
            /     *SETSSFGT   *ENDPASS1 
          :09     SKIPRL      *ABORT4 
:SUBSCHEMA:01     *CHKMSS 
                  $SUBSCHEMA  D146  SKIPRL  *ABORT4 
            /     +NAME       D148  +SNS  NO                            004260
            /     *SUBSCHNME                                            004270
                  $,          D215  +SNS  NO                            004280
            /     $SCHEMA     D147  +SNS  NO                            004290
            /     $=          D215  +SNS  NO                            004300
            /     +NAME       D148  +SNS  NO                            004310
            /     *SCHNAME    D155  +SNS  NO                            004320
            /     +EOS        D216  +SNS  NO                            004330
            /     YES                                                   004350
:ALIAS:01         $ALIAS      NO                                        004360
            /     $(          D142  +SNS  01                            000740
            /     $REALM                                                000750
                  $RECORD                                               000760
                  $ITEM       D142  +SNS  01                            000770
            /     *ALIASTYP                                             000780
                  $)          D142  +SNS  01  # ALIAS TYPE NOT SPEC.   #000790
          :03     +NAME       D107  +SNW      # INVALID NEW-NAME.      #000800
            /     *ALIASSAVENEW                                         000810
                  $=          D108  +SNS  01  # EQUAL SIGN MISSING.    #000820
            /     +NAME       D107  +SNW  07  # INVALID OLD-NAME.      #000830
            /     *ALIAS1STORNM                                         000840
            /     $.          05                                        000850
            /     +NAME       D111  +SNW  07  # INVALID QUALIFIER.     #000860
            /     *ALIAS1QAL  D143            # QUALIFIER ON NON-ITEM. #000870
            /     *ALIAS2QAL  D144  07        # UNKNOWN QUALIFIER.     #000880
          :05     *ALIASRESTNEW                                         000890
                  *ALIAS2STORNM                                         000900
                  *ALIASINIT                                            000910
          :07     $,          09                                        000920
            /     03                                                    000930
          :09     +EOS        D216  +SNS  01  # REST NOT SCANABLE.     #000940
            /     01                                                    004380
  
:REALM:01         $REALM     D114             #-----REALM STATEMENT----#
                  +SNS       11 
            /     $ALL        07                                        004400
            /     *REALMALL                                             004410
                  +EOS        D216  +SNS  NO                            004420
            /     YES                                                   004450
          :07     +NAME       D114  *REALMALL +SNW 15                   004460
          :09     *REALMALIAS 10                                        004470
            /     *REALMNAME  D115                                      004480
          :10     +EOS        15                                        004490
          :11     $REALM      YES 
          :12     +NAME       D115  D145  +SNS  11                      004520
            /     09                                                    004530
          :15     $,          D215  +SNS  11                            004540
            /     12                                                    004550
:RECORD:01        $RECORD     D119  +SNS    *ABORT4 
            /     *RECD1STCKF 
          :05     +NAME       D120  +SNS  07                            004580
            /     *RECDNAME   D121                                      004590
            /     *RECDWITHIN D122                                      004600
            /     +EOS        D216  +SNS  07                            004610
          :07     TYPE                                                  004630
            /     $RECORD     YES       # NOT RECORD STMT---GO TO ROOT #
            /     *SETLEVEL01                                           004650
            /     *LEVEL01    D217                                      004660
            /     05                    # LOOP TO PROCESS RECORD NAME  #
# TYPE ROUTINE CHECKS TYPE STATEMENTS, CALLING NEXTITEM FOR EACH ITEM. #000600
#  RETURNS NO IF NO VALID TYPE STATEMENTS ARE FOUND.                   #000610
#  RETURNS YES WHEN DONE-WHEN NEXT STATEMENT IS NOT A TYPE STATEMENT.  #000620
:TYPE:01          *RESETCHARFLG 
            /     $REAL       05
            /     *ITEMF1CKF                                            004770
          :03     *ITEM2COMP  13                                        004780
          :05     $INTEGER    09                                        004790
            /     *ITEMF1CKF                                            004800
          :07     *ITEM1COMP  13                                        004810
          :09     $CHARACTER  12
            /     *ITEMF1CKF
          :10     *CHARACTERRTN  D218 
            /     $*
                  *SETDFLEN1  11        # THIS PROC ALWAYS RETURNS NO  #
            /     +INT        D127
            /     *SETDFLEN2  D126
            /     *LEVELCONVRTF 
          :11     -,          13
          :12     $DOUBLE     20
            /     $PRECISION
                  *CHKFTN5    D138
            /     *ITEMF1CKF
          :14     *DOUBLERTN  13
          :20     $BOOLEAN    22                                        000370
            /     *ITEMF1CKF                                            000380
          :21     *BOOLEANRTN 13                                        000390
          :22     $COMPLEX    24                                        000400
            /     *ITEMF1CKF                                            000410
          :23     *COMPLEXRTN 13                                        000420
          :24     $LOGICAL    D211  NO  # FIRST STATEMENT AFTER RECORD #000430
                                        # IS NOT A TYPE STATEMENT.     #000440
            /     *ITEMF1CKF                                            000450
          :25     *LOGICALRTN                                           000460
          :13     +FNAME      D124  *SETWBPTR  +SNW  17                 000130
            /     *ITEMDOM    D217  *SETWBPTR  +SNW  17                 000140
            /     *ITEMNAME   *SETWBPTR  17                             000150
            /     *GENCOMMON                                            004880
            /     *ITEMUSECK  D217                                      004890
            /     $(          15                                        000290
          :44     +INT        D130  +SNS  31                            000300
            /     *ITEMOC1INT 
            /     $:  
                  *ITEMOCEND  40   # THIS PROC ALWAYS RETURNS NO       #
            /     +INT        D130  +SNS  31                            000330
            /     *ITEMOC2INT 
          :40     $,          42                                        000350
            /     44                                                    000360
          :42     *ITEMTIMES                                            000370
            /     *ADJWBPTR   *INCRWBPTR                                000390
          :46     $)    D130  *SETWBPTR  +SNS  31                       000130
          :15     $*          16
            /     +INT        D127
            /     *SETCHARLEN D126
          :16     *ITEMEND
          :17     $,          30                                        004910
            /     NEXTITEM                                              004920
            /     13                                                    004930
          :30     +EOS        D216  +SNS  31                            004940
            /     *WRTCOM                                               004950
          :31     *RESETCHARFLG 
            /     $REAL       32
            /     NEXTITEM                                              004980
            /     03                                                    004990
          :32     $INTEGER    33
            /     NEXTITEM                                              005010
            /     07                                                    005020
          :33     $CHARACTER  34
            /     NEXTITEM
            /     10
          :34     $DOUBLE     35                                        000480
            /     $PRECISION
                  *CHKFTN5    D138
            /     NEXTITEM                                              005050
            /     14
          :35     $BOOLEAN    36                                        000500
            /     NEXTITEM                                              000510
            /     21                                                    000520
          :36     $COMPLEX    37                                        000530
            /     NEXTITEM                                              000540
            /     23                                                    000550
          :37     $LOGICAL    YES       # NEXT STMT NOT A TYPE STMT.   #000560
            /     NEXTITEM                                              000570
            /     25                                                    000580
:NEXTITEM:01      *LEVELCONVRTF  D217                                   005070
          :22     *LEVEL01                                              005110
            /     YES 
  
:END:01                            #--------END--STATEMENT-------------#
                                   #                                   #
                  *ENDSS           # CALCULATE REC SIZES, SET DIRECTORY#
  
          :10     $END       40    # IF NO END STMT GO TO 40           #
            /     +EOS       D216 +SNS  # CHECK FOR JUNK AT END        #
  
          :20     +EOT       30    # CHECK FOR EOF                     #
            /     *ENDPASS1  SKIPRL  # IF SO, CLOSE FILES, LOAD OVL 5,2#
                                   # RETURN ONLY ON ERROR              #
  
          :30     $SUBSCHEMA 45    # CHECK FOR MULTIPLE SUBSCHEMAS     #
            /     YES              # YES, RETURN TO STDYES             #
  
          :45     D213       +SNS  # NO, INVALID STATEMENT AFTER END   #
                  +EOS             # GO TO NEXT STATEMENT (EOS SKIPS $)#
            /     20               # CHECK FOR END OF FILE             #
  
          :40     +EOT       50    # IF NO END STMT AND END OF FILE    #
            /     D214             # PRINT NO END STMT ERROR (214)     #
                  *ENDPASS1  SKIPRL  # CLOSE FILES, LOAD OVL 5,2       #
                                   # RETURN ONLY ON ERROR              #
  
          :50     $SUBSCHEMA D212 +SNS 10  # IF NO END AND NEXT STMT   #
            /     D214       YES   # NOT SUBSCHEMA, *INVALID STMT*     #
                                   # CHECK NEXT STMT FOR END           #
                                   # IF SUBSCHEMA STMT, PRINT *NO END* #
                                   # GO TO PROCESS SUBSCHEMA           #
  
:SKIPRL:05        D206             #-----SKIP RECORD LENGTH------------#
          :10     +EOT        15
            /     *ABORT4 
  
          :15     $SUBSCHEMA  +SNS  10                                  000200
            /     *SETSSFGT   *ABORT4 
END                                                                     006370
