-- file: MFInputImpl3.mesa -- Pascal-to-Mesa translator output, translated at October 31, 1985 4:28:02 pm PST DIRECTORY PascalBasic, PascalWizardFiles, MFTypes, MFProcArray, MFExternals, MFInteraction, MFMemory, MFSymbols, MFInput, MFFileNames, MFParsing; MFInputImpl3: PROGRAM IMPORTS PascalWizardFiles, MFProcArray, MFExternals, MFInteraction, MFMemory, MFSymbols, MFInput, MFFileNames, MFParsing EXPORTS MFInput = PUBLIC BEGIN OPEN PascalBasic, PascalWizardFiles, MFTypes, MFProcArray, MFExternals, MFInteraction, MFMemory, MFSymbols, MFInput, MFFileNames, MFParsing; PrintArg: PROCEDURE[Q: Halfword, N: PascalInteger,B: Halfword] = BEGIN IF Mem[Q]^.Hh.Rh=1 THEN PrintNl[366] ELSE IF( INT[B]<2542)AND (B#7) THEN PrintNl[367] ELSE PrintNl[368];PrintInt[N];Print[569]; IF Mem[Q]^.Hh.Rh=1 THEN PrintExp[Q,1] ELSE ShowTokenList[Q,0,1000,0]; END;--:722----729:-- ScanTextArg: PROCEDURE[LDelim,RDelim: Halfword] = BEGIN Balance:PascalInteger;P:Halfword; WarningInfo_LDelim; ScannerStatus_3;P_49999;Balance_1;Mem[49999]^.Hh.Rh_0; {WHILE TRUE DO BEGIN GetNext[];IF LDelim=0 THEN--731: BEGIN IF INT[CurCmd]>79 THEN BEGIN IF Balance=1 THEN GOTO Label30 ELSE IF CurCmd =81 THEN Balance_Balance-1; END ELSE IF CurCmd=32 THEN Balance_Balance+1; END--:731-- ELSE--730: BEGIN IF CurCmd=62 THEN BEGIN IF CurMod=LDelim THEN BEGIN Balance_ Balance-1;IF Balance=0 THEN GOTO Label30; END; END ELSE IF CurCmd=31 THEN IF CurMod=RDelim THEN Balance_Balance+1; END--:730--;Mem[P]^.Hh.Rh_CurTok[];P_Mem[P]^.Hh.Rh; END ENDLOOP ; EXITS Label30 => NULL};CurExp_Mem[49999]^.Hh.Rh;CurType_20;ScannerStatus_0; END;--:729 MacroCall: PROCEDURE[DefRef,ArgList,MacroName: Halfword] = BEGIN R:Halfword;P, Q:Halfword;N:PascalInteger;LDelim, RDelim:Halfword; Tail:Halfword; R_Mem[DefRef]^.Hh.Rh; Mem[DefRef]^.Hh.Lh_ INT[Mem[DefRef]^.Hh.Lh]+1; IF ArgList=0 THEN N_0 ELSE--723:--BEGIN N_1;Tail_ArgList; WHILE Mem[Tail]^.Hh.Rh#0 DO BEGIN N_N+1;Tail_Mem[Tail]^.Hh.Rh; END ENDLOOP ; END--:723--;IF Internal^[9]>0 THEN--720:--BEGIN BeginDiagnostic[];PrintLn[]; PrintMacroName[ArgList,MacroName];IF N=3 THEN Print[531]; ShowMacro[DefRef,0,100000];IF ArgList#0 THEN BEGIN N_0;P_ArgList; DO Q_Mem[P]^.Hh.Lh;PrintArg[Q,N,0];N_N+1;P_Mem[P]^.Hh.Rh; IF P=0 THEN EXIT; ENDLOOP; END;EndDiagnostic[FALSE]; END--:720--;--724:--CurCmd_80; WHILE INT[Mem[R]^.Hh.Lh]>=2242 DO BEGIN--725: {IF CurCmd#79 THEN BEGIN GetXNext[]; IF CurCmd#31 THEN BEGIN BEGIN IF Interaction=3 THEN NULL;PrintNl[133]; Print[575]; END;PrintMacroName[ArgList,MacroName];BEGIN HelpPtr_3; HelpLine^[2]_576;HelpLine^[1]_577;HelpLine^[0]_578; END; IF INT[Mem[R]^.Hh.Lh]>=2392 THEN BEGIN CurExp_0;CurType_20; END ELSE BEGIN CurExp_0;CurType_16; END;BackError[];CurCmd_62; GOTO Label40; END;LDelim_CurSym;RDelim_CurMod; END;--728: IF INT[Mem[R]^.Hh.Lh]>=2542 THEN ScanTextArg[LDelim,RDelim] ELSE BEGIN GetXNext[];IF INT[Mem[R]^.Hh.Lh]>=2392 THEN ScanSuffix [] ELSE ScanExpression[]; END--:728--;IF CurCmd#79 THEN--726: IF(CurCmd#62)OR (CurMod#LDelim) THEN IF INT[Mem[Mem[R]^.Hh.Rh]^.Hh.Lh]>=2242 THEN BEGIN MissingErr[44];BEGIN HelpPtr_3;HelpLine^[2]_579; HelpLine^[1]_580;HelpLine^[0]_574; END;BackError[];CurCmd_79; END ELSE BEGIN MissingErr[Hash^[RDelim].Rh];BEGIN HelpPtr_2; HelpLine^[1]_581;HelpLine^[0]_574; END;BackError[]; END--:726--;EXITS Label40 => NULL};--727: BEGIN P_GetAvail[]; IF CurType=20 THEN Mem[P]^.Hh.Lh_CurExp ELSE Mem[P]^.Hh.Lh_ StashCurExp[];IF Internal^[9]>0 THEN BEGIN BeginDiagnostic[]; PrintArg[Mem[P]^.Hh.Lh,N,Mem[R]^.Hh.Lh];EndDiagnostic[FALSE]; END; IF ArgList=0 THEN ArgList_P ELSE Mem[Tail]^.Hh.Rh_P;Tail_P;N_N+1; END--:727----:725--;R_Mem[R]^.Hh.Rh; END ENDLOOP ; IF CurCmd=79 THEN BEGIN BEGIN IF Interaction=3 THEN NULL;PrintNl[133]; Print[570]; END;PrintMacroName[ArgList,MacroName];PrintChar[59]; PrintNl[571];Print[Hash^[RDelim].Rh];Print[172];BEGIN HelpPtr_3; HelpLine^[2]_572;HelpLine^[1]_573;HelpLine^[0]_574; END;Error[]; END; IF Mem[R]^.Hh.Lh#0 THEN--732: BEGIN IF INT[Mem[R]^.Hh.Lh]<7 THEN BEGIN GetXNext[]; IF Mem[R]^.Hh.Lh#6 THEN IF(CurCmd=51)OR (CurCmd=77) THEN GetXNext[]; END; SELECT Mem[R]^.Hh.Lh FROM 1 =>ScanPrimary[];2 =>ScanSecondary[];3 =>ScanTertiary[]; 4 =>ScanExpression[];5 =>--733:--BEGIN ScanExpression[];P_GetAvail[]; Mem[P]^.Hh.Lh_StashCurExp[]; IF Internal^[9]>0 THEN BEGIN BeginDiagnostic[]; PrintArg[Mem[P]^.Hh.Lh,N,0];EndDiagnostic[FALSE]; END; IF ArgList=0 THEN ArgList_P ELSE Mem[Tail]^.Hh.Rh_P;Tail_P;N_N+1; IF CurCmd#69 THEN BEGIN MissingErr[348];Print[582]; PrintMacroName[ArgList,MacroName];BEGIN HelpPtr_1; HelpLine^[0]_583; END;BackError[]; END;GetXNext[];ScanPrimary[]; END--:733--; 6 =>--734: BEGIN IF CurCmd#31 THEN LDelim_0 ELSE BEGIN LDelim_CurSym; RDelim_CurMod;GetXNext[]; END;ScanSuffix[]; IF LDelim#0 THEN BEGIN IF(CurCmd#62)OR (CurMod#LDelim) THEN BEGIN MissingErr[Hash^[RDelim].Rh];BEGIN HelpPtr_2;HelpLine^[1]_581; HelpLine^[0]_574; END;BackError[]; END;GetXNext[]; END; END--:734--; 7 =>ScanTextArg[0,0]; ENDCASE;BackInput[];--727:--BEGIN P_GetAvail[]; IF CurType=20 THEN Mem[P]^.Hh.Lh_CurExp ELSE Mem[P]^.Hh.Lh_ StashCurExp[];IF Internal^[9]>0 THEN BEGIN BeginDiagnostic[]; PrintArg[Mem[P]^.Hh.Lh,N,Mem[R]^.Hh.Lh];EndDiagnostic[FALSE]; END; IF ArgList=0 THEN ArgList_P ELSE Mem[Tail]^.Hh.Rh_P;Tail_P;N_N+1; END--:727--; END--:732--;R_Mem[R]^.Hh.Rh--:724--;--735: WHILE( INT[CurInput.IndexField]>6)AND (CurInput.LocField=0)DO EndTokenList[] ENDLOOP ; IF ParamPtr+N>MaxParamStack THEN BEGIN MaxParamStack_ParamPtr+N; IF MaxParamStack>150 THEN Overflow[553,150]; END; BeginTokenList[DefRef,12];CurInput.NameField_MacroName; CurInput.LocField_R;IF N>0 THEN BEGIN P_ArgList; DO ParamStack^[ParamPtr]_Mem[P]^.Hh.Lh;ParamPtr_ParamPtr+1; P_Mem[P]^.Hh.Rh; IF P=0 THEN EXIT; ENDLOOP;FlushList[ArgList]; END--:735--; END;--:719 --:705----706:-- Expand: PROCEDURE = BEGIN P:Halfword;K:PascalInteger;J:PoolPointer; IF Internal^[7]>65536 THEN IF CurCmd#10 THEN ShowCmdMod[CurCmd ,CurMod];SELECT CurCmd FROM 1 =>Conditional[];2 =>--750: IF CurMod>IfLimit THEN IF IfLimit=1 THEN BEGIN MissingErr[58]; BackInput[];CurSym_2234;InsError[]; END ELSE BEGIN BEGIN IF Interaction=3 THEN NULL;PrintNl[133];Print[590]; END; PrintCmdMod[2,CurMod];BEGIN HelpPtr_1;HelpLine^[0]_591; END;Error[]; END ELSE BEGIN WHILE CurMod#2 DO PassText[] ENDLOOP ;--744:--BEGIN P_CondPtr; IfLine_Mem[ INT[P]+1]^.Int;CurIf_Mem[P]^.Hh.B1;IfLimit_Mem[P]^.Hh.B0; CondPtr_Mem[P]^.Hh.Rh;FreeNode[P,2]; END--:744--; END--:750--;3 =>--710: IF CurMod>0 THEN ForceEof_TRUE ELSE StartInput--:710--[]; 4 =>IF CurMod=0 THEN--707:--BEGIN BEGIN IF Interaction=3 THEN NULL; PrintNl[133];Print[554]; END;BEGIN HelpPtr_2;HelpLine^[1]_555; HelpLine^[0]_556; END;Error[]; END--:707-- ELSE BeginIteration[];5 =>--711: BEGIN WHILE( INT[CurInput.IndexField]>6)AND (CurInput.LocField=0)DO EndTokenList[] ENDLOOP ;IF LoopPtr=0 THEN BEGIN BEGIN IF Interaction=3 THEN NULL; PrintNl[133];Print[558]; END;BEGIN HelpPtr_2;HelpLine^[1]_559; HelpLine^[0]_560; END;Error[]; END ELSE ResumeIteration[]; END--:711--;6 =>--712: BEGIN GetBoolean[];IF Internal^[7]>65536 THEN ShowCmdMod[33,CurExp]; IF CurExp=30 THEN IF LoopPtr=0 THEN BEGIN BEGIN IF Interaction=3 THEN NULL; PrintNl[133];Print[561]; END;BEGIN HelpPtr_1;HelpLine^[0]_562; END; IF CurCmd=80 THEN Error [] ELSE BackError[]; END ELSE--713:--BEGIN P_0; DO IF( INT[CurInput.IndexField]<=6) THEN EndFileReading [] ELSE BEGIN IF INT[CurInput.IndexField]<=8 THEN P_CurInput.StartField;EndTokenList[]; END; IF P#0 THEN EXIT; ENDLOOP;IF P#Mem[LoopPtr]^.Hh.Lh THEN FatalError[565]; StopIteration[]; END--:713-- ELSE IF CurCmd#80 THEN BEGIN MissingErr[59]; BEGIN HelpPtr_2;HelpLine^[1]_563;HelpLine^[0]_564; END;BackError[]; END; END--:712--;7 => NULL;9 =>--714:--BEGIN GetNext[];P_CurTok[];GetNext[]; IF INT[CurCmd]<11 THEN Expand [] ELSE BackInput[];BeginTokenList[P,10]; END--:714--;8 =>--715:--BEGIN GetXNext[];ScanPrimary[]; IF CurType#4 THEN BEGIN DispErr[0,566];BEGIN HelpPtr_2; HelpLine^[1]_567;HelpLine^[0]_568; END;PutGetFlushError[0]; END ELSE BEGIN BackInput[]; IF INT[(StrStart^[CurExp+1]-StrStart^[CurExp])]>0 THEN--716: BEGIN BeginFileReading[];CurInput.NameField_2; K_ INT[First]+(StrStart^[CurExp+1]-StrStart^[CurExp]); IF K>=MaxBufStack THEN BEGIN IF K>=BufSize THEN BEGIN MaxBufStack_ BufSize;Overflow[128,BufSize]; END;MaxBufStack_K+1; END; J_StrStart^[CurExp];CurInput.LimitField_K; WHILE INT[First]MacroCall[CurMod,0,CurSym]; ENDCASE; END;--:706----717: GetXNext: PROCEDURE = BEGIN SaveExp:Halfword; GetNext[]; IF INT[CurCmd]<11 THEN BEGIN SaveExp_StashCurExp[]; DO IF CurCmd=10 THEN MacroCall[CurMod,0,CurSym] ELSE Expand[]; GetNext[]; IF INT[CurCmd]>=11 THEN EXIT; ENDLOOP;UnstashCurExp[SaveExp]; END; END;--:717 --736:-- StackArgument: PROCEDURE[P: Halfword] = BEGIN IF ParamPtr=MaxParamStack THEN BEGIN MaxParamStack_ MaxParamStack+1;IF MaxParamStack>150 THEN Overflow[553,150]; END; ParamStack^[ParamPtr]_P;ParamPtr_ParamPtr+1; END;--:736----741: PassText: PROCEDURE = BEGIN L:PascalInteger; ScannerStatus_1;L_0; WarningInfo_Line;{WHILE TRUE DO BEGIN GetNext[]; IF INT[CurCmd]<=2 THEN IF INT[CurCmd]<2 THEN L_L+1 ELSE BEGIN IF L=0 THEN GOTO Label30;IF CurMod=2 THEN L_L-1; END ELSE--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--; END ENDLOOP ;EXITS Label30 => NULL};ScannerStatus_0; END;--:741----745: ChangeIfLimit: PROCEDURE[L: SmallNumber,P: Halfword] = BEGIN Q:Halfword; {IF P=CondPtr THEN IfLimit_L ELSE BEGIN Q_CondPtr; WHILE TRUE DO BEGIN IF Q=0 THEN Confusion[584]; IF Mem[Q]^.Hh.Rh=P THEN BEGIN Mem[Q]^.Hh.B0_L; GOTO Label10; END; Q_Mem[Q]^.Hh.Rh; END ENDLOOP ; END;EXITS Label10 => NULL}; END;--:745----746:-- CheckColon: PROCEDURE = BEGIN IF CurCmd#78 THEN BEGIN MissingErr[58];BEGIN HelpPtr_2; HelpLine^[1]_587;HelpLine^[0]_564; END;BackError[]; END; END;--:746----747: Conditional: PROCEDURE = BEGIN SaveCondPtr:Halfword; NewIfLimit:PascalInteger[2..4];P:Halfword;--743:--BEGIN P_GetNode[2]; Mem[P]^.Hh.Rh_CondPtr;Mem[P]^.Hh.B0_IfLimit;Mem[P]^.Hh.B1_CurIf; Mem[ INT[P]+1]^.Int_IfLine;CondPtr_P;IfLimit_1;IfLine_Line;CurIf_1; END--:743--;SaveCondPtr_CondPtr;DO {--Label21:--GetBoolean[];NewIfLimit_4; IF Internal^[7]>65536 THEN--749:--BEGIN BeginDiagnostic[]; IF CurExp=30 THEN Print[588] ELSE Print[589];EndDiagnostic[FALSE]; END--:749--;DO {--Label40:--CheckColon[]; {IF CurExp=30 THEN BEGIN ChangeIfLimit[NewIfLimit,SaveCondPtr]; GOTO Label10; END;--748:--{WHILE TRUE DO BEGIN PassText[]; IF CondPtr=SaveCondPtr THEN GOTO Label30 ELSE IF CurMod=2 THEN--744: BEGIN P_CondPtr;IfLine_Mem[ INT[P]+1]^.Int;CurIf_Mem[P]^.Hh.B1; IfLimit_Mem[P]^.Hh.B0;CondPtr_Mem[P]^.Hh.Rh;FreeNode[P,2]; END--:744--; END--:748-- ENDLOOP ;EXITS Label30 => NULL};CurIf_CurMod;IfLine_Line;IF CurMod=2 THEN--744: BEGIN P_CondPtr;IfLine_Mem[ INT[P]+1]^.Int;CurIf_Mem[P]^.Hh.B1; IfLimit_Mem[P]^.Hh.B0;CondPtr_Mem[P]^.Hh.Rh;FreeNode[P,2]; END--:744 ELSE IF CurMod=4 THEN GOTO Label21 ELSE BEGIN CurExp_30;NewIfLimit_2; GetXNext[]; GOTO Label40; END;EXITS Label10 => NULL};EXIT; EXITS Label40 => NULL} ENDLOOP;EXIT; EXITS Label21 => NULL} ENDLOOP; END;--:747----753: BadFor: PROCEDURE[S: StrNumber] = BEGIN DispErr[0,592];Print[S]; Print[179];BEGIN HelpPtr_4;HelpLine^[3]_593;HelpLine^[2]_594; HelpLine^[1]_595;HelpLine^[0]_181; END;PutGetFlushError[0]; END; --:753----754:-- BeginIteration: PROCEDURE = BEGIN M:Halfword; N:Halfword;P, Q, S, Pp:Halfword; M_CurMod;N_CurSym;S_GetNode[2]; {IF M=1 THEN BEGIN Mem[ INT[S]+1]^.Hh.Lh_1;P_0;GetXNext[]; GOTO Label40; END; GetSymbol[];P_GetNode[2];Mem[P]^.Hh.Lh_CurSym;Mem[ INT[P]+1]^.Int_M; GetXNext[];IF(CurCmd#51)AND (CurCmd#77) THEN BEGIN MissingErr[61]; BEGIN HelpPtr_3;HelpLine^[2]_596;HelpLine^[1]_539;HelpLine^[0]_597; END;BackError[]; END;--763:--Mem[ INT[S]+1]^.Hh.Lh_0;Q_ INT[S]+1;Mem[Q]^.Hh.Rh_0; {DO GetXNext[]; {IF M#2242 THEN ScanSuffix [] ELSE BEGIN IF INT[CurCmd]>=78 THEN IF INT[CurCmd]<=79 THEN GOTO Label22;ScanExpression[];IF CurCmd=74 THEN IF Q= INT[S]+1 THEN--764: BEGIN IF CurType#16 THEN BadFor[603];Pp_GetNode[4]; Mem[ INT[Pp]+1]^.Int_CurExp;GetXNext[];ScanExpression[]; IF CurType#16 THEN BadFor[604];Mem[ INT[Pp]+2]^.Int_CurExp; IF CurCmd#75 THEN BEGIN MissingErr[358];BEGIN HelpPtr_2; HelpLine^[1]_605;HelpLine^[0]_606; END;BackError[]; END;GetXNext[]; ScanExpression[];IF CurType#16 THEN BadFor[607]; Mem[ INT[Pp]+3]^.Int_CurExp;Mem[ INT[S]+1]^.Hh.Lh_Pp; GOTO Label30; END--:764--; CurExp_StashCurExp[]; END;Mem[Q]^.Hh.Rh_GetAvail[];Q_Mem[Q]^.Hh.Rh; Mem[Q]^.Hh.Lh_CurExp;CurType_1;EXITS Label22 => NULL}; IF CurCmd#79 THEN EXIT; ENDLOOP;EXITS Label30 => NULL};--:763--EXITS Label40 => NULL};--755:--IF CurCmd#78 THEN BEGIN MissingErr[58];BEGIN HelpPtr_3; HelpLine^[2]_598;HelpLine^[1]_599;HelpLine^[0]_600; END;BackError[]; END--:755--;--757:--Q_GetAvail[];Mem[Q]^.Hh.Lh_2230;ScannerStatus_6; WarningInfo_N;Mem[S]^.Hh.Lh_ScanToks[4,P,Q,0];ScannerStatus_0; Mem[S]^.Hh.Rh_LoopPtr;LoopPtr_S--:757--;ResumeIteration[]; END;--:754 --759:-- ResumeIteration: PROCEDURE = BEGIN P, Q:Halfword; P_Mem[ INT[LoopPtr]+1]^.Hh.Lh;{{IF INT[P]>1 THEN BEGIN CurExp_Mem[ INT[P]+1]^.Int; IF--760: ((Mem[ INT[P]+2]^.Int>0)AND (CurExp>Mem[ INT[P]+3]^.Int))OR ((Mem[ INT[P]+2]^.Int<0)AND ( CurExp65536 THEN--761:--BEGIN BeginDiagnostic[];PrintNl[602]; IF(Q#0)AND (Mem[Q]^.Hh.Rh=1) THEN PrintExp[Q,1] ELSE ShowTokenList[Q,0, 50,0];PrintChar[125];EndDiagnostic[FALSE]; END--:761--; GOTO Label10; EXITS Label45 => NULL};StopIteration[];EXITS Label10 => NULL}; END;--:759----762:-- StopIteration: PROCEDURE = BEGIN P, Q:Halfword; P_Mem[ INT[LoopPtr]+1]^.Hh.Lh; IF INT[P]>1 THEN FreeNode[P,4] ELSE IF INT[P]<1 THEN BEGIN Q_Mem[ INT[LoopPtr]+1]^.Hh. Rh;WHILE Q#0 DO BEGIN P_Mem[Q]^.Hh.Lh; IF P#0 THEN IF Mem[P]^.Hh.Rh=1 THEN BEGIN RecycleValue[P]; FreeNode[P,2]; END ELSE FlushTokenList[P];P_Q;Q_Mem[Q]^.Hh.Rh; BEGIN Mem[P]^.Hh.Rh_Avail;Avail_P;DynUsed_DynUsed-1; END; END ENDLOOP ; END; P_LoopPtr;LoopPtr_Mem[P]^.Hh.Rh;FlushTokenList[Mem[P]^.Hh.Lh]; FreeNode[P,2]; END;--:762----769:----:787----792:-- StartInput: PROCEDURE = BEGIN StrPtrMinusOne:Halfword;--794: WHILE( INT[CurInput.IndexField]>6)AND (CurInput.LocField=0)DO EndTokenList[] ENDLOOP ; IF( INT[CurInput.IndexField]>6) THEN BEGIN BEGIN IF Interaction=3 THEN NULL; PrintNl[133];Print[622]; END;BEGIN HelpPtr_3;HelpLine^[2]_623; HelpLine^[1]_624;HelpLine^[0]_625; END;Error[]; END; IF( INT[CurInput.IndexField]<=6) THEN ScanFileName [] ELSE BEGIN CurName_157 ;CurExt_157;CurArea_157; END--:794--;IF CurExt=157 THEN CurExt_612; PackFileName[CurName,CurArea,CurExt]; {WHILE TRUE DO BEGIN BeginFileReading[]; IF AOpenIn[@InputFile^[CurInput.IndexField]] THEN GOTO Label30; PackFileName[CurName,MfArea,CurExt]; IF AOpenIn[@InputFile^[CurInput.IndexField]] THEN GOTO Label30; EndFileReading[];PromptFileName[608,612]; END ENDLOOP ; EXITS Label30 => NULL};CurInput.NameField_AMakeNameString[@InputFile^[CurInput. IndexField]];StrRef^[CurName]_127; IF JobName=0 THEN BEGIN JobName_CurName;OpenLogFile[]; END; IF INT[TermOffset]+(StrStart^[ INT[CurInput.NameField]+1]-StrStart^[CurInput. NameField])>MaxPrintLine-2 THEN PrintLn [] ELSE IF( INT[TermOffset]>0)OR ( INT[FileOffset]>0) THEN PrintChar[32];PrintChar[40]; Print[CurInput.NameField];PascalTextBREAK[file: @TermOut]; StrPtrMinusOne_StrPtr-1; IF CurInput.NameField=StrPtrMinusOne THEN BEGIN FlushString[ CurInput.NameField];CurInput.NameField_CurName; END;--793: BEGIN IF NOT InputLn[@InputFile^[CurInput.IndexField],FALSE] THEN NULL; FirmUpTheLine[];Buffer^[CurInput.LimitField]_37; First_ INT[CurInput.LimitField]+1; CurInput.LocField_CurInput.StartField;Line_1; END--:793--; END;--:792 END.