-- file: WeaveParse1.mesa -- Pascal-to-Mesa translator output, translated at September 23, 1986 1:27:38 pm PDT DIRECTORY PascalBasic, PascalWizardFiles, WeaveProcs, WeaveVars; WeaveParse1: PROGRAM IMPORTS PascalWizardFiles, WeaveProcs, WeaveVars EXPORTS WeaveProcs = PUBLIC BEGIN OPEN PascalBasic, PascalWizardFiles, WeaveProcs, WeaveVars; EasyCases: PROCEDURE = BEGIN SELECT NextControl FROM 6 =>BEGIN TokMem↑[TokPtr]←92; TokPtr←TokPtr+1;TokMem↑[TokPtr]←105;TokPtr←TokPtr+1; TokMem↑[TokPtr]←110;TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1; Cat↑[ScrapPtr]←2;Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;32 =>BEGIN TokMem↑[TokPtr]←92; TokPtr←TokPtr+1;TokMem↑[TokPtr]←116;TokPtr←TokPtr+1; TokMem↑[TokPtr]←111;TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1; Cat↑[ScrapPtr]←2;Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END; 35,36,37,94,95 =>BEGIN TokMem↑[TokPtr]←92;TokPtr←TokPtr+1; TokMem↑[TokPtr]←NextControl;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←2;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; 0,124,131,132,133 => NULL;40,91 =>BEGIN TokMem↑[TokPtr]←NextControl; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←4; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END; 41,93 =>BEGIN TokMem↑[TokPtr]←NextControl;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←6;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; 42 =>BEGIN TokMem↑[TokPtr]←92;TokPtr←TokPtr+1;TokMem↑[TokPtr]←97; TokPtr←TokPtr+1;TokMem↑[TokPtr]←115;TokPtr←TokPtr+1; TokMem↑[TokPtr]←116;TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1; Cat↑[ScrapPtr]←2;Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;44 =>BEGIN TokMem↑[TokPtr]←44; TokPtr←TokPtr+1;TokMem↑[TokPtr]←138;TokPtr←TokPtr+1; TokMem↑[TokPtr]←57;TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1; Cat↑[ScrapPtr]←2;Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END; 46,48,49,50,51,52,53,54,55,56,57 =>BEGIN TokMem↑[TokPtr]←NextControl; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←1; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;59 =>BEGIN TokMem↑[TokPtr]←59; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←9; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;58 =>BEGIN TokMem↑[TokPtr]←58; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←14; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;--189:--26 =>BEGIN TokMem↑[TokPtr]←92; TokPtr←TokPtr+1;TokMem↑[TokPtr]←73;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←2;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; 28 =>BEGIN TokMem↑[TokPtr]←92;TokPtr←TokPtr+1;TokMem↑[TokPtr]←76; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←2; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;29 =>BEGIN TokMem↑[TokPtr]←92; TokPtr←TokPtr+1;TokMem↑[TokPtr]←71;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←2;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; 30 =>BEGIN TokMem↑[TokPtr]←92;TokPtr←TokPtr+1;TokMem↑[TokPtr]←83; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←2; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;4 =>BEGIN TokMem↑[TokPtr]←92; TokPtr←TokPtr+1;TokMem↑[TokPtr]←87;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←2;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; 31 =>BEGIN TokMem↑[TokPtr]←92;TokPtr←TokPtr+1;TokMem↑[TokPtr]←86; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←2; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;5 =>BEGIN TokMem↑[TokPtr]←92; TokPtr←TokPtr+1;TokMem↑[TokPtr]←82;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←2;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; 24 =>BEGIN TokMem↑[TokPtr]←92;TokPtr←TokPtr+1;TokMem↑[TokPtr]←75; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←2; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;--:189--128 =>BEGIN TokMem↑[TokPtr]←92; TokPtr←TokPtr+1;TokMem↑[TokPtr]←69;TokPtr←TokPtr+1; TokMem↑[TokPtr]←123;TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1; Cat↑[ScrapPtr]←15;Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;9 =>BEGIN TokMem↑[TokPtr]←92; TokPtr←TokPtr+1;TokMem↑[TokPtr]←66;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←2;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; 10 =>BEGIN TokMem↑[TokPtr]←92;TokPtr←TokPtr+1;TokMem↑[TokPtr]←84; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←2; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;12 =>AppOctal[];13 =>AppHex[]; 135 =>BEGIN TokMem↑[TokPtr]←92;TokPtr←TokPtr+1;TokMem↑[TokPtr]←41; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←1; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;3 =>BEGIN TokMem↑[TokPtr]←92; TokPtr←TokPtr+1;TokMem↑[TokPtr]←93;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←1;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; 137 =>BEGIN TokMem↑[TokPtr]←92;TokPtr←TokPtr+1;TokMem↑[TokPtr]←44; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←2; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;138 =>BEGIN TokMem↑[TokPtr]←138; TokPtr←TokPtr+1;TokMem↑[TokPtr]←48;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←1;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; 139 =>BEGIN TokMem↑[TokPtr]←141;TokPtr←TokPtr+1;AppComment[]; END; 140 =>BEGIN TokMem↑[TokPtr]←142;TokPtr←TokPtr+1;AppComment[]; END; 141 =>BEGIN TokMem↑[TokPtr]←134;TokPtr←TokPtr+1;TokMem↑[TokPtr]←92; TokPtr←TokPtr+1;TokMem↑[TokPtr]←32;TokPtr←TokPtr+1; BEGIN TokMem↑[TokPtr]←134;TokPtr←TokPtr+1;AppComment[]; END; END; 142 =>BEGIN ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←9;Trans↑[ScrapPtr]←0; END;136 =>BEGIN TokMem↑[TokPtr]←92;TokPtr←TokPtr+1; TokMem↑[TokPtr]←74;TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1; Cat↑[ScrapPtr]←2;Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END; ENDCASE =>BEGIN TokMem↑[TokPtr]←NextControl;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←2;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END ; END;--:187 --193:-- SubCases: PROCEDURE[P: NamePointer] = BEGIN SELECT Ilk↑[P]FROM 0 =>BEGIN TokMem↑[TokPtr]←10240+P; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←1; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;4 =>BEGIN TokMem↑[TokPtr]←20480+P; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←7; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;7 =>BEGIN TokMem↑[TokPtr]←141; TokPtr←TokPtr+1;TokMem↑[TokPtr]←139;TokPtr←TokPtr+1; TokMem↑[TokPtr]←20480+P;TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1; Cat↑[ScrapPtr]←3;Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;8 =>BEGIN TokMem↑[TokPtr]←131; TokPtr←TokPtr+1;TokMem↑[TokPtr]←20480+P;TokPtr←TokPtr+1; TokMem↑[TokPtr]←125;TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1; Cat↑[ScrapPtr]←2;Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;9 =>BEGIN TokMem↑[TokPtr]←20480+P; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←8; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;12 =>BEGIN TokMem↑[TokPtr]←141; TokPtr←TokPtr+1;TokMem↑[TokPtr]←20480+P;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←7;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; 13 =>BEGIN TokMem↑[TokPtr]←20480+P;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←3;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; 16 =>BEGIN TokMem↑[TokPtr]←20480+P;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←1;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; 20 =>BEGIN TokMem↑[TokPtr]←132;TokPtr←TokPtr+1; TokMem↑[TokPtr]←20480+P;TokPtr←TokPtr+1;TokMem↑[TokPtr]←125; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←2; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END; ENDCASE; END;--:193-- PascalParse: PROCEDURE = BEGIN J:PascalInteger[0..LongBufSize];P:NamePointer; {WHILE INT[NextControl]<143 DO BEGIN--186:----188: IF( INT[ScrapPtr+4]>MaxScraps)OR ( INT[TokPtr+6]>MaxToks)OR ( INT[TextPtr+4]>MaxTexts) THEN BEGIN--IF SCRAP←PTR>MAX←SCR←PTR THEN MAX←SCR←PTR:=SCRAP←PTR; -- IF TOK←PTR>MAX←TOK←PTR THEN MAX←TOK←PTR:=TOK←PTR; -- IF TEXT←PTR>MAX←TXT←PTR THEN MAX←TXT←PTR:=TEXT←PTR; BEGIN PascalWriteLn[file: @TermOut]; {PascalWriteLongString[file: @TermOut, item: "! Sorry, "]; PascalWriteLongString[file: @TermOut, item: "scrap/token/text"]; PascalWriteLongString[file: @TermOut, item: " capacity exceeded"]}; Error[];History←3;JumpOut[]; END; END--:188--; DO {--Label21:--SELECT NextControl FROM 129,2 =>--190:--BEGIN TokMem↑[TokPtr]←92; TokPtr←TokPtr+1;IF NextControl=2 THEN BEGIN TokMem↑[TokPtr]←61; TokPtr←TokPtr+1; END ELSE BEGIN TokMem↑[TokPtr]←46; TokPtr←TokPtr+1; END;TokMem↑[TokPtr]←123;TokPtr←TokPtr+1; J←IdFirst; WHILE INT[J]<IdLoc DO BEGIN SELECT Buffer↑[J]FROM 32,92,35,37,36,94,39,96,123,125 ,126,38,95 =>BEGIN TokMem↑[TokPtr]←92;TokPtr←TokPtr+1; END; 64 =>IF Buffer↑[J+1]=64 THEN J←J+1 ELSE BEGIN IF NOT PhaseOne THEN BEGIN PascalWriteLn[file: @TermOut]; PascalWriteLongString[file: @TermOut, item: "! Double @ should be used in strings"];Error[]; END; END; ENDCASE => NULL;BEGIN IF INT[TokPtr+2]>MaxToks THEN BEGIN PascalWriteLn[file: @TermOut]; {PascalWriteLongString[file: @TermOut, item: "! Sorry, "]; PascalWriteLongString[file: @TermOut, item: "token"]; PascalWriteLongString[file: @TermOut, item: " capacity exceeded"]};Error[]; History←3;JumpOut[]; END;TokMem↑[TokPtr]←Buffer↑[J];TokPtr←TokPtr+1; END;J←J+1; END ENDLOOP ;BEGIN TokMem↑[TokPtr]←125;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←1;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; END--:190--; 130 =>--192:--BEGIN P←IdLookup[0]; SELECT Ilk↑[P]FROM 0,4,7,8,9,12,13,16,20 =>SubCases[P];--194: 5 =>BEGIN BEGIN TokMem↑[TokPtr]←141;TokPtr←TokPtr+1; TokMem↑[TokPtr]←20480+P;TokPtr←TokPtr+1;TokMem↑[TokPtr]←135; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←5; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;BEGIN ScrapPtr←ScrapPtr+1; Cat↑[ScrapPtr]←3;Trans↑[ScrapPtr]←0; END; END; 6 =>BEGIN BEGIN ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←21; Trans↑[ScrapPtr]←0; END;BEGIN TokMem↑[TokPtr]←141;TokPtr←TokPtr+1; TokMem↑[TokPtr]←20480+P;TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1; Cat↑[ScrapPtr]←7;Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END; END;10 =>BEGIN--195: IF( INT[ScrapPtr]<ScrapBase)OR ((Cat↑[ScrapPtr]#10)AND (Cat↑[ScrapPtr]#9)) THEN BEGIN ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←10; Trans↑[ScrapPtr]←0; END--:195--;BEGIN TokMem↑[TokPtr]←141; TokPtr←TokPtr+1;TokMem↑[TokPtr]←139;TokPtr←TokPtr+1; TokMem↑[TokPtr]←20480+P;TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1; Cat↑[ScrapPtr]←20;Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END; END;11 =>BEGIN--195: IF( INT[ScrapPtr]<ScrapBase)OR ((Cat↑[ScrapPtr]#10)AND (Cat↑[ScrapPtr]#9)) THEN BEGIN ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←10; Trans↑[ScrapPtr]←0; END--:195--;BEGIN TokMem↑[TokPtr]←141; TokPtr←TokPtr+1;TokMem↑[TokPtr]←20480+P;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←6;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; END; 14 =>BEGIN BEGIN ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←12; Trans↑[ScrapPtr]←0; END;BEGIN TokMem↑[TokPtr]←141;TokPtr←TokPtr+1; TokMem↑[TokPtr]←20480+P;TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1; Cat↑[ScrapPtr]←7;Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END; END; 23 =>BEGIN BEGIN TokMem↑[TokPtr]←141;TokPtr←TokPtr+1; TokMem↑[TokPtr]←92;TokPtr←TokPtr+1;TokMem↑[TokPtr]←126; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←7; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;BEGIN TokMem↑[TokPtr]←20480+P; TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←8; Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END; END; 17 =>BEGIN BEGIN TokMem↑[TokPtr]←141;TokPtr←TokPtr+1; TokMem↑[TokPtr]←139;TokPtr←TokPtr+1;TokMem↑[TokPtr]←20480+P; TokPtr←TokPtr+1;TokMem↑[TokPtr]←135;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←16;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; BEGIN TokMem↑[TokPtr]←136;TokPtr←TokPtr+1;TokMem↑[TokPtr]←92; TokPtr←TokPtr+1;TokMem↑[TokPtr]←32;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←3;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; END; 18 =>BEGIN BEGIN TokMem↑[TokPtr]←20480+P;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←18;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; BEGIN ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←3;Trans↑[ScrapPtr]←0; END; END;19 =>BEGIN BEGIN TokMem↑[TokPtr]←141;TokPtr←TokPtr+1; TokMem↑[TokPtr]←136;TokPtr←TokPtr+1;TokMem↑[TokPtr]←20480+P; TokPtr←TokPtr+1;TokMem↑[TokPtr]←135;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←5;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; BEGIN ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←3;Trans↑[ScrapPtr]←0; END; END;21 =>BEGIN--195: IF( INT[ScrapPtr]<ScrapBase)OR ((Cat↑[ScrapPtr]#10)AND (Cat↑[ScrapPtr]#9)) THEN BEGIN ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←10; Trans↑[ScrapPtr]←0; END--:195--;BEGIN TokMem↑[TokPtr]←141; TokPtr←TokPtr+1;TokMem↑[TokPtr]←139;TokPtr←TokPtr+1; TokMem↑[TokPtr]←20480+P;TokPtr←TokPtr+1;ScrapPtr←ScrapPtr+1; Cat↑[ScrapPtr]←6;Trans↑[ScrapPtr]←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr; END;BEGIN ScrapPtr←ScrapPtr+1; Cat↑[ScrapPtr]←13;Trans↑[ScrapPtr]←0; END; END; 22 =>BEGIN BEGIN TokMem↑[TokPtr]←141;TokPtr←TokPtr+1; TokMem↑[TokPtr]←139;TokPtr←TokPtr+1;TokMem↑[TokPtr]←20480+P; TokPtr←TokPtr+1;TokMem↑[TokPtr]←135;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←19;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; BEGIN ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←3;Trans↑[ScrapPtr]←0; END; END;--:194-- ENDCASE =>BEGIN NextControl← INT[Ilk↑[P]]-24; GOTO Label21; END ; END--:192 ;134 =>--191:--BEGIN TokMem↑[TokPtr]←92;TokPtr←TokPtr+1; TokMem↑[TokPtr]←104;TokPtr←TokPtr+1;TokMem↑[TokPtr]←98; TokPtr←TokPtr+1;TokMem↑[TokPtr]←111;TokPtr←TokPtr+1; TokMem↑[TokPtr]←120;TokPtr←TokPtr+1;TokMem↑[TokPtr]←123; TokPtr←TokPtr+1; FOR i:INT IN [ INT[IdFirst ].. INT[IdLoc-1 ]] DO J ← i; IF INT[TokPtr+2]>MaxToks THEN BEGIN PascalWriteLn[file: @TermOut]; {PascalWriteLongString[file: @TermOut, item: "! Sorry, "]; PascalWriteLongString[file: @TermOut, item: "token"]; PascalWriteLongString[file: @TermOut, item: " capacity exceeded"]};Error[]; History←3;JumpOut[]; END;TokMem↑[TokPtr]←Buffer↑[J];TokPtr←TokPtr+1; ENDLOOP;BEGIN TokMem↑[TokPtr]←125;TokPtr←TokPtr+1; ScrapPtr←ScrapPtr+1;Cat↑[ScrapPtr]←1;Trans↑[ScrapPtr]←TextPtr; TextPtr←TextPtr+1;TokStart↑[TextPtr]←TokPtr; END; END--:191--; ENDCASE =>EasyCases []--:186--;NextControl←GetNext[]; IF(NextControl=124)OR (NextControl=123) THEN GOTO Label10;EXIT; EXITS Label21 => NULL} ENDLOOP; END ENDLOOP ;EXITS Label10 => NULL}; END;--:184 --198:-- PascalTranslate: PROCEDURE RETURNS[PascalTranslateResult: TextPointer] = BEGIN P:TextPointer; SaveBase:PascalInteger[0..MaxScraps]; SaveBase←ScrapBase; ScrapBase←ScrapPtr+1;PascalParse[]; IF NextControl#124 THEN BEGIN IF NOT PhaseOne THEN BEGIN PascalWriteLn[file: @TermOut];PascalWriteLongString[file: @TermOut, item: "! Missing \"|\" after Pascal text"];Error[]; END; END;BEGIN IF INT[TokPtr+2]>MaxToks THEN BEGIN PascalWriteLn[file: @TermOut]; {PascalWriteLongString[file: @TermOut, item: "! Sorry, "]; PascalWriteLongString[file: @TermOut, item: "token"]; PascalWriteLongString[file: @TermOut, item: " capacity exceeded"]};Error[]; History←3;JumpOut[]; END;TokMem↑[TokPtr]←135;TokPtr←TokPtr+1; END; AppComment[];P←Translate[]; --IF SCRAP←PTR>MAX←SCR←PTR THEN MAX←SCR←PTR:=SCRAP←PTR; ScrapPtr←ScrapBase-1;ScrapBase←SaveBase;PascalTranslateResult←P; END; --:198----199:-- OuterParse: PROCEDURE = BEGIN Bal:EightBits;P, Q:TextPointer; WHILE INT[NextControl]<143 DO IF NextControl#123 THEN PascalParse [] ELSE BEGIN--200: IF( INT[TokPtr+7]>MaxToks)OR ( INT[TextPtr+3]>MaxTexts)OR ( INT[ScrapPtr]>=MaxScraps) THEN BEGIN--IF SCRAP←PTR>MAX←SCR←PTR THEN MAX←SCR←PTR:=SCRAP←PTR; -- IF TOK←PTR>MAX←TOK←PTR THEN MAX←TOK←PTR:=TOK←PTR; -- IF TEXT←PTR>MAX←TXT←PTR THEN MAX←TXT←PTR:=TEXT←PTR; BEGIN PascalWriteLn[file: @TermOut]; {PascalWriteLongString[file: @TermOut, item: "! Sorry, "]; PascalWriteLongString[file: @TermOut, item: "token/text/scrap"]; PascalWriteLongString[file: @TermOut, item: " capacity exceeded"]}; Error[];History←3;JumpOut[]; END; END--:200--;TokMem↑[TokPtr]←92; TokPtr←TokPtr+1;TokMem↑[TokPtr]←67;TokPtr←TokPtr+1; TokMem↑[TokPtr]←123;TokPtr←TokPtr+1;Bal←CopyComment[1]; NextControl←124;WHILE INT[Bal]>0 DO BEGIN P←TextPtr;TextPtr←TextPtr+1; TokStart↑[TextPtr]←TokPtr;Q←PascalTranslate[]; TokMem↑[TokPtr]←40960+P;TokPtr←TokPtr+1;TokMem↑[TokPtr]←51200+Q; TokPtr←TokPtr+1; IF NextControl=124 THEN Bal←CopyComment[Bal] ELSE Bal←0; END ENDLOOP ; TokMem↑[TokPtr]←141;TokPtr←TokPtr+1;AppComment[]; END ENDLOOP ; END;--:199 END.