home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / simtel / sigm / vols000 / vol039 / ll1p00.pli < prev    next >
Text File  |  1984-04-29  |  3KB  |  75 lines

  1. LL1P00: PROC;
  2. /****************************************************************
  3. *              LL(1) GRAMMAR ANALYZER - PHASE 00        *
  4. *PURPOSE:                                                       *
  5. *    THIS PROGRAM IS RESPONSIBLE FOR INITIALIZING THE LANGUAGE  *
  6. *    ANALYZER COMMON AREAS.                           *
  7. *INPUT:                                                         *
  8. *OUTPUT:                                                        *
  9. *OUTLINE:                                                       *
  10. *REMARKS:                                                       *
  11. ****************************************************************/
  12.  
  13. /****************************************************************
  14. * * * * * * * * * * * COMMON DATA DEFINITIONS * * * * * * * * * *
  15. ****************************************************************/
  16.  
  17. /*    * * *  COMMON REPLACEMENTS  * * *    */
  18. %REPLACE TRUE BY '1'B;
  19. %REPLACE FALSE BY '0'B;
  20.  
  21. %INCLUDE 'LL1CMN.DCL';    /* GET COMMON AREAS. */
  22.     DCL I FIXED;
  23.  
  24. /****************************************************************
  25. * * * * * * * * * * * COMMON PROCUDURES * * * * * * * * * * * * *
  26. ****************************************************************/
  27.  
  28. %INCLUDE 'LL1PRC.DCL';  /* GET COMMON PROCEDURES. */
  29.  
  30.  
  31. /****************************************************************
  32. * * * * * * * * * * * MAIN LINE PROCEDURE * * * * * * * * * * * *
  33. ****************************************************************/
  34.  
  35. /* DO INITIALIZATION. */
  36.       PUT SKIP LIST('BEGINNING PHASE 00 PROCESSING.');
  37.  
  38. /*    INITIALIZE COMMON AREAS. */
  39.     PUT SKIP LIST('INITIALIZING COMMON AREAS...');
  40.     NUMVOC=0;        /* NUMBER OF VOCABULARY ELEMENTS */
  41.     TRM='';            /* TERMINAL TOKEN INDEX */
  42.     NTRM='';        /* NON-TERMINAL TOKEN INDEX */
  43.     ALIVE='';        /* ALIVE NON-TERMINAL INDEX */
  44.     DEAD='';        /* DEAD NON-TERMINAL INDEX */
  45.     NLNTRM='';        /* NULL NON-TERMINAL INDEX */
  46.     STRSYM=ASCII(0);
  47.     NUMPRD=0;        /* NUMBER OF PRODUCTIONS IN GRAMMAR */
  48.     DO I=1 TO 254;        /* VOCABULARY */
  49.        VOC(I)='';
  50.     END;
  51.     DO I=1 TO MAX_PROD;    /* PRODUCATIONS */
  52.        LHS(I)='';
  53.        RHS(I)='';
  54.        NULPRD(I)=0;
  55.     END;
  56.  
  57. /*    OPEN LIST FILE. */
  58.     PUT SKIP LIST('OPENING LIST FILE...');
  59.     OPEN FILE(LSTFIL) STREAM OUTPUT PRINT LINESIZE(132) 
  60.         PAGESIZE(60) TITLE('$1.PRN');
  61.     LSTOPN=TRUE;        /* SET FOR OPEN.*/
  62.     PUT FILE(LSTFIL) PAGE;
  63.  
  64. /*    ESTABLISH DEFAULTS FOR FLAGS. */
  65.     PUT SKIP LIST('INITIALIZING FLAGS...');
  66.     FLAGS1(1)=TRUE;        /* SET FOR LIST INPUT IN PHASE 1.*/
  67.     FLAGS1(2)=FALSE;    /* SET FOR LIST TABLES AT END OF
  68.                    PHASE 1. */
  69.     TRACE1(1)=FALSE;    /* SET FOR TRACE PHASE 1 - GETTOK. */
  70.     TRACE1(2)=FALSE;    /* SET FOR TRACE PHASE 1 - PROD. */
  71.  
  72. /* RETURN TO CALLER. */
  73.      PUT SKIP LIST('PHASE 00 PROCESSING COMPLETE.');
  74.      END LL1P00;
  75.