-- file: WeavePhaseII.mesa -- Pascal-to-Mesa translator output, translated at September 23, 1986 1:27:38 pm PDT DIRECTORY PascalBasic, PascalWizardFiles, WeaveProcs, WeaveVars; WeavePhaseII: PROGRAM IMPORTS PascalWizardFiles, WeaveProcs, WeaveVars EXPORTS WeaveProcs = PUBLIC BEGIN OPEN PascalBasic, PascalWizardFiles, WeaveProcs, WeaveVars; FinishPascal: PROCEDURE = BEGIN P:TextPointer; BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_92;IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_80; 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]_141;TokPtr_TokPtr+1; END; AppComment[];P_Translate[];TokMem^[TokPtr]_P+40960;TokPtr_TokPtr+1; MakeOutput[]; IF INT[OutPtr]>1 THEN IF OutBuf^[OutPtr-1]=92 THEN IF OutBuf^[OutPtr]=54 THEN OutPtr_OutPtr-2 ELSE IF OutBuf^[OutPtr]=55 THEN OutBuf^[OutPtr ]_89;BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_92;IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_112; IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_97;IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_114; END;FinishLine[]; --IF TEXT_PTR>MAX_TXT_PTR THEN MAX_TXT_PTR:=TEXT_PTR; -- IF TOK_PTR>MAX_TOK_PTR THEN MAX_TOK_PTR:=TOK_PTR; -- IF SCRAP_PTR>MAX_SCR_PTR THEN MAX_SCR_PTR:=SCRAP_PTR;--TokPtr_1; TextPtr_1;ScrapPtr_0; END;--:227----237: Footnote: PROCEDURE[Flag: SixteenBits] = BEGIN Q:XrefNumber; {IF INT[Xmem^[CurXref].NumField]<=Flag THEN GOTO Label10;FinishLine[]; BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_92; END; IF Flag=0 THEN BEGIN IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_85; END ELSE BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_65; END;BEGIN IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_32; IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_115;IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_101; IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_99; END;BEGIN IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_116; IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_105;IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_111; IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_110; END;--238:--Q_CurXref; IF INT[Xmem^[Xmem^[Q].XlinkField].NumField]>Flag THEN BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1;OutBuf^[OutPtr]_115; END; BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_126; END; {WHILE TRUE DO BEGIN OutMod[ INT[Xmem^[CurXref].NumField]-Flag]; CurXref_Xmem^[CurXref].XlinkField; IF INT[Xmem^[CurXref].NumField]<=Flag THEN GOTO Label30; IF( INT[Xmem^[Xmem^[CurXref].XlinkField].NumField]>Flag)OR (CurXref#Xmem^[Q]. XlinkField) THEN BEGIN IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_44; END; BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_32; END; IF INT[Xmem^[Xmem^[CurXref].XlinkField].NumField]<=Flag THEN BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_97;IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_110; IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_100;IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_126; END; END ENDLOOP ;EXITS Label30 => NULL};--:238--BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_46; END;EXITS Label10 => NULL}; END;--:237----250: PhaseIi: PROCEDURE = BEGIN ModCountPlusDefFlag:SixteenBits;--219:--ResetInput[]; BEGIN PascalWriteLn[file: @TermOut];PascalWriteLongString[file: @TermOut, item: "Writing the output file..."]; END;ModuleCount_0;CopyLimbo[];FinishLine[];FlushBuffer[0,FALSE]; WHILE NOT InputHasEnded DO--221:--BEGIN ModuleCount_ModuleCount+1; --222:--BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_92; END; IF Buffer^[Loc-1]#42 THEN BEGIN IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_77; END ELSE BEGIN BEGIN IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_78; END; {PascalWriteLongString[file: @TermOut, item: "*"]; PascalWriteInteger[file: @TermOut, item: ModuleCount, fieldMinLength: 1]};PascalTextBREAK[file: @TermOut]; END; OutMod[ModuleCount];BEGIN IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_46; IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_32; END--:222--;SaveLine_OutLine;SavePlace_OutPtr; --223:--DO NextControl_CopyTex[]; SELECT NextControl FROM 124 =>BEGIN StackPtr_0;CurState.ModeField_1; OutputPascal[]; END;64 =>BEGIN IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_64; END;12 =>--224: BEGIN BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_92;IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_79; IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_123; END; WHILE( INT[Buffer^[Loc]]>=48)AND ( INT[Buffer^[Loc]]<=55)DO BEGIN BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_Buffer^[Loc]; END;Loc_Loc+1; END ENDLOOP ; BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_125; END; END--:224--;13 =>--225: BEGIN BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_92;IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_72; IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_123; END; WHILE(( INT[Buffer^[Loc]]>=48)AND ( INT[Buffer^[Loc]]<=57))OR (( INT[Buffer^[Loc]]>=65)AND ( INT[Buffer^[Loc]]<=70))DO BEGIN BEGIN IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_Buffer^[Loc]; END;Loc_Loc+1; END ENDLOOP ; BEGIN IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_125; END; END--:225--; 134,131,132,133,146 =>BEGIN Loc_Loc-2;NextControl_GetNext[]; IF NextControl=134 THEN BEGIN IF NOT PhaseOne THEN BEGIN PascalWriteLn[file: @TermOut];PascalWriteLongString[file: @TermOut, item: "! TeX string should be in Pascal text only"]; Error[]; END; END; END; 9,10,135,137,138,139,140,141,136,142 =>BEGIN IF NOT PhaseOne THEN BEGIN PascalWriteLn[file: @TermOut];PascalWriteLongString[file: @TermOut, item: "! You can't do that in TeX text"]; Error[]; END; END; ENDCASE => NULL; IF INT[NextControl]>=143--:223-- THEN EXIT; ENDLOOP;--226: IF INT[NextControl]<=144 THEN BEGIN IF(SaveLine#OutLine)OR ( SavePlace#OutPtr) THEN BEGIN IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_92; IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_89; END;SaveLine_OutLine;SavePlace_OutPtr; END; WHILE INT[NextControl]<=144 DO BEGIN StackPtr_0;CurState.ModeField_1; IF NextControl=144 THEN--228:--BEGIN BEGIN TokMem^[TokPtr]_92; TokPtr_TokPtr+1;TokMem^[TokPtr]_68;TokPtr_TokPtr+1; ScrapPtr_ScrapPtr+1;Cat^[ScrapPtr]_3;Trans^[ScrapPtr]_TextPtr; TextPtr_TextPtr+1;TokStart^[TextPtr]_TokPtr; END; NextControl_GetNext[]; IF NextControl#130 THEN BEGIN IF NOT PhaseOne THEN BEGIN PascalWriteLn[file: @TermOut];PascalWriteLongString[file: @TermOut, item: "! Improper macro definition"];Error[]; END; END ELSE BEGIN TokMem^[TokPtr]_10240+IdLookup[0];TokPtr_TokPtr+1; ScrapPtr_ScrapPtr+1;Cat^[ScrapPtr]_2;Trans^[ScrapPtr]_TextPtr; TextPtr_TextPtr+1;TokStart^[TextPtr]_TokPtr; END; NextControl_GetNext[]; END--:228-- ELSE--229: BEGIN BEGIN TokMem^[TokPtr]_92;TokPtr_TokPtr+1; TokMem^[TokPtr]_70;TokPtr_TokPtr+1;ScrapPtr_ScrapPtr+1; Cat^[ScrapPtr]_3;Trans^[ScrapPtr]_TextPtr;TextPtr_TextPtr+1; TokStart^[TextPtr]_TokPtr; END;NextControl_GetNext[]; IF NextControl=130 THEN BEGIN BEGIN TokMem^[TokPtr]_10240+IdLookup[0 ];TokPtr_TokPtr+1;ScrapPtr_ScrapPtr+1;Cat^[ScrapPtr]_2; Trans^[ScrapPtr]_TextPtr;TextPtr_TextPtr+1; TokStart^[TextPtr]_TokPtr; END;NextControl_GetNext[]; IF NextControl=30 THEN BEGIN 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; NextControl_GetNext[]; IF NextControl=130 THEN BEGIN BEGIN TokMem^[TokPtr]_10240+IdLookup[0 ];TokPtr_TokPtr+1;ScrapPtr_ScrapPtr+1;Cat^[ScrapPtr]_2; Trans^[ScrapPtr]_TextPtr;TextPtr_TextPtr+1; TokStart^[TextPtr]_TokPtr; END;BEGIN ScrapPtr_ScrapPtr+1; Cat^[ScrapPtr]_9;Trans^[ScrapPtr]_0; END;NextControl_GetNext[]; END; END; END; IF ScrapPtr#5 THEN BEGIN IF NOT PhaseOne THEN BEGIN PascalWriteLn[file: @TermOut];PascalWriteLongString[file: @TermOut, item: "! Improper format definition"];Error[]; END; END; END--:229--; OuterParse[];FinishPascal[]; END--:226-- ENDLOOP ;--231:--ThisModule_0; IF INT[NextControl]<=146 THEN BEGIN IF(SaveLine#OutLine)OR ( SavePlace#OutPtr) THEN BEGIN IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_92; IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_89; END;StackPtr_0;CurState.ModeField_1; IF NextControl=145 THEN NextControl_GetNext [] ELSE BEGIN ThisModule_ CurModule;--232:--DO NextControl_GetNext[]; IF NextControl#43 THEN EXIT; ENDLOOP; IF(NextControl#61)AND (NextControl#30) THEN BEGIN IF NOT PhaseOne THEN BEGIN PascalWriteLn[file: @TermOut]; PascalWriteLongString[file: @TermOut, item: "! You need an = sign after the section name"];Error[]; END; END ELSE NextControl_GetNext[]; IF INT[OutPtr]>1 THEN IF(OutBuf^[OutPtr]=89)AND (OutBuf^[OutPtr-1]=92) THEN BEGIN TokMem^[TokPtr]_139;TokPtr_TokPtr+1; END; BEGIN TokMem^[TokPtr]_30720+ThisModule;TokPtr_TokPtr+1; ScrapPtr_ScrapPtr+1;Cat^[ScrapPtr]_22;Trans^[ScrapPtr]_TextPtr; TextPtr_TextPtr+1;TokStart^[TextPtr]_TokPtr; END; CurXref_Xref^[ThisModule];ModCountPlusDefFlag_ModuleCount+10240; IF Xmem^[CurXref].NumField#ModCountPlusDefFlag THEN BEGIN BEGIN TokMem^[TokPtr]_132;TokPtr_TokPtr+1;TokMem^[TokPtr]_43; 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;ThisModule_0; END;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;BEGIN TokMem^[TokPtr]_141; TokPtr_TokPtr+1;ScrapPtr_ScrapPtr+1;Cat^[ScrapPtr]_9; Trans^[ScrapPtr]_TextPtr;TextPtr_TextPtr+1; TokStart^[TextPtr]_TokPtr; END;--:232-- END; WHILE INT[NextControl]<=146 DO BEGIN OuterParse[];--233: IF INT[NextControl]<146 THEN BEGIN BEGIN IF NOT PhaseOne THEN BEGIN PascalWriteLn[file: @TermOut];PascalWriteLongString[file: @TermOut, item: "! You can't do that in Pascal text"];Error[]; END; END;NextControl_GetNext[]; END ELSE IF NextControl=146 THEN BEGIN BEGIN TokMem^[TokPtr]_ 30720+CurModule;TokPtr_TokPtr+1;ScrapPtr_ScrapPtr+1;Cat^[ScrapPtr]_22; Trans^[ScrapPtr]_TextPtr;TextPtr_TextPtr+1; TokStart^[TextPtr]_TokPtr; END;NextControl_GetNext[]; END--:233--; END ENDLOOP ; FinishPascal[]; END--:231--;--234:--IF INT[ThisModule]>0 THEN BEGIN--236: FirstXref_Xref^[ThisModule];ThisXref_Xmem^[FirstXref].XlinkField; IF INT[Xmem^[ThisXref].NumField]>10240 THEN BEGIN MidXref_ThisXref; CurXref_0;DO NextXref_Xmem^[ThisXref].XlinkField; Xmem^[ThisXref].XlinkField_CurXref;CurXref_ThisXref; ThisXref_NextXref; IF INT[Xmem^[ThisXref].NumField]<=10240 THEN EXIT; ENDLOOP; Xmem^[FirstXref].XlinkField_CurXref; END ELSE MidXref_0;CurXref_0; WHILE ThisXref#0 DO BEGIN NextXref_Xmem^[ThisXref].XlinkField; Xmem^[ThisXref].XlinkField_CurXref;CurXref_ThisXref; ThisXref_NextXref; END ENDLOOP ; IF INT[MidXref]>0 THEN Xmem^[MidXref].XlinkField_CurXref ELSE Xmem^ [FirstXref].XlinkField_CurXref; CurXref_Xmem^[FirstXref].XlinkField--:236--;Footnote[10240]; Footnote[0]; END--:234--;--239:--BEGIN IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_92; IF OutPtr=LineLength THEN BreakOut[];OutPtr_OutPtr+1; OutBuf^[OutPtr]_102;IF OutPtr=LineLength THEN BreakOut[]; OutPtr_OutPtr+1;OutBuf^[OutPtr]_105; END;FinishLine[]; FlushBuffer[0,FALSE];--:239-- END--:221----:219-- ENDLOOP ; END; END.