Macro Processors

                Flowcharts
Pass 1-Processing macro definitions
Pass 2-Processing macro calls and expansion
Pass 1
                                    Pass 1 – processing macro definitions

      MDTC<-1
      MNTC<-1



        Read next
       source card



         MACRO            No
                               Write copy of
         pseudo-
                               source card
           op?
                Yes
                                                                              END
                                                                                         No
                                                                            pseudo-
        Read next
                                                                              op?
       source card
                                                                                 Yes


  Enter macro name and                                                    Go to Pass 2
  current value of MDTC                            Read next
   in MNT entry number                            source card
          MNTC
                                                   Substitute
                                                     index
    MNTC <- MNTC + 1                              notation for
                                                  arguments

Prepare argument list array
                                               Enter line into MDT

 Enter macro name card
        into MDT                               MDTC <- MDTC + 1


    MDTC <- MDTC + 1
                                                     MEND
                                                    pseudo-
                                  Yes                 op?            No
Pass 2
                                         Pass 2 – processing macro calls and expansion

           Read next
          source card
           (copied by
             pass 1)


       Search MNT for match
        with operation code


            MACRO            No         Write into
             name                       expanded
            found?                     source card
                                           file
                   Yes
                                                                         END
                                                                                      No
                                                                       pseudo-
      MDTP <- MDT index
                                                                         op?
       from MNT entry
                                                                            Yes
                                                                   Supply expanded
      Set up argument list
                                                                     source file to
             array
                                                                      assembler
                                                                      processing
       MDTP <- MDTP + 1


       Get line from MDT


      Substitute arguments
        from macro call



             MEND                                       Write
            pseudo-                                   expanded
Yes           op?                                    source card
                                  No

Pass 1 flowchart

  • 1.
    Macro Processors Flowcharts Pass 1-Processing macro definitions Pass 2-Processing macro calls and expansion
  • 2.
    Pass 1 Pass 1 – processing macro definitions MDTC<-1 MNTC<-1 Read next source card MACRO No Write copy of pseudo- source card op? Yes END No pseudo- Read next op? source card Yes Enter macro name and Go to Pass 2 current value of MDTC Read next in MNT entry number source card MNTC Substitute index MNTC <- MNTC + 1 notation for arguments Prepare argument list array Enter line into MDT Enter macro name card into MDT MDTC <- MDTC + 1 MDTC <- MDTC + 1 MEND pseudo- Yes op? No
  • 3.
    Pass 2 Pass 2 – processing macro calls and expansion Read next source card (copied by pass 1) Search MNT for match with operation code MACRO No Write into name expanded found? source card file Yes END No pseudo- MDTP <- MDT index op? from MNT entry Yes Supply expanded Set up argument list source file to array assembler processing MDTP <- MDTP + 1 Get line from MDT Substitute arguments from macro call MEND Write pseudo- expanded Yes op? source card No