|
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»