DataMuseum.dk

Presents historical artifacts from the history of:

CP/M

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CP/M

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦2e4a4add5⟧ TextFile

    Length: 8448 (0x2100)
    Types: TextFile
    Names: »PPINIT.PAS«

Derivation

└─⟦02f213fda⟧ Bits:30008919 MT+ SPP 2/3
    └─⟦this⟧ »PPINIT.PAS« 

TextFile

(*  VERSION 0026 *)

(* 5.5 STARTS WITH VERSION 26 *)

MODULE PPINIT;

(*$I PPTYPES*)

(*$I PPEXTS*)

EXTERNAL PROCEDURE GETCHAR;

EXTERNAL PROCEDURE GETSYMBOL(VAR NEXTSYM,CURRSYM : SYMBOLINFO);
PROCEDURE INITIALIZE;

PROCEDURE IDINIT;
BEGIN
  KEYWORDÆPROGSY  Å := 'PROGRAM   ' ;
  KEYWORDÆEXTSY   Å := 'EXTERNAL  ' ;
  KEYWORDÆFUNCSY  Å := 'FUNCTION  ' ;
  KEYWORDÆPROCSY  Å := 'PROCEDURE ' ;
  KEYWORDÆLABELSY Å := 'LABEL     ' ;
  KEYWORDÆCONSTSY Å := 'CONST     ' ;
  KEYWORDÆTYPESY  Å := 'TYPE      ' ;
  KEYWORDÆVARSY   Å := 'VAR       ' ;
  KEYWORDÆBEGINSY Å := 'BEGIN     ' ;
  KEYWORDÆREPEATSYÅ := 'REPEAT    ' ;
  KEYWORDÆRECORDSYÅ := 'RECORD    ' ;
  KEYWORDÆCASESY  Å := 'CASE      ' ;
  KEYWORDÆCASEVARSYÅ:= 'CASE      ' ;
  KEYWORDÆOFSY    Å := 'OF        ' ;
  KEYWORDÆFORSY   Å := 'FOR       ' ;
  KEYWORDÆWHILESY Å := 'WHILE     ' ;
  KEYWORDÆWITHSY  Å := 'WITH      ' ;
  KEYWORDÆDOSY    Å := 'DO        ' ;
  KEYWORDÆIFSY    Å := 'IF        ' ;
  KEYWORDÆTHENSY  Å := 'THEN      ' ;
  KEYWORDÆELSESY  Å := 'ELSE      ' ;
  KEYWORDÆENDSY   Å := 'END       ' ;
  KEYWORDÆUNTILSY Å := 'UNTIL     ' ;

  TOP := 0;
  CURLINEPOS := 0;
  CURRMARGIN := 0;
  DBLCHARS := ÆBECOMES,OPENCOMMENTÅ;
  
  DBLCHRÆBECOMES    Å := ':=';
  DBLCHRÆOPENCOMMENTÅ := '(*';
  
  SGLCHARÆOPENCOMMENTÅ := 'æ';
  SGLCHARÆCLOSECOMMENTÅ := 'å';
  SGLCHARÆSEMICOLON Å := ';';
  SGLCHARÆCOLON     Å := ':';
  SGLCHARÆEQUALS    Å := '=';
  SGLCHARÆOPENPAREN Å := '(';
  SGLCHARÆCLOSEPARENÅ := ')';
  SGLCHARÆPERIOD    Å := '.';

  RECORDSEEN := FALSE;
  COLONSEEN := FALSE;

  FILLCHAR(CUR,SIZEOF(CHARINFO),CHR(0));
  NXT := CUR;
  
  GETCHAR;
  
æ-----------------
  NEW(CURRSYM);
  NEW(NEXTSYM);
------------------å
  
  GETSYMBOL(NEXTSYM,CURRSYM);
  
END; (* IDINIT *)

PROCEDURE PPOPTINIT;

  PROCEDURE PP1;
  BEGIN
  
  WITH PPOPTIONÆPROGSYÅ DO
    BEGIN
      OPT := ÆBLANKLINEBEFORE, SPACEAFTERÅ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ;
    END;
    
  WITH PPOPTIONÆ EXTSY Å DO
    BEGIN
      OPT := ÆBLANKLINEBEFORE, SPACEAFTERÅ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ
    END;

  WITH PPOPTIONÆFUNCSYÅ DO
    BEGIN
      OPT := ÆBLANKLINEBEFORE,DINDENTONKEYS,SPACEAFTERÅ;
      DINDENTSYMBOLS := ÆLABELSY,CONSTSY,TYPESYÅ;
      GOBBLETERMINATORS := ÆÅ
    END;

  WITH PPOPTIONÆPROCSYÅ DO
    BEGIN
      OPT := ÆBLANKLINEBEFORE, DINDENTONKEYS, SPACEAFTERÅ;
      DINDENTSYMBOLS := Æ LABELSY, CONSTSY, TYPESY, VARSY Å;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTION Æ LABELSY Å DO
    BEGIN
      OPT := ÆCRBEFORE, SPACEAFTER, INDENTTOCLP Å;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTION Æ CONSTSY Å DO
    BEGIN
      OPT := Æ CRBEFORE, DINDENTONKEYS, SPACEAFTER, INDENTTOCLP Å;
      DINDENTSYMBOLS := Æ LABELSY Å ;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTION Æ TYPESY Å DO
    BEGIN
      OPT := Æ CRBEFORE, DINDENTONKEYS, SPACEAFTER, INDENTTOCLP Å;
      DINDENTSYMBOLS := Æ LABELSY, CONSTSY Å ;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTION Æ VARSY Å DO
    BEGIN
      OPT := ÆCRBEFORE, DINDENTONKEYS, SPACEAFTER, INDENTTOCLP Å;
      DINDENTSYMBOLS := ÆLABELSY, CONSTSY, TYPESY Å;
      GOBBLETERMINATORS := ÆÅ;
    END;
    
  WITH PPOPTION Æ BEGINSY Å DO
    BEGIN
      OPT := ÆDINDENTONKEYS, INDENTBYTAB, CRAFTERÅ;
      DINDENTSYMBOLS := ÆLABELSY, CONSTSY, TYPESY, VARSY Å ;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTIONÆ REPEATSY Å DO
    BEGIN
      OPT := ÆINDENTBYTAB, CRAFTER Å;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTION Æ RECORDSY Å DO
    BEGIN
      OPT := ÆINDENTBYTAB, CRAFTERÅ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTION Æ CASESY Å DO
    BEGIN
      OPT := ÆSPACEAFTER, INDENTBYTAB, GOBBLESYMBOLS, CRAFTERÅ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆOFSYÅ
    END;
    
  WITH PPOPTION Æ CASEVARSY Å DO
    BEGIN
      OPT := ÆSPACEAFTER, INDENTBYTAB, GOBBLESYMBOLS, CRAFTER Å;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆOFSYÅ
    END;
    
  WITH PPOPTION Æ OFSY Å DO
    BEGIN
      OPT := ÆCRSUPPRESS, SPACEBEFORE Å ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := Æ OFSY Å
    END;
    
  WITH PPOPTION Æ FORSY Å DO
    BEGIN
      OPT := ÆSPACEAFTER, INDENTBYTAB, GOBBLESYMBOLS, CRAFTERÅ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆDOSYÅ
    END;
    
  WITH PPOPTION Æ WHILESY Å DO
    BEGIN
      OPT := ÆSPACEAFTER, INDENTBYTAB, GOBBLESYMBOLS, CRAFTER Å ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆDOSYÅ;
    END;
    
  WITH PPOPTION Æ WITHSY Å DO
    BEGIN
      OPT := ÆSPACEAFTER, INDENTBYTAB, GOBBLESYMBOLS, CRAFTER Å;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := Æ DOSY Å;
    END;
    
  WITH PPOPTION Æ DOSY Å DO
    BEGIN
      OPT := ÆCRSUPPRESS, SPACEBEFORE Å;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTION Æ IFSY Å DO
    BEGIN
      OPT := ÆSPACEAFTER, INDENTBYTAB, GOBBLESYMBOLSÅ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆTHENSYÅ
    END;
    
  END; (* PP1 *)
  

  PROCEDURE PP2;
  BEGIN
  

  WITH PPOPTION Æ THENSYÅ DO
    BEGIN
      OPT := ÆSPACEBEFORE, CRAFTER Å;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTION Æ ELSESY Å DO
    BEGIN
      OPT := ÆCRBEFORE, DINDENTONKEYS, æDINDENT,å INDENTBYTAB, CRAFTER Å;
      DINDENTSYMBOLS := ÆIFSY,ELSESYÅ;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTION Æ ENDSY Å DO
    BEGIN
      OPT := ÆCRBEFORE, DINDENTONKEYS, DINDENT, CRAFTER Å;
      DINDENTSYMBOLS := ÆIFSY,THENSY,ELSESY,FORSY, WHILESY, WITHSY,
                         CASEVARSY,COLON, EQUALSÅ;
    END;
    
  WITH PPOPTION Æ UNTILSY Å DO
    BEGIN
      OPT := Æ CRBEFORE, DINDENTONKEYS, DINDENT, SPACEAFTER, GOBBLESYMBOLS,
               CRAFTERÅ;
      DINDENTSYMBOLS := Æ IFSY, THENSY, ELSESY, FORSY, 
                        WHILESY, WITHSY, COLON, EQUALS Å ;
      GOBBLETERMINATORS := Æ ENDSY, UNTILSY, ELSESY, SEMICOLON Å 
    END;
    
  WITH PPOPTION Æ BECOMES Å DO
    BEGIN
      OPT := Æ SPACEBEFORE, SPACEAFTER, GOBBLESYMBOLS Å ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := Æ ENDSY, UNTILSY, ELSESY, SEMICOLON Å
    END;
    
  WITH PPOPTION Æ CLOSECOMMENT Å DO
    BEGIN
      OPT := ÆCRSUPPRESSÅ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ;
    END;
    
  WITH PPOPTION Æ SEMICOLON Å DO
    BEGIN
      OPT := ÆCRSUPPRESS, DINDENTONKEYS, CRAFTERÅ;
      DINDENTSYMBOLS := ÆIFSY, THENSY, ELSESY, FORSY, WHILESY,
                         WITHSY, COLON, EQUALS Å ;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTION Æ COLON Å DO
    BEGIN
      OPT := ÆSPACEAFTER, INDENTTOCLP Å ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ;
    END;
    
  WITH PPOPTION Æ EQUALS Å DO
    BEGIN
      OPT := ÆSPACEBEFORE, SPACEAFTER, INDENTTOCLP Å ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTION Æ OPENPAREN Å DO
    BEGIN
      OPT := ÆGOBBLESYMBOLS Å ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆCLOSEPARENÅ
    END;
    
  WITH PPOPTION Æ CLOSEPAREN Å DO
    BEGIN
      OPT := ÆÅ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTION Æ PERIOD Å DO
    BEGIN
      OPT := ÆCRSUPPRESSÅ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTION Æ END_OF_FILE Å DO
    BEGIN
      OPT := ÆÅ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ
    END;
    
  WITH PPOPTION Æ ANOTHERSY Å DO
    BEGIN
      OPT := ÆSPACEAFTERÅ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ
    END;

  WITH PPOPTION Æ OTHERSY Å DO
    BEGIN
      OPT := ÆÅ;
      DINDENTSYMBOLS := ÆÅ;
      GOBBLETERMINATORS := ÆÅ
    END;

  END; (* PP2 *)
     
  BEGIN (* PPOPTINIT *)
    PP1;
    PP2;
  END; (* PPOPTINIT *)

BEGIN (* INITIALIZE *)

  IDINIT;
  PPOPTINIT;
END; (* INITIALIZE *)


MODEND.


«eof»