|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 8448 (0x2100)
Types: TextFile
Names: »PPINIT.PAS«
└─⟦02f213fda⟧ Bits:30008919 MT+ SPP 2/3
└─⟦this⟧ »PPINIT.PAS«
(* 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»