-- file: MFOpsImpl7.mesa -- Pascal-to-Mesa translator output, translated at October 31, 1985 4:28:02 pm PST DIRECTORY PascalBasic, MFTypes, MFProcArray, MFInteraction, MFMath, MFMemory, MFSymbols, MFInput, MFParsing, MFOps; MFOpsImpl7: PROGRAM IMPORTS MFProcArray, MFInteraction, MFMath, MFMemory, MFSymbols, MFInput, MFParsing, MFOps EXPORTS MFOps = PUBLIC BEGIN OPEN PascalBasic, MFTypes, MFProcArray, MFInteraction, MFMath, MFMemory, MFSymbols, MFInput, MFParsing, MFOps; --:1151----1161:-- BocC: PascalInteger; BocP: PascalInteger; DoAssignment: PROCEDURE = BEGIN Lhs:Halfword;P:Halfword;Q:Halfword; IF CurType#20 THEN BEGIN DispErr[0,748];BEGIN HelpPtr_2; HelpLine^[1]_749;HelpLine^[0]_750; END;Error[];DoEquation[]; END ELSE BEGIN Lhs_CurExp;CurType_1;GetXNext[];VarFlag_77; ScanExpression[]; IF CurCmd=51 THEN DoEquation [] ELSE IF CurCmd=77 THEN DoAssignment[]; IF Internal^[7]>131072 THEN--997:--BEGIN BeginDiagnostic[];PrintNl[123]; IF INT[Mem[Lhs]^.Hh.Lh]>2241 THEN Print[IntName^[Mem[Lhs]^.Hh.Lh-(2241)]] ELSE ShowTokenList[Lhs,0,1000,0];Print[330];PrintExp[0,0];PrintChar[125]; EndDiagnostic[FALSE]; END--:997--;IF INT[Mem[Lhs]^.Hh.Lh]>2241 THEN--998: IF CurType=16 THEN Internal^[Mem[Lhs]^.Hh.Lh-(2241)]_CurExp ELSE BEGIN DispErr[0,752];Print[IntName^[Mem[Lhs]^.Hh.Lh-(2241)]];Print[753]; BEGIN HelpPtr_2;HelpLine^[1]_754;HelpLine^[0]_755; END;PutGetError[]; END--:998-- ELSE--999:--BEGIN P_FindVariable[Lhs]; IF P#0 THEN BEGIN Q_StashCurExp[];CurType_UndType[P]; RecycleValue[P];Mem[P]^.Hh.B0_CurType;Mem[ INT[P]+1]^.Int_0; MakeExpCopy[P];P_StashCurExp[];UnstashCurExp[Q];MakeEq[P]; END ELSE BEGIN Obliterated[Lhs];PutGetError[]; END; END--:999--; FlushNodeList[Lhs]; END; END;--:995----1014:-- DoTypeDeclaration: PROCEDURE = BEGIN T:SmallNumber;P:Halfword;Q:Halfword; IF CurMod>=13 THEN T_CurMod ELSE T_CurMod+1; DO P_ScanDeclaredVariable[]; FlushVariable[Eqtb^[Mem[P]^.Hh.Lh].Rh,Mem[P]^.Hh.Rh,FALSE]; Q_FindVariable[P];IF Q#0 THEN BEGIN Mem[Q]^.Hh.B0_T;Mem[ INT[Q]+1]^.Int_0; END ELSE BEGIN BEGIN IF Interaction=3 THEN NULL;PrintNl[133];Print[765]; END; BEGIN HelpPtr_2;HelpLine^[1]_766;HelpLine^[0]_767; END;PutGetError[]; END;FlushList[P];IF INT[CurCmd]<79 THEN--1015: BEGIN BEGIN IF Interaction=3 THEN NULL;PrintNl[133];Print[768]; END; BEGIN HelpPtr_5;HelpLine^[4]_769;HelpLine^[3]_770;HelpLine^[2]_771; HelpLine^[1]_772;HelpLine^[0]_773; END; IF CurCmd=42 THEN HelpLine^[2]_774;PutGetError[];ScannerStatus_2; DO GetNext[];--742: IF CurCmd=39 THEN BEGIN IF INT[StrRef^[CurMod]]<127 THEN IF INT[StrRef^[CurMod ]]>1 THEN StrRef^[CurMod]_StrRef^[CurMod]-1 ELSE FlushString[CurMod] ; END--:742--; IF INT[CurCmd]>=79 THEN EXIT; ENDLOOP;ScannerStatus_0; END--:1015--; IF INT[CurCmd]>79 THEN EXIT; ENDLOOP; END;--:1014----1020:-- DoRandomSeed: PROCEDURE = BEGIN GetXNext[];IF CurCmd#77 THEN BEGIN MissingErr[330]; BEGIN HelpPtr_1;HelpLine^[0]_779; END;BackError[]; END;GetXNext[]; ScanExpression[];IF CurType#16 THEN BEGIN DispErr[0,780]; BEGIN HelpPtr_2;HelpLine^[1]_781;HelpLine^[0]_782; END; PutGetFlushError[0]; END ELSE--1021:--BEGIN InitRandoms[CurExp]; IF INT[Selector]>=2 THEN BEGIN OldSetting_Selector;Selector_2; PrintNl[783];PrintScaled[CurExp];PrintChar[125];PrintNl[157]; Selector_OldSetting; END; END--:1021--; END;--:1020----1028: DoProtection: PROCEDURE = BEGIN M:PascalInteger[0..1];T:Halfword; M_CurMod; DO GetSymbol[];T_Eqtb^[CurSym].Lh; IF M=0 THEN BEGIN IF INT[T]>=83 THEN Eqtb^[CurSym].Lh_ INT[T]-83; END ELSE IF INT[T]<83 THEN Eqtb^[CurSym].Lh_ INT[T]+83;GetXNext[]; IF CurCmd#79 THEN EXIT; ENDLOOP; END;--:1028----1030:-- DefDelims: PROCEDURE = BEGIN LDelim, RDelim:Halfword; GetClearSymbol[];LDelim_CurSym; GetClearSymbol[];RDelim_CurSym;Eqtb^[LDelim].Lh_31; Eqtb^[LDelim].Rh_RDelim;Eqtb^[RDelim].Lh_62; Eqtb^[RDelim].Rh_LDelim;GetXNext[]; END;--:1030----1033: END.