home *** CD-ROM | disk | FTP | other *** search
- External Cross::Init(3);{$L-}{$E-}{$T-}{$C-}
- PROCEDURE INIT_P3;
- BEGIN
- RESNUM[1] := 1;
- RESNUM[2] := 1;
- RESNUM[3] := 7;
- RESNUM[4] :=15;
- RESNUM[5] :=26;
- RESNUM[6] :=32;
- RESNUM[7] :=38;
- RESNUM[8] :=42;
- RESNUM[9] :=44;
- RESNUM[10]:=47;
- RESNUM[11]:=Num_Reserved_Words;
- {%E}
- { NOTE THAT SYMBOLS THAT ARE NOT USED BY THIS PASCAL ARE MADE IMPOSSIBLE TO
- MATCH BY THE ADDITION OF .....'S}
- RESLIST[ 1] :='IF '; RESSY [ 1] := IFSY;
- RESLIST[ 2] :='TO '; RESSY [ 2] := OTHERSY;
- RESLIST[ 3] :='OF '; RESSY [ 3] := OFSY;
- RESLIST[ 4] :='IN '; RESSY [ 4] := OTHERSY;
- RESLIST[ 5] :='DO '; RESSY [ 5] := DOSY;
- RESLIST[ 6] :='OR '; RESSY [ 6] := OTHERSY;
- RESLIST[ 7] :='END '; RESSY [ 7] := ENDSY;
- RESLIST[ 8] :='FOR '; RESSY [ 8] := OTHERSY;
- RESLIST[ 9] :='SET '; RESSY [ 9] := OTHERSY;
- RESLIST[10] :='AND '; RESSY [10] := OTHERSY;
- RESLIST[11] :='NOT '; RESSY [11] := OTHERSY;
- RESLIST[12] :='VAR '; RESSY [12] := VARSY;
- RESLIST[13] :='NIL '; RESSY [13] := OTHERSY;
- RESLIST[14] :='DIV '; RESSY [14] := OTHERSY;
- RESLIST[15] :='LOOP......'; RESSY [15] := LOOPSY;
- RESLIST[16] :='CHAR '; RESSY [16] := OTHERSY;
- RESLIST[17] :='GOTO '; RESSY [17] := OTHERSY;
- RESLIST[18] :='THEN '; RESSY [18] := THENSY;
- RESLIST[19] :='ELSE '; RESSY [19] := ELSESY;
- RESLIST[20] :='WITH '; RESSY [20] := OTHERSY;
- RESLIST[21] :='CASE '; RESSY [21] := CASESY;
- RESLIST[22] :='REAL '; RESSY [22] := OTHERSY;
- RESLIST[23] :='FILE '; RESSY [23] := OTHERSY;
- RESLIST[24] :='TYPE '; RESSY [24] := TYPESY;
- RESLIST[25] :='EXIT......'; RESSY [25] := EXITSY;
- RESLIST[26] :='BEGIN '; RESSY [26] := BEGINSY;
- RESLIST[27] :='ARRAY '; RESSY [27] := OTHERSY;
- RESLIST[28] :='WHILE '; RESSY [28] := OTHERSY;
- RESLIST[29] :='CONST '; RESSY [29] := CONSTSY;
- RESLIST[30] :='LABEL '; RESSY [30] := LABELSY;
- RESLIST[31] :='UNTIL '; RESSY [31] := UNTILSY;
- RESLIST[32] :='RECORD '; RESSY [32] := RECORDSY;
- RESLIST[33] :='REPEAT '; RESSY [33] := REPEATSY;
- RESLIST[34] :='DOWNTO '; RESSY [34] := OTHERSY;
- RESLIST[35] :='PACKED '; RESSY [35] := OTHERSY;
- RESLIST[36] :='OTHERS....'; RESSY [36] := OTHERSSY;
- RESLIST[37] :='EXTERN....'; RESSY [37] := EXTERNSY;
- RESLIST[38] :='INTEGER '; RESSY [38] := OTHERSY;
- RESLIST[39] :='BOOLEAN '; RESSY [39] := OTHERSY;
- RESLIST[40] :='FORWARD '; RESSY [40] := FORWARDSY;
- RESLIST[41] :='FORTRAN...'; RESSY [41] := FORTRANSY;
- RESLIST[42] :='FUNCTION '; RESSY [42] := FUNCT_SY;
- RESLIST[43] :='EXTERNAL '; RESSY [43] := EXTERNSY;
- RESLIST[44] :='PROCEDURE '; RESSY [44] := PROC_SY;
- RESLIST[45] :='INITPROCE.'; RESSY [45] := INITPROCSY;
- ResList[46] :='OTHERWISE.'; RESSY [46] := Other_Wise;
- ResList[47] :='SUBPROGRA.'; RESSY [47] := Sub_Program;
- END;
- {%E}
- PROCEDURE INIT_PROC;
- BEGIN
- PROCDEC:=0;
- No_Main:=False;
- Bump:=False;
- Nasty:=False;
- RightMargin:=75;
- I := 0;
- BUFFLEN := 0;
- BUFFMARK := 0;
- BUFFERPTR := 2;
- BUFFINDEX := 0;
- REALLINCNT:= 0;
- LINECNT :=0;
- BLOCKNR := 0;
- LEVEL := 0;
- PAGECNT := 1;
- PAGECNT2 := 0;
- INCREMENT := 1;
- EOB := FALSE;
- ERRFLAG := FALSE;
- OLDSPACES := FALSE;
- CH := ' ';
- BMARKTEXT := ' ';
- EMARKTEXT := ' ';
- SY := ' ';
- MESSAGE := 'Error in blockstructure';
- DIGITS := ['0'..'9'];
- LETTERS := ['A'..'Z','a'..'z','$','_'];
- ALPHANUM:=['0'..'9','A'..'Z','a'..'z','$','_'](*LETTERS OR DIGITS*);
- DECSYM := [LABELSY..VARSY];
- PROSYM := [FUNCT_SY..INITPROCSY];
- ENDSYM := [FUNCT_SY..EOBSY]; (*PROSYM OR ENDSYMBOLS*)
- BEGSYM := [BEGINSY..IFSY];
- RELEVANTSYM := [LABELSY..INITPROCSY (*DECSYM OR PROSYM*)
- ,BEGINSY,FORWARDSY,FORTRANSY,EXTERNSY,EOBSY];
- END;
- {%E}
- PROCEDURE INIT;
- BEGIN (*INIT*)
- FOR CH := First_Char TO Last_Char DO FIRSTNAME [CH] := NIL;
- FOR CH := ' ' TO '_' DO DELSY [CH] := OTHERSY;
- DELSY ['('] := LPARENT;
- DELSY [')'] := RPARENT;
- DELSY ['['] := LPARENT;
- DELSY [']'] := RPARENT;
- DELSY [';'] := SEMICOLON;
- DELSY ['.'] := POINT;
- DELSY [':'] := COLON;
- FOR I := 1 TO 147 DO BUFFER [I] := ' ';
- I := 0;
- NEW (FIRSTNAME['M']);
- LISTPTR := FIRSTNAME ['M'];
- WITH FIRSTNAME ['M']^ DO
- BEGIN
- NAME := 'MAIN. ';
- LLINK := NIL;
- RLINK := NIL;
- NEW (FIRST);
- LAST := FIRST;
- PROCVAR := 1;
- WITH LAST^ DO
- BEGIN
- LINENR := LINECNT;
- CONTLINK := NIL;
- END;
- NEW (CALLED);
- WITH CALLED^ DO
- BEGIN
- PROCNAME := FIRSTNAME ['M'];
- NEXTPROC := NIL;
- NEW (FIRST);
- FIRST^.LINENR := 0;
- FIRST^.CONTLINK := NIL;
- LAST := FIRST;
- END;
- {%E}
- NEW (CALLEDBY);
- WITH CALLEDBY^ DO
- BEGIN
- PROCNAME := FIRSTNAME ['M'];
- NEXTPROC := NIL;
- NEW (FIRST);
- FIRST^.LINENR := 0;
- FIRST^.CONTLINK := NIL;
- LAST := FIRST;
- END;
- END;
- NEW (PROC_CF);
- WITH PROC_CF^ DO
- BEGIN
- PROCNAME := FIRSTNAME ['M'];
- NEXTPROC := NIL;
- LINENR := 0;
- PROCLEVEL:= 0;
- END;
- PROC_CL := PROC_CF;
- END (*INIT*) ;
- .
-