-- file: WeavePhaseI.mesa -- Pascal-to-Mesa translator output, translated at September 23, 1986 1:27:38 pm PDT DIRECTORY PascalBasic, PascalWizardFiles, WeaveProcs, WeaveVars; WeavePhaseI: PROGRAM IMPORTS PascalWizardFiles, WeaveProcs, WeaveVars EXPORTS WeaveProcs = PUBLIC BEGIN OPEN PascalBasic, PascalWizardFiles, WeaveProcs, WeaveVars; PascalXref: PROCEDURE = BEGIN P:NamePointer; {WHILE INT[NextControl]<143 DO BEGIN IF( INT[NextControl]>=130)AND ( INT[NextControl]<=133) THEN BEGIN P_IdLookup[NextControl-130];NewXref[P]; IF(Ilk^[P]=17)OR (Ilk^[P]=22) THEN XrefSwitch_10240; END; NextControl_GetNext[]; IF(NextControl=124)OR (NextControl=123) THEN GOTO Label10; END ENDLOOP ;EXITS Label10 => NULL}; END;--:112 --113:-- OuterXref: PROCEDURE = BEGIN Bal:EightBits; WHILE INT[NextControl]<143 DO IF NextControl#123 THEN PascalXref [] ELSE BEGIN Bal_SkipComment[1];NextControl_124; WHILE INT[Bal]>0 DO BEGIN PascalXref[]; IF NextControl=124 THEN Bal_SkipComment[Bal] ELSE Bal_0; END ENDLOOP ; END ENDLOOP ; END; --:113----120:-- ModCheck: PROCEDURE[P: NamePointer] = BEGIN IF INT[P]>0 THEN BEGIN ModCheck[Link^[P]];CurXref_Xref^[P]; IF INT[Xmem^[CurXref].NumField]<10240 THEN BEGIN BEGIN PascalWriteLn[file: @TermOut]; PascalWriteLongString[file: @TermOut, item: "! Never defined: <"]; END;PrintId[P]; PascalWriteLongString[file: @TermOut, item: ">"];IF History=0 THEN History_1; END; WHILE INT[Xmem^[CurXref].NumField]>=10240 DO CurXref_Xmem^[CurXref]. XlinkField ENDLOOP ;IF CurXref=0 THEN BEGIN BEGIN PascalWriteLn[file: @TermOut]; PascalWriteLongString[file: @TermOut, item: "! Never used: <"]; END;PrintId[P];PascalWriteLongString[file: @TermOut, item: ">"]; IF History=0 THEN History_1; END;ModCheck[Ilk^[P]]; END; END;--:120----123: PhaseI: PROCEDURE = BEGIN--110:-- PhaseOne_TRUE;PhaseThree_FALSE; ResetInput[];ModuleCount_0;SkipLimbo[];ChangeExists_FALSE; WHILE NOT InputHasEnded DO--111:--BEGIN ModuleCount_ModuleCount+1; IF ModuleCount=MaxModules THEN BEGIN PascalWriteLn[file: @TermOut]; {PascalWriteLongString[file: @TermOut, item: "! Sorry, "]; PascalWriteLongString[file: @TermOut, item: "section number"]; PascalWriteLongString[file: @TermOut, item: " capacity exceeded"]};Error[]; History_3;JumpOut[]; END;ChangedModule^[ModuleCount]_FALSE; IF Buffer^[Loc-1]=42 THEN BEGIN {PascalWriteLongString[file: @TermOut, item: "*"]; PascalWriteInteger[file: @TermOut, item: ModuleCount, fieldMinLength: 1]}; PascalTextBREAK[file: @TermOut]; END;--114:--DO NextControl_SkipTex[]; SELECT NextControl FROM 126 =>XrefSwitch_10240;125 =>XrefSwitch_0; 124 =>PascalXref[];131,132,133,146 =>BEGIN Loc_Loc-2;NextControl_GetNext[]; IF NextControl#146 THEN NewXref[IdLookup[NextControl-130]]; END; ENDCASE => NULL; IF INT[NextControl]>=143--:114-- THEN EXIT; ENDLOOP;--116: WHILE INT[NextControl]<=144 DO BEGIN XrefSwitch_10240; IF NextControl=144 THEN NextControl_GetNext [] ELSE--117: BEGIN NextControl_GetNext[]; IF NextControl=130 THEN BEGIN Lhs_IdLookup[0];Ilk^[Lhs]_0; NewXref[Lhs];NextControl_GetNext[]; IF NextControl=30 THEN BEGIN NextControl_GetNext[]; IF NextControl=130 THEN BEGIN Rhs_IdLookup[0];Ilk^[Lhs]_Ilk^[Rhs]; Ilk^[Rhs]_0;NewXref[Rhs];Ilk^[Rhs]_Ilk^[Lhs];NextControl_GetNext[]; END; END; END; END--:117--;OuterXref[]; END--:116-- ENDLOOP ;--118: IF INT[NextControl]<=146 THEN BEGIN IF NextControl=145 THEN ModXrefSwitch _0 ELSE ModXrefSwitch_10240; DO IF NextControl=146 THEN NewModXref[CurModule]; NextControl_GetNext[];OuterXref[]; IF INT[NextControl]>146 THEN EXIT; ENDLOOP; END--:118--; IF ChangedModule^[ModuleCount] THEN ChangeExists_TRUE; END--:111-- ENDLOOP ; ChangedModule^[ModuleCount]_ChangeExists;PhaseOne_FALSE;--121: ModCheck[Ilk^[0]]--:121--;--:110-- END; END.