*DECK CBRSYN
PROC FTRSYN                                                             000130
A                                   0040     00007     00500 P2 . TEST  000120
AND                                 0040     00007     00500 P2 . TEST  000130
END                                 0204                                000160
EQ                                  0210     00001     00500 P2 . TEST  000150
GE                                  0220     00003     00500 P2 . TEST  000160
GT                                  0230     00005     00500 P2 . TEST  000170
LE                                  0330     00004     00500 P2 . TEST  000180
LT                                  0340     00006     00500 P2 . TEST  000190
N                                   0350     00012     00500 P2 . TEST  000200
NOT                                 0350     00012     00500 P2 . TEST  000210
NE                                  0360     00002     00500 P2 . TEST  000220
O                                   0370     00010                      000480
OR                                  0370     00010                      000490
RELATION                            0500                                000270
RESTRICT                            0520                                000280
SUBSCHEMA                           0530
X                                   0700     00011     00500 P2 . TEST  000260
XOR                                 0700     00011     00500 P2 . TEST  000270
,                                   0710
.                                   0720                                000310
(                                   0730     00013                      000320
)                                   0740     00014                      000330
+ 
AREARNK                            # CHK THAT REC AREA IS IN RST ENTRY #
CONLIT
DATANAME
ENDSTACK
FINDREC 
FINDSBDBI 
FINDSCDBI 
GETSCREC
LOGICALOP 
L66DBI
NORQT 
QALNME
RELNAME 
RELRQT
RELRST
RELRSTAR
RELTERM 
RESTRDBI
RESTREND
RESTRREC
RQTATTR 
RQTDBI
RQTDBILFT 
RQTDBIRT
RQTLIT
RQTNOTATION 
SETBCPBWP 
SETSSFGT
STORSUB 
VALIDATEDBI 
VALIDSUB
VIRTDBI 
PARENL                             # LEFT PARENTHESIS FLAG ROUTINE     #
PARENR                             # RIGHT PARENTHESIS FLAG ROUTINE    #
PAREND                             # MATCHING PARENTHESIS CHECK        #
REDOPCNT                           # RESET PARENTHESIS CNTR ON ERROR   #
+ 
:START:07         +NAME   D401   +SNS   20                              000350
            /     *RELNAME   D402                                       000360
            /     *RELRST   D403                                        000370
            /     *RELRSTAR                                             000380
                  +EOS   D419   +SNS   09  # REST NOT SCANABLE.        #000390
          :09     $RESTRICT   *NORQT   20                               000400
            /     RESTRICT   20                                         000410
          :20     $RELATION   25                                        000420
            /     07                                                    000430
                                   #------------END STATEMENT----------#
                                   #                                   #
          :25     $END       55    # IF NO END STMT, GO TO 55          #
            /     +EOS       D419 +SNS  # CHECK FOR JUNK AT END OF END #
  
          :35     +EOT       45    # CHECK FOR EOF                     #
            /     *RELTERM         # IF SO, CLOSE FILES, LOAD OVL 5,4  #
                                   # NOTE:  DOES NOT RETURN            #
  
          :45     $SUBSCHEMA 50    # CHECK FOR MULTIPLE SUBSCHEMAS     #
            /     *SETSSFGT        # YES, SET FLAG                     #
                  *RELTERM         # GO TO LOAD OVL 5,4                #
  
          :50     D432       +SNS  # NO, INVALID STATEMENT AFTER END   #
                  +EOS             # GO TO NEXT STATEMENT (EOS SKIPS $)#
            /     35               # CHECK FOR END OF FILE             #
  
          :55     +EOT       65    # IF NO END STMT AND END OF FILE    #
            /     D431             # PRINT DIAG (431)-NO END STMT-     #
                  *RELTERM         # LOAD OVL 5,2 -NO RETURN-          #
  
          :65     $SUBSCHEMA D417 +SNS 25  # IF NO END AND NEXT STMT   #
          /       D431             # NOT SUBSCHEMA -INVALID STMT-      #
                  *SETSSFGT        # ERROR (417) CHECK NEXT STMT FOR   #
                  *RELTERM         # END.  IF SS PRESENT, PRINT DIAG   #
                                   # (431) -NO END-, PROCESS SUBSCHEMA #
  
:RESTRICT:05      *RELRQT                                               000550
          :07     +NAME   D405   65                                     000560
            /     *RESTRREC                                             000570
                  *FINDREC   D406   65                                  000580
            /     *GETSCREC                                             000590
                  *AREARNK         # CHK THAT REC AREA IS IN RST ENTRY #
                  D426 65          # NO, ERROR, SKIP REST OF STMT      #
            /     $(         10    # CHECK AND FLAG PRESENCE OF OUTER  #
            /     *PARENL          # LEFT PARENTHESIS                  #
  
          :10     $.   13                                               000610
            /     $NOT                                                  000620
                  $N   D430   13           # INVALID LOGICAL OP.       #000630
            /     *LOGICALOP                                            000640
                  $.   D418   13           # . MISSING.                #000650
  
          :13     $(         15    # CHECK AND FLAG PRESENCE OF INNER  #
            /     *PARENL          # (OPTIONAL) LEFT PARENTHESIS       #
  
          :15     +FNAME D407 65   # CHECK FOR INVALID DBI - YES, SKIP #
                                   # THE REMAINDER OF RESTRICT STMT    #
            /     *RESTRDBI                                             000690
                  DBISUB   65                                           000700
            /     *FINDSBDBI   65                                       000710
            /     *L66DBI   D425   65                                   000720
            /     *FINDSCDBI   65                                       000730
            /     *VALIDSUB                                             000740
                  *SETBCPBWP                                            000750
            /     *VIRTDBI  D424                                        000760
            /     *RQTDBI                                               000770
                  *RQTDBILFT                                            000780
                  $.   D427   65           # INVALID RELATIONAL OP.    #000790
            /     $EQ                                                   000800
                  $NE                                                   000810
                  $GT                                                   000820
                  $LT                                                   000830
                  $GE                                                   000840
                  $LE   D427   65          # INVALID RELATIONAL OP.    #000850
            /     *LOGICALOP                                            000860
                  $.   D418   65           # . MISSING.                #000870
            /     +FNAME   25                                           000880
            /     *RESTRDBI                                             000890
                  DBISUB   65                                           000900
            /     *FINDSBDBI   *DATANAME   35                           000910
            /     *L66DBI   D425   65                                   000920
            /     *FINDSCDBI   65                                       000930
            /     *VALIDSUB                                             000940
                  *SETBCPBWP                                            000950
            /     *VIRTDBI   D424                                       000960
            /     *RQTDBI                                               000970
                  *RQTDBIRT                                             000980
                  *VALIDATEDBI   D413                                   000990
            /     35                                                    001000
          :25     +LIT   D422   65                                      001010
            /     *CONLIT   D410   65                                   001020
            /     *RQTLIT                                               001030
  
          :35     $)         40    # CHECK AND FLAG PRESENCE OF INNER  #
            /     *PARENR          # (OPTIONAL) RIGHT PARENTHESIS      #
  
          :40     $.   45                                               001060
            /     $AND                                                  001070
                  $A                                                    001080
                  $OR                                                   001090
                  $O                                                    001100
                  $XOR                                                  001110
                  $X   D430   45           # INVALID LOGICAL OP.       #001120
            /     *LOGICALOP                                            001130
                  $.   D418   10           # . MISSING.                #001140
            /     10                                                    001150
  
          :45     $)         46    # CHECK AND FLAG PRESENCE OF OUTER  #
            /     *PARENR          # RIGHT PARENTHESIS                 #
          :46     *PAREND          # CHECK FOR UNMATCHED PARENTHESIS   #
                  +EOS D419 +SNS   # CHECK FOR JUNK AT END OF STMT     #
            /     $RESTRICT  50    # CHECK FOR RESTRICT FOLLOWING      #
            /     07               # IF SO, START OVER                 #
  
          :50     *RQTNOTATION                                          001190
                  *RQTATTR                                              001200
                  *RESTREND                                             001210
                  YES                                                   001220
          :65     SKIPTORESTR   05                                      001230
            /     NO                                                    001240
:DBISUB:05        $(   YES                                              001250
            /     +INT   D436   NO                                      001260
          :10     *STORSUB
            /     $,     15 
            /     +INT   15                                             001280
            /     10                                                    001290
          :15     $)   D438   NO                                        001300
            /     YES                                                   001310
                                   #                                   #
                                   #----------SKIP TO RESTRICT---------#
                                   #                                   #
:SKIPTORESTR:05   D433             # SKIPPING TO NEXT RESTRICT MSG     #
                  *REDOPCNT  +SNS  # RESET PARENTHESIS COUNTER         #
          :07     $RESTRICT   10                                        001330
            /     D434   NO                                             001340
          :10     *RESTREND  D435  YES  # THIS PROC ALWAYS RETURNS NO  #
END                                                                     001360
