home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
simtel
/
sigm
/
vols000
/
vol039
/
ll1anl.pli
< prev
next >
Wrap
Text File
|
1984-04-29
|
3KB
|
79 lines
LL1ANL: PROC OPTIONS(MAIN);
/****************************************************************
* LL(1) GRAMMAR ANALYZER - MAIN ROUTINE *
*PURPOSE: *
* THIS PROGRAM IS THE MAIN CONTROL ROUTINE OF THE LL(1) *
* GRAMMAR ANALYZER SYSTEM. ITS RESPONSIBILITY IS TO IN- *
* VOKE EACH PHASE OF THE ANALYZER AND CONTAIN THE COMMON *
* AREAS PASSED BETWEEN PHASES. *
*INPUT: *
*OUTPUT: *
*OUTLINE: *
*REMARKS: *
****************************************************************/
/****************************************************************
* * * * * * * * * * * * DATA DEFINITIONS * * * * * * * * * * *
****************************************************************/
/* * * * COMMON REPLACEMENTS * * * */
%REPLACE TRUE BY '1'B;
%REPLACE FALSE BY '0'B;
/* * * * COMMON AREAS * * * */
%INCLUDE 'LL1CMN.DCL';
/* * * * COMMON PROCEDURES * * * */
%INCLUDE 'LL1PRC.DCL';
/* * * * EXTERNAL ROUTINES * * * */
DCL LL1P00 ENTRY;
DCL LL1P10 ENTRY;
DCL LL1P20 ENTRY;
DCL LL1P30 ENTRY;
DCL LL1P40 ENTRY;
DCL LL1P50 ENTRY;
DCL LL1P60 ENTRY;
DCL LL1P70 ENTRY;
DCL LL1P80 ENTRY;
/* * * * MAIN ROUTINE * * * */
/* DO INITIALIZATION. */
PUT SKIP(2) LIST('INITIALIZING COMMON AREAS...');
CALL LL1P00; /* DO IT. */
/* READ IN THE GRAMMAR WITH MINOR ANALYSIS. */
PUT SKIP(2) LIST('READING IN THE GRAMMAR...');
CALL LL1P10; /* READ IN THE GRAMMAR. */
/* PRINT THE GRAMMAR. */
PUT SKIP(2) LIST('PRINTING THE GRAMMAR...');
CALL LL1P20; /* ANALYZE IT. */
/* FIND NULLABLE NON-TERMINALS AND PRODUCTIONS. */
PUT SKIP(2) LIST('FINDING THE NULLABLE NON-TERMS AND PRODS...');
CALL LL1P30; /* ANALYZE IT. */
/* CALCULATE THE BEGINING TYPE RELATIONS. */
PUT SKIP(2) LIST('CALCULATE THE BEGINING TYPE RELATIONS...');
CALL LL1P40; /* ANALYZE IT. */
/* CALCULATE THE END TYPE RELATIONS. */
PUT SKIP(2) LIST('CALCULATE THE END TYPE RELATIONS...');
CALL LL1P50; /* ANALYZE IT. */
/* CALCULATE THE FOLLOW SET RELATION. */
PUT SKIP(2) LIST('CALCULATE THE FOLLOW SET RELATION...');
CALL LL1P60; /* ANALYZE IT. */
/* CALCULATE THE SELECTION SET. */
PUT SKIP(2) LIST('CALCULATE THE SELECTION SET...');
CALL LL1P70; /* ANALYZE IT. */
/* VALIDATE THAT THE LANGUAGE IS LL(1). */
PUT SKIP(2) LIST('VALIDATING THAT THE LANGUAGE IS LL(1)...');
CALL LL1P80; /* ANALYZE IT. */
END LL1ANL;