DIRECTORY IntCodeDefs USING [Handler, Label, Node, NodeList, Var], MimCode USING [CodeList, LabelInfo, StoreOptions], MobDefs USING [Link, ModuleIndex], SourceMap USING [Loc], Symbols USING [BTIndex, CBTIndex, ContextLevel, CSEIndex, ISEIndex, SEIndex, Type, typeANY], Tree USING [Index, Link]; MimP5: DEFINITIONS = { OPEN IntCodeDefs, MimCode, Symbols; CountedAllocate: PROC [zone: Node, type: Symbols.SEIndex, catch: Tree.Link, size: Node] RETURNS [Node]; SysError: PROC RETURNS [Node]; ZoneOp: PROC [zone: Node, which: ZoneOpSelector, args: NodeList, catch: Tree.Link] RETURNS [Node]; ZoneOpSelector: TYPE = {alloc, free}; inInline: BOOL; MakeGlobal: PROC [bits: INT, type: Type ¬ typeANY] RETURNS [v: Var, sei: ISEIndex]; MakeString: PROC [t: Tree.Link] RETURNS [Node]; ProcDescForBti: PROC [bti: CBTIndex, body: BOOL ¬ FALSE] RETURNS [Node]; ProcLabelForBti: PROC [bti: CBTIndex, direct: BOOL ¬ TRUE] RETURNS [Node]; PushContext: PROC [label: Label, cl: CodeList, inner: PROC]; SignalForSei: PROC [sei: ISEIndex] RETURNS [Node]; VarForInterface: PROC [mod: MobDefs.ModuleIndex] RETURNS [Var]; VarForLink: PROC [link: MobDefs.Link, bits: INT] RETURNS [Var]; visibleContext: REF VisibalContextArray; VisibalContextArray: TYPE = ARRAY Symbols.ContextLevel OF IntCodeDefs.Label; FlowExp: PROC [node: Tree.Index] RETURNS [Node]; GetLabelMark: PROC RETURNS [LabelInfo]; LabelCreate: PROC [t: Tree.Link]; LabelList: PROC [cl: CodeList, t: Tree.Link, elabel: Label, mark: LabelInfo]; MakeExitLabel: PROC RETURNS [exit, loop: Label]; All: PROC [t: Tree.Link, node: Tree.Index, options: StoreOptions] RETURNS [Node]; Construct: PROC [t: Tree.Link, node: Tree.Index, options: StoreOptions] RETURNS [Node]; ListCons: PROC [node: Tree.Index] RETURNS [Node]; New: PROC [node: Tree.Index] RETURNS [Node]; RowCons: PROC [t: Tree.Link, node: Tree.Index, options: StoreOptions] RETURNS [Node]; VariantConstruct: PROC [t1, t2: Tree.Link, options: StoreOptions] RETURNS [Node]; BindStmtExp: PROC [root: Tree.Index, isExp: BOOL] RETURNS [Node]; CaseStmtExp: PROC [root: Tree.Index, isExp: BOOL] RETURNS [Node]; Clarify: PROC [type: Type] RETURNS [CSEIndex]; Normalize: PROC [type: Type] RETURNS [CSEIndex]; Exp: PROC [t: Tree.Link] RETURNS [IntCodeDefs.Node]; ExpList: PROC [t: Tree.Link, wordPad: BOOL] RETURNS [head, tail: NodeList ¬ NIL]; GetCanonicalType: PROC [tree: Tree.Index] RETURNS [Node]; NarrowExp: PROC [tree: Tree.Index] RETURNS [Node]; TypeRel: PROC [tree: Tree.Index] RETURNS [Node]; VarForSei: PROC [sei: ISEIndex] RETURNS [Var]; DeclList: PROC [cl: CodeList, t: Tree.Link]; SCatchPhrase: PROC [t: Tree.Link] RETURNS [Handler]; StatementList: PROC [cl: CodeList, t: Tree.Link]; StatementTree: PROC [t: Tree.Link] RETURNS [Node]; WrapSource: PROC [node: Node, loc: SourceMap.Loc] RETURNS [Node]; WrapSourceBlock: PROC [cl: CodeList, bti: BTIndex, hasDecls: BOOL] RETURNS [Node]; }. Ξ MimP5.mesa Copyright Σ 1985, 1986, 1987, 1988, 1991 by Xerox Corporation. All rights reserved. Sweet, June 1, 1986 9:02:14 pm PDT Satterthwaite, November 26, 1985 1:29:52 pm PST Russ Atkinson (RRA) July 23, 1990 3:17:25 pm PDT from MimCalls from MimDriver TRUE iff inside of INLINE expansion (inside of subst or substx) returns the descriptor for the indicated procedure body => return the body ~body => return the address of the body returns a var with code location for the proc label direct => for direct application ~direct => for proc desc body initialization Enters a new context (reflected in visibleContext) for the given proc label and code list, calls inner, and then pops the context on the way out. Useful for generating procedure bodies (see MimStmt.SCatchPhrase). from MimFlow from MimCons from MimExpr Removes layers of definition and opaque from the given type. Removes layers of definition, subrange and opaque from the given type. from MimStmt ΚS•NewlineDelimiter –(cedarcode) style™headšœ ™ Icodešœ ΟeœI™TLšΟy"™"Lšž/™/L™0—˜šΟk ˜ Lšœ Ÿœ'˜8LšœŸœ%˜2LšœŸœ˜"Lšœ Ÿœ˜LšœŸœO˜\LšœŸœ˜——šΟnœŸ œ˜LšŸœ˜#L˜—šœ ™ L˜Lš œŸœBŸœ˜gLš œŸœŸœ˜š œŸœGŸœ˜bLšœŸœ˜%—L˜—šœ™L˜šœ Ÿœ˜LšŸœŸœ&™?L™—Lš  œŸœŸœŸœ˜SLš  œŸœŸœ˜/š  œŸœŸœŸœŸœ˜H™2Lšœ™L™'——š  œŸœŸœŸœŸœ˜J™3Lšœ ™ Lšœ,™,——š  œŸœ%Ÿœ˜˜MLš  œŸœŸœ˜0L˜—šœ ™ L™Lš œŸœ9Ÿœ˜QLš  œŸœ9Ÿœ˜WLš œŸœŸœ˜1Lš œŸœŸœ˜,Lš œŸœ9Ÿœ˜ULš œŸœ,Ÿœ˜QL˜—šœ ™ L˜Lš  œŸœŸœŸœ˜ALš  œŸœŸœŸœ˜Aš œŸœŸœ ˜.L™<—š  œŸœŸœ ˜0L™F—Lš œŸœŸœ˜4Lš  œŸœŸœŸœŸœ˜QLš œŸœŸœ˜9Lš  œŸœŸœ˜2Lš œŸœŸœ˜0Lš  œŸœŸœ˜.L˜—šœ ™ L˜Lš œŸœ˜,Lš  œŸœŸœ ˜4Lš  œŸœ˜1Lš  œŸœŸœ˜2Lš  œŸœ"Ÿœ˜ALš œŸœ(ŸœŸœ˜RL˜—˜L˜——…— Pq