<> <> <> DIRECTORY CodeDefs: TYPE USING [CaseCVState, CCIndex, LabelCCIndex, Lexeme], CompilerUtil: TYPE USING [], P5: TYPE USING [Module], Symbols: TYPE USING [ContextLevel, CTXIndex, ISEIndex, RecordSEIndex]; Code: PROGRAM IMPORTS P5 EXPORTS CompilerUtil = PUBLIC BEGIN OPEN CodeDefs; <> curctxlvl: Symbols.ContextLevel; codeptr: CCIndex; bodyRetLabel, bodyComRetLabel: LabelCCIndex; reentryLabel: LabelCCIndex; bodyInRecord, bodyOutRecord: Symbols.RecordSEIndex; bodyFileIndex: CARDINAL; mainBody: BOOL; ZEROlexeme: word literal Lexeme; stking: BOOL; tailJumpOK: BOOL; caseCVState: CaseCVState; mwCaseCV: Lexeme; fileindex, inlineFileIndex: CARDINAL; catchcount: CARDINAL; catchoutrecord: Symbols.RecordSEIndex; tempcontext: Symbols.CTXIndex; firstTemp, tempstart, framesz: CARDINAL; cfSize: CARDINAL; cfsi: CARDINAL; actenable, substenable: LabelCCIndex; xtracting: BOOL; xtractlex: Lexeme; xtractsei: Symbols.ISEIndex; ACStackOverflow: SIGNAL = CODE; ACStackUnderflow: SIGNAL = CODE; StackNotEmptyAtStatement: SIGNAL = CODE; CodeNotImplemented: SIGNAL = CODE; DeletingUnreachableCode: SIGNAL = CODE; CodePassInconsistency: SIGNAL = CODE; P5module: PROC = BEGIN -- starts the code generation pass P5.Module[]; END; END.