-- file: WeaveParse2.mesa -- Pascal-to-Mesa translator output, translated at September 23, 1986 1:27:38 pm PDT DIRECTORY PascalBasic, PascalWizardFiles, WeaveProcs, WeaveVars; WeaveParse2: PROGRAM IMPORTS PascalWizardFiles, WeaveProcs, WeaveVars EXPORTS WeaveProcs = PUBLIC BEGIN OPEN PascalBasic, PascalWizardFiles, WeaveProcs, WeaveVars; --141:----PROCEDURE PRINT_CAT(C:EIGHT_BITS); -- BEGIN CASE C OF 1:WRITE(TERM_OUT,'simp');2:WRITE(TERM_OUT,'math'); -- 3:WRITE(TERM_OUT,'intro');4:WRITE(TERM_OUT,'open'); -- 5:WRITE(TERM_OUT,'beginning');6:WRITE(TERM_OUT,'close'); -- 7:WRITE(TERM_OUT,'alpha');8:WRITE(TERM_OUT,'omega'); -- 9:WRITE(TERM_OUT,'semi');10:WRITE(TERM_OUT,'terminator'); -- 11:WRITE(TERM_OUT,'stmt');12:WRITE(TERM_OUT,'cond'); -- 13:WRITE(TERM_OUT,'clause');14:WRITE(TERM_OUT,'colon'); -- 15:WRITE(TERM_OUT,'exp');16:WRITE(TERM_OUT,'proc'); -- 17:WRITE(TERM_OUT,'casehead');18:WRITE(TERM_OUT,'recordhead'); -- 19:WRITE(TERM_OUT,'varhead');20:WRITE(TERM_OUT,'elsie'); -- 21:WRITE(TERM_OUT,'casey');22:WRITE(TERM_OUT,'module'); -- OTHERS:WRITE(TERM_OUT,'UNKNOWN')END;END;----:141----147: --PROCEDURE PRINT_TEXT(P:TEXT_POINTER);VAR J:0..MAX_TOKS;R:0..10239; -- BEGIN IF P>=TEXT_PTR THEN WRITE(TERM_OUT,'BAD')ELSE FOR J:=TOK_START[P] -- TO TOK_START[P+1]-1 DO BEGIN R:=TOK_MEM[J]MOD 10240; -- CASE TOK_MEM[J]DIV 10240 OF 1:BEGIN WRITE(TERM_OUT,'\\',XCHR[123]); -- PRINT_ID(R);WRITE(TERM_OUT,XCHR[125]);END; -- 2:BEGIN WRITE(TERM_OUT,'\&',XCHR[123]);PRINT_ID(R); -- WRITE(TERM_OUT,XCHR[125]);END;3:BEGIN WRITE(TERM_OUT,'<');PRINT_ID(R); -- WRITE(TERM_OUT,'>');END;4:WRITE(TERM_OUT,'[[',R:1,']]'); -- 5:WRITE(TERM_OUT,'|[[',R:1,']]|'); -- OTHERS:[148:]CASE R OF 131:WRITE(TERM_OUT,'\mathbin',XCHR[123]); -- 132:WRITE(TERM_OUT,'\mathrel',XCHR[123]); -- 133:WRITE(TERM_OUT,'\mathop',XCHR[123]);134:WRITE(TERM_OUT,'[ccancel]'); -- 135:WRITE(TERM_OUT,'[cancel]');136:WRITE(TERM_OUT,'[indent]'); -- 137:WRITE(TERM_OUT,'[outdent]');139:WRITE(TERM_OUT,'[backup]'); -- 138:WRITE(TERM_OUT,'[opt]');140:WRITE(TERM_OUT,'[break]'); -- 141:WRITE(TERM_OUT,'[force]');142:WRITE(TERM_OUT,'[fforce]'); -- 143:WRITE(TERM_OUT,'[quit]');OTHERS:WRITE(TERM_OUT,XCHR[R])END[:148]END; -- END;END;----:147----173:-- Red: PROCEDURE[J: SixteenBits,K: EightBits, C: EightBits,D: PascalInteger] = BEGIN I:PascalInteger[0..MaxScraps]; Cat^[J]_C; Trans^[J]_TextPtr;TextPtr_TextPtr+1;TokStart^[TextPtr]_TokPtr; IF INT[K]>1 THEN BEGIN FOR i:INT IN [ INT[ INT[J]+K ].. INT[LoPtr ]] DO I _ i; Cat^[I-K+1]_Cat^[I]; Trans^[I-K+1]_Trans^[I]; ENDLOOP;LoPtr_LoPtr-K+1; END;--174: IF Pp+D>=ScrapBase THEN Pp_Pp+D ELSE Pp_ScrapBase--:174--; END;--:173 --175:-- Sq: PROCEDURE[J: SixteenBits,K: EightBits,C: EightBits,D: PascalInteger] = BEGIN I:PascalInteger[0..MaxScraps]; IF K=1 THEN BEGIN Cat^[J]_C;--174: IF Pp+D>=ScrapBase THEN Pp_Pp+D ELSE Pp_ScrapBase--:174--; END ELSE BEGIN FOR i:INT IN [ INT[J ].. INT[ INT[J]+K-1 ]] DO I _ i; TokMem^[TokPtr]_40960+Trans^ [I];TokPtr_TokPtr+1; ENDLOOP;Red[J,K,C,D]; END; END;--:175----179: --PROCEDURE PROD(N:EIGHT_BITS);VAR K:1..MAX_SCRAPS; -- BEGIN IF TRACING=2 THEN BEGIN BEGIN WRITELN(TERM_OUT); -- WRITE(TERM_OUT,N:1,':');END; -- FOR K:=SCRAP_BASE TO LO_PTR DO BEGIN IF K=PP THEN WRITE(TERM_OUT,'*') -- ELSE WRITE(TERM_OUT,' ');PRINT_CAT(CAT[K]);END; -- IF HI_PTR<=SCRAP_PTR THEN WRITE(TERM_OUT,'...');END;END;----:179----180: --151:-- FiveCases: PROCEDURE = BEGIN {SELECT Cat^[Pp]FROM 5 =>--153: IF Cat^[Pp+1]=6 THEN BEGIN IF(Cat^[Pp+2]=10)OR (Cat^[Pp+2]=11) THEN BEGIN Sq[ Pp,3,11,-2];--PROD(5)-- GOTO Label31; END; END ELSE IF Cat^[Pp+1]=11 THEN BEGIN TokMem^[TokPtr]_40960+Trans^[Pp]; TokPtr_TokPtr+1;TokMem^[TokPtr]_140;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1;Red[Pp,2,5,-1]; --PROD(6)-- GOTO Label31; END--:153--;3 =>--160: IF Cat^[Pp+1]=11 THEN BEGIN TokMem^[TokPtr]_40960+Trans^[Pp]; TokPtr_TokPtr+1;TokMem^[TokPtr]_32;TokPtr_TokPtr+1; TokMem^[TokPtr]_138;TokPtr_TokPtr+1;TokMem^[TokPtr]_55; TokPtr_TokPtr+1;TokMem^[TokPtr]_135;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1;Red[Pp,2,11,-2]; --PROD(17)-- GOTO Label31; END--:160--;2 =>--161: IF Cat^[Pp+1]=6 THEN BEGIN TokMem^[TokPtr]_36;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp];TokPtr_TokPtr+1; TokMem^[TokPtr]_36;TokPtr_TokPtr+1;Red[Pp,1,11,-2];--PROD(18)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=14 THEN BEGIN TokMem^[TokPtr]_141; TokPtr_TokPtr+1;TokMem^[TokPtr]_139;TokPtr_TokPtr+1; TokMem^[TokPtr]_36;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp];TokPtr_TokPtr+1; TokMem^[TokPtr]_36;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1;Red[Pp,2,3,-3]; --PROD(19)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=2 THEN BEGIN Sq[Pp,2,2,-1]; --PROD(20)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=1 THEN BEGIN Sq[Pp,2,2,-1]; --PROD(21)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=11 THEN BEGIN TokMem^[TokPtr]_36; TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp];TokPtr_TokPtr+1; TokMem^[TokPtr]_36;TokPtr_TokPtr+1;TokMem^[TokPtr]_136; TokPtr_TokPtr+1;TokMem^[TokPtr]_140;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1; TokMem^[TokPtr]_135;TokPtr_TokPtr+1;TokMem^[TokPtr]_137; TokPtr_TokPtr+1;TokMem^[TokPtr]_141;TokPtr_TokPtr+1; Red[Pp,2,11,-2];--PROD(22)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=10 THEN BEGIN TokMem^[TokPtr]_36; TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp];TokPtr_TokPtr+1; TokMem^[TokPtr]_36;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1;Red[Pp,2,11,-2]; --PROD(23)-- GOTO Label31; END--:161--;4 =>--163: IF(Cat^[Pp+1]=17)AND (Cat^[Pp+2]=6) THEN BEGIN TokMem^[TokPtr]_40960+Trans ^[Pp];TokPtr_TokPtr+1;TokMem^[TokPtr]_36;TokPtr_TokPtr+1; TokMem^[TokPtr]_135;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1; TokMem^[TokPtr]_135;TokPtr_TokPtr+1;TokMem^[TokPtr]_137; TokPtr_TokPtr+1;TokMem^[TokPtr]_36;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+2];TokPtr_TokPtr+1;Red[Pp,3,2,-1]; --PROD(26)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=6 THEN BEGIN TokMem^[TokPtr]_40960+Trans^[Pp]; TokPtr_TokPtr+1;TokMem^[TokPtr]_92;TokPtr_TokPtr+1; TokMem^[TokPtr]_44;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1;Red[Pp,2,2,-1]; --PROD(27)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=2 THEN--164: BEGIN IF(Cat^[Pp+2]=17)AND (Cat^[Pp+3]=6) THEN BEGIN TokMem^[TokPtr]_ 40960+Trans^[Pp];TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp+1]; TokPtr_TokPtr+1;TokMem^[TokPtr]_36;TokPtr_TokPtr+1; TokMem^[TokPtr]_135;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+2];TokPtr_TokPtr+1; TokMem^[TokPtr]_135;TokPtr_TokPtr+1;TokMem^[TokPtr]_137; TokPtr_TokPtr+1;TokMem^[TokPtr]_36;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+3];TokPtr_TokPtr+1;Red[Pp,4,2,-1]; --PROD(28)-- GOTO Label31; END ELSE IF Cat^[Pp+2]=6 THEN BEGIN Sq[Pp,3,2,-1]; --PROD(29)-- GOTO Label31; END ELSE IF Cat^[Pp+2]=14 THEN BEGIN Sq[Pp+1,2,2,0]; --PROD(30)-- GOTO Label31; END ELSE IF Cat^[Pp+2]=16 THEN BEGIN IF Cat^[Pp+3]=3 THEN BEGIN TokMem^ [TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1;TokMem^[TokPtr]_133; TokPtr_TokPtr+1;TokMem^[TokPtr]_135;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+2];TokPtr_TokPtr+1; TokMem^[TokPtr]_125;TokPtr_TokPtr+1;Red[Pp+1,3,2,0];--PROD(31)-- GOTO Label31; END; END ELSE IF Cat^[Pp+2]=9 THEN BEGIN TokMem^[TokPtr]_40960+Trans^[Pp+1]; TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp+2]; TokPtr_TokPtr+1;TokMem^[TokPtr]_92;TokPtr_TokPtr+1; TokMem^[TokPtr]_44;TokPtr_TokPtr+1;TokMem^[TokPtr]_138; TokPtr_TokPtr+1;TokMem^[TokPtr]_53;TokPtr_TokPtr+1; Red[Pp+1,2,2,0];--PROD(32)-- GOTO Label31; END ELSE IF Cat^[Pp+2]=19 THEN BEGIN IF Cat^[Pp+3]=3 THEN BEGIN TokMem^ [TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1;TokMem^[TokPtr]_133; TokPtr_TokPtr+1;TokMem^[TokPtr]_135;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+2];TokPtr_TokPtr+1; TokMem^[TokPtr]_125;TokPtr_TokPtr+1;Red[Pp+1,3,2,0];--PROD(31)-- GOTO Label31; END; END; END--:164 ELSE IF Cat^[Pp+1]=16 THEN BEGIN IF Cat^[Pp+2]=3 THEN BEGIN TokMem^ [TokPtr]_133;TokPtr_TokPtr+1;TokMem^[TokPtr]_135; TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp+1]; TokPtr_TokPtr+1;TokMem^[TokPtr]_125;TokPtr_TokPtr+1; Red[Pp+1,2,2,0];--PROD(34)-- GOTO Label31; END; END ELSE IF Cat^[Pp+1]=1 THEN BEGIN Sq[Pp+1,1,2,0];--PROD(35)-- GOTO Label31; END ELSE IF(Cat^[Pp+1]=11)AND (Cat^[Pp+2]=6) THEN BEGIN TokMem^[TokPtr]_ 40960+Trans^[Pp];TokPtr_TokPtr+1;TokMem^[TokPtr]_36; TokPtr_TokPtr+1;TokMem^[TokPtr]_135;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1; TokMem^[TokPtr]_135;TokPtr_TokPtr+1;TokMem^[TokPtr]_36; TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp+2]; TokPtr_TokPtr+1;Red[Pp,3,2,-1];--PROD(36)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=19 THEN BEGIN IF Cat^[Pp+2]=3 THEN BEGIN TokMem^ [TokPtr]_133;TokPtr_TokPtr+1;TokMem^[TokPtr]_135; TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp+1]; TokPtr_TokPtr+1;TokMem^[TokPtr]_125;TokPtr_TokPtr+1; Red[Pp+1,2,2,0];--PROD(37)-- GOTO Label31; END; END--:163--;1 =>--168: IF Cat^[Pp+1]=6 THEN BEGIN Sq[Pp,1,11,-2];--PROD(43)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=14 THEN BEGIN TokMem^[TokPtr]_141; TokPtr_TokPtr+1;TokMem^[TokPtr]_139;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp];TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1;Red[Pp,2,3,-3]; --PROD(44)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=2 THEN BEGIN Sq[Pp,2,2,-1]; --PROD(45)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=22 THEN BEGIN Sq[Pp,2,22,0]; --PROD(46)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=1 THEN BEGIN Sq[Pp,2,1,-2]; --PROD(47)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=10 THEN BEGIN Sq[Pp,2,11,-2]; --PROD(48)-- GOTO Label31; END--:168--; ENDCASE => NULL;Pp_Pp+1;EXITS Label31 => NULL}; END; AlphaCases: PROCEDURE = BEGIN --152: {IF Cat^[Pp+1]=2 THEN BEGIN IF Cat^[Pp+2]=14 THEN BEGIN Sq[Pp+1,2,2,0]; --PROD(1)-- GOTO Label31; END ELSE IF Cat^[Pp+2]=8 THEN BEGIN TokMem^[TokPtr]_40960+Trans^[Pp]; TokPtr_TokPtr+1;TokMem^[TokPtr]_32;TokPtr_TokPtr+1; TokMem^[TokPtr]_36;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1; TokMem^[TokPtr]_36;TokPtr_TokPtr+1;TokMem^[TokPtr]_32; TokPtr_TokPtr+1;TokMem^[TokPtr]_136;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+2];TokPtr_TokPtr+1;Red[Pp,3,13,-2]; --PROD(2)-- GOTO Label31; END; END ELSE IF Cat^[Pp+1]=8 THEN BEGIN TokMem^[TokPtr]_40960+Trans^[Pp]; TokPtr_TokPtr+1;TokMem^[TokPtr]_32;TokPtr_TokPtr+1; TokMem^[TokPtr]_136;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1;Red[Pp,2,13,-2]; --PROD(3)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=1 THEN BEGIN Sq[Pp+1,1,2,0]; --PROD(4)-- GOTO Label31; END--:152--;Pp_Pp+1;EXITS Label31 => NULL}; END;--:151 Translate: PROCEDURE RETURNS[TranslateResult: TextPointer] = BEGIN I:PascalInteger[1..MaxScraps]; J:PascalInteger[0..MaxScraps]; --176:-- Pp_ScrapBase;LoPtr_Pp-1;HiPtr_Pp;--183: --IF TRACING=2 THEN BEGIN BEGIN WRITELN(TERM_OUT); -- WRITE(TERM_OUT,'Tracing after l.',LINE:1,':');END; -- IF HISTORY=0 THEN HISTORY:=1;IF LOC>50 THEN BEGIN WRITE(TERM_OUT,'...'); -- FOR K:=LOC-50 TO LOC DO WRITE(TERM_OUT,XCHR[BUFFER[K-1]]); -- END ELSE FOR K:=1 TO LOC DO WRITE(TERM_OUT,XCHR[BUFFER[K-1]]);END----:183 {WHILE TRUE DO BEGIN--177: IF INT[LoPtr]ScrapPtr)OR (LoPtr=Pp+3) THEN EXIT; ENDLOOP; FOR i:INT IN [ INT[LoPtr+1 ].. INT[Pp+3 ]] DO I _ i; Cat^[I]_0 ENDLOOP; END--:177--; IF( INT[TokPtr+8]>MaxToks)OR ( INT[TextPtr+4]>MaxTexts) THEN BEGIN--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"]; PascalWriteLongString[file: @TermOut, item: " capacity exceeded"]};Error[]; History_3;JumpOut[]; END; END;IF INT[Pp]>LoPtr THEN GOTO Label30;--150: IF INT[Cat^[Pp]]<=7 THEN IF INT[Cat^[Pp]]<7 THEN FiveCases [] ELSE AlphaCases [] ELSE BEGIN {SELECT Cat^[Pp]FROM 17 =>--154: IF Cat^[Pp+1]=21 THEN BEGIN IF Cat^[Pp+2]=13 THEN BEGIN TokMem^[TokPtr]_ 40960+Trans^[Pp];TokPtr_TokPtr+1;TokMem^[TokPtr]_137; TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp+1]; TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp+2]; TokPtr_TokPtr+1;Red[Pp,3,17,0];--PROD(7)-- GOTO Label31; END; END ELSE IF Cat^[Pp+1]=6 THEN BEGIN IF Cat^[Pp+2]=10 THEN BEGIN TokMem^ [TokPtr]_40960+Trans^[Pp];TokPtr_TokPtr+1;TokMem^[TokPtr]_135; TokPtr_TokPtr+1;TokMem^[TokPtr]_137;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+2];TokPtr_TokPtr+1;Red[Pp,3,11,-2]; --PROD(8)-- GOTO Label31; END; END ELSE IF Cat^[Pp+1]=11 THEN BEGIN TokMem^[TokPtr]_40960+Trans^[Pp]; TokPtr_TokPtr+1;TokMem^[TokPtr]_141;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1;Red[Pp,2,17,0]; --PROD(9)-- GOTO Label31; END--:154--;21 =>--155: IF Cat^[Pp+1]=13 THEN BEGIN Sq[Pp,2,17,0];--PROD(10)-- GOTO Label31; END--:155--; 13 =>--156:--IF Cat^[Pp+1]=11 THEN BEGIN TokMem^[TokPtr]_40960+Trans^[Pp]; TokPtr_TokPtr+1;TokMem^[TokPtr]_140;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1; TokMem^[TokPtr]_135;TokPtr_TokPtr+1;TokMem^[TokPtr]_137; TokPtr_TokPtr+1;TokMem^[TokPtr]_141;TokPtr_TokPtr+1; Red[Pp,2,11,-2];--PROD(11)-- GOTO Label31; END--:156--;12 =>--157: IF(Cat^[Pp+1]=13)AND (Cat^[Pp+2]=11) THEN IF Cat^[Pp+3]=20 THEN BEGIN TokMem ^[TokPtr]_40960+Trans^[Pp];TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1; TokMem^[TokPtr]_140;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+2];TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+3];TokPtr_TokPtr+1; TokMem^[TokPtr]_32;TokPtr_TokPtr+1;TokMem^[TokPtr]_135; TokPtr_TokPtr+1;Red[Pp,4,13,-2];--PROD(12)-- GOTO Label31; END ELSE BEGIN TokMem^[TokPtr]_40960+Trans^[Pp];TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1; TokMem^[TokPtr]_140;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+2];TokPtr_TokPtr+1; TokMem^[TokPtr]_135;TokPtr_TokPtr+1;TokMem^[TokPtr]_137; TokPtr_TokPtr+1;TokMem^[TokPtr]_141;TokPtr_TokPtr+1; Red[Pp,3,11,-2];--PROD(13)-- GOTO Label31; END--:157--;20 =>--158: BEGIN Sq[Pp,1,3,-3];--PROD(14)-- GOTO Label31; END--:158--;15 =>--159: IF Cat^[Pp+1]=2 THEN BEGIN IF Cat^[Pp+2]=1 THEN IF Cat^[Pp+3]#1 THEN BEGIN TokMem^[TokPtr]_40960+Trans^[Pp];TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+2];TokPtr_TokPtr+1; TokMem^[TokPtr]_125;TokPtr_TokPtr+1;Red[Pp,3,2,-1];--PROD(15)-- GOTO Label31; END; END ELSE IF Cat^[Pp+1]=1 THEN IF Cat^[Pp+2]#1 THEN BEGIN TokMem^[TokPtr] _40960+Trans^[Pp];TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1; TokMem^[TokPtr]_125;TokPtr_TokPtr+1;Red[Pp,2,2,-1];--PROD(16)-- GOTO Label31; END--:159--;22 =>--162: IF(Cat^[Pp+1]=10)OR (Cat^[Pp+1]=9) THEN BEGIN TokMem^[TokPtr]_40960+Trans^ [Pp];TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp+1]; TokPtr_TokPtr+1;TokMem^[TokPtr]_141;TokPtr_TokPtr+1; Red[Pp,2,11,-2];--PROD(24)-- GOTO Label31; END ELSE BEGIN Sq[Pp,1,1,-2]; --PROD(25)-- GOTO Label31; END--:162--;16 =>--165: IF Cat^[Pp+1]=5 THEN BEGIN IF(Cat^[Pp+2]=6)AND (Cat^[Pp+3]=10) THEN BEGIN TokMem^[TokPtr]_40960+Trans^[Pp];TokPtr_TokPtr+1; TokMem^[TokPtr]_135;TokPtr_TokPtr+1;TokMem^[TokPtr]_137; TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp+1]; TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp+2]; TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp+3]; TokPtr_TokPtr+1;Red[Pp,4,11,-2];--PROD(38)-- GOTO Label31; END; END ELSE IF Cat^[Pp+1]=11 THEN BEGIN TokMem^[TokPtr]_40960+Trans^[Pp]; TokPtr_TokPtr+1;TokMem^[TokPtr]_140;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1;Red[Pp,2,16,-2]; --PROD(39)-- GOTO Label31; END--:165--;18 =>--166: IF(Cat^[Pp+1]=3)AND (Cat^[Pp+2]=21) THEN BEGIN TokMem^[TokPtr]_40960+Trans ^[Pp];TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp+1]; TokPtr_TokPtr+1;TokMem^[TokPtr]_32;TokPtr_TokPtr+1; TokMem^[TokPtr]_135;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+2];TokPtr_TokPtr+1;Red[Pp,3,21,-2]; --PROD(40)-- GOTO Label31; END ELSE BEGIN TokMem^[TokPtr]_136; TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp];TokPtr_TokPtr+1; TokMem^[TokPtr]_135;TokPtr_TokPtr+1;Red[Pp,1,17,0];--PROD(41)-- GOTO Label31; END--:166--;9 =>--167:--BEGIN Sq[Pp,1,10,-3];--PROD(42)-- GOTO Label31; END--:167--;11 =>--169: IF Cat^[Pp+1]=11 THEN BEGIN TokMem^[TokPtr]_40960+Trans^[Pp]; TokPtr_TokPtr+1;TokMem^[TokPtr]_140;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1;Red[Pp,2,11,-2]; --PROD(49)-- GOTO Label31; END--:169--;10 =>--170:--BEGIN Sq[Pp,1,11,-2];--PROD(50)-- GOTO Label31; END--:170--;19 =>--171:--IF Cat^[Pp+1]=5 THEN BEGIN Sq[Pp,1,11,-2]; --PROD(51)-- GOTO Label31; END ELSE IF Cat^[Pp+1]=2 THEN BEGIN IF Cat^[Pp+2]=14 THEN BEGIN TokMem^ [TokPtr]_36;TokPtr_TokPtr+1;TokMem^[TokPtr]_40960+Trans^[Pp+1]; TokPtr_TokPtr+1;TokMem^[TokPtr]_36;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+2];TokPtr_TokPtr+1;Red[Pp+1,2,3,1]; --PROD(52)-- GOTO Label31; END; END ELSE IF Cat^[Pp+1]=1 THEN BEGIN IF Cat^[Pp+2]=14 THEN BEGIN Sq[Pp+1,2, 3,1];--PROD(53)-- GOTO Label31; END; END ELSE IF Cat^[Pp+1]=11 THEN BEGIN TokMem^[TokPtr]_40960+Trans^[Pp]; TokPtr_TokPtr+1;TokMem^[TokPtr]_140;TokPtr_TokPtr+1; TokMem^[TokPtr]_40960+Trans^[Pp+1];TokPtr_TokPtr+1;Red[Pp,2,19,-2]; --PROD(54)-- GOTO Label31; END--:171--; ENDCASE => NULL;Pp_Pp+1;EXITS Label31 => NULL}; END--:150--; END ENDLOOP ; EXITS Label30 => NULL};--:176--IF(LoPtr=ScrapBase)AND (Cat^[LoPtr]#2) THEN TranslateResult_Trans^[LoPtr] ELSE--181:--BEGIN--182: --IF(LO_PTR>SCRAP_BASE)AND(TRACING=1)THEN BEGIN BEGIN WRITELN(TERM_OUT); -- WRITE(TERM_OUT,'Irreducible scrap sequence in section ',MODULE_COUNT:1); -- END;WRITELN(TERM_OUT,':');IF HISTORY=0 THEN HISTORY:=1; -- FOR J:=SCRAP_BASE TO LO_PTR DO BEGIN WRITE(TERM_OUT,' '); -- PRINT_CAT(CAT[J]);END;END;----:182-- FOR i:INT IN [ INT[ScrapBase ].. INT[LoPtr ]] DO J _ i; IF J#ScrapBase THEN BEGIN TokMem ^[TokPtr]_32;TokPtr_TokPtr+1; END; IF Cat^[J]=2 THEN BEGIN TokMem^[TokPtr]_36;TokPtr_TokPtr+1; END; TokMem^[TokPtr]_40960+Trans^[J];TokPtr_TokPtr+1; IF Cat^[J]=2 THEN BEGIN TokMem^[TokPtr]_36;TokPtr_TokPtr+1; END; IF INT[TokPtr+6]>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; ENDLOOP;TextPtr_TextPtr+1; TokStart^[TextPtr]_TokPtr;TranslateResult_TextPtr-1; END--:181--; END;--:180 --184:----196:-- AppComment: PROCEDURE = BEGIN TextPtr_TextPtr+1; TokStart^[TextPtr]_TokPtr; IF( INT[ScrapPtr]10) THEN BEGIN ScrapPtr_ScrapPtr+1;Cat^[ScrapPtr]_10;Trans^[ScrapPtr]_0; END ELSE BEGIN TokMem^[TokPtr]_40960+Trans^[ScrapPtr]; TokPtr_TokPtr+1; END;TokMem^[TokPtr]_TextPtr+40959; TokPtr_TokPtr+1;Trans^[ScrapPtr]_TextPtr;TextPtr_TextPtr+1; TokStart^[TextPtr]_TokPtr; END;--:196----197:-- AppOctal: PROCEDURE = BEGIN TokMem^[TokPtr]_92;TokPtr_TokPtr+1;TokMem^[TokPtr]_79; TokPtr_TokPtr+1;TokMem^[TokPtr]_123;TokPtr_TokPtr+1; WHILE( INT[Buffer^[Loc]]>=48)AND ( INT[Buffer^[Loc]]<=55)DO BEGIN 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^[Loc]; TokPtr_TokPtr+1; END;Loc_Loc+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; AppHex: PROCEDURE = BEGIN TokMem^[TokPtr]_92;TokPtr_TokPtr+1;TokMem^[TokPtr]_72; TokPtr_TokPtr+1;TokMem^[TokPtr]_123;TokPtr_TokPtr+1; WHILE(( INT[Buffer^[Loc]]>=48)AND ( INT[Buffer^[Loc]]<=57))OR (( INT[Buffer^[Loc]]>=65)AND ( INT[Buffer^[Loc]]<=70))DO BEGIN 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^[Loc]; TokPtr_TokPtr+1; END;Loc_Loc+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;--:197----187:-- END.