-- SaffronAG6bImpl.mesa -- Copyright Ó 1987 by Xerox Corporation. All rights reserved. -- Generated by Rauen.pa at September 1, 1988 7:24:48 pm PDT -- using ThreeCasabaFour [1.2] of June 1, 1987 6:00:00 pm PDT DIRECTORY SaffronAG6bDef, SaffronGenericDef, SaffronATDef; SaffronAG6bImpl: CEDAR PROGRAM IMPORTS SaffronAG6bDef EXPORTS SaffronAG6bDef= BEGIN OPEN SaffronAG6bDef, SaffronGenericDef, SaffronATDef; -- TypeIdidProd TypeIdidProdProcs: PUBLIC TypeIdNodeProcs _ NEW[TypeIdNodeProcsBody _ [TypeIdidProdMakeType, TypeIdidProdLookupTypeId, TypeIdidProdAddSizeDependencies, TypeIdidProdAddFirstDependencies, TypeIdidProdAddLastDependencies, TypeIdidProdCompileSizeOfTypeExpression, TypeIdidProdCompileFirstOfTypeExpression, TypeIdidProdCompileLastOfTypeExpression, TypeIdidProdEvaluateSizeOfTypeExpression, TypeIdidProdEvaluateFirstOfTypeExpression, TypeIdidProdEvaluateLastOfTypeExpression]]; BuildTypeIdidProdNode: PUBLIC PROC[position: INT, length: INT, Id: IdNode] RETURNS[TypeIdNode] = BEGIN data: TypeIdidProdData _ NEW[TypeIdidProdDataBody _ [ Id]]; RETURN[NEW[TypeIdNodeBody_[position, length, TypeIdidProdProcs, data]]]; END; -- TypeIdqualifierProd TypeIdqualifierProdProcs: PUBLIC TypeIdNodeProcs _ NEW[TypeIdNodeProcsBody _ [TypeIdqualifierProdMakeType, TypeIdqualifierProdLookupTypeId, TypeIdqualifierProdAddSizeDependencies, TypeIdqualifierProdAddFirstDependencies, TypeIdqualifierProdAddLastDependencies, TypeIdqualifierProdCompileSizeOfTypeExpression, TypeIdqualifierProdCompileFirstOfTypeExpression, TypeIdqualifierProdCompileLastOfTypeExpression, TypeIdqualifierProdEvaluateSizeOfTypeExpression, TypeIdqualifierProdEvaluateFirstOfTypeExpression, TypeIdqualifierProdEvaluateLastOfTypeExpression]]; BuildTypeIdqualifierProdNode: PUBLIC PROC[position: INT, length: INT, TypeId: TypeIdNode, Id: IdNode] RETURNS[TypeIdNode] = BEGIN data: TypeIdqualifierProdData _ NEW[TypeIdqualifierProdDataBody _ [ TypeId, Id]]; RETURN[NEW[TypeIdNodeBody_[position, length, TypeIdqualifierProdProcs, data]]]; END; -- SubrangenamedProd SubrangenamedProdProcs: PUBLIC SubrangeNodeProcs _ NEW[SubrangeNodeProcsBody _ [SubrangenamedProdMakeType, SubrangenamedProdAddFirstDependencies, SubrangenamedProdAddLastDependencies, SubrangenamedProdAddSizeDependencies, SubrangenamedProdCompileSizeOfTypeExpression, SubrangenamedProdCompileFirstOfTypeExpression, SubrangenamedProdCompileLastOfTypeExpression, SubrangenamedProdEvaluateSizeOfTypeExpression, SubrangenamedProdEvaluateFirstOfTypeExpression, SubrangenamedProdEvaluateLastOfTypeExpression]]; BuildSubrangenamedProdNode: PUBLIC PROC[position: INT, length: INT, TypeId: TypeIdNode, Interval: IntervalNode] RETURNS[SubrangeNode] = BEGIN data: SubrangenamedProdData _ NEW[SubrangenamedProdDataBody _ [ TypeId, Interval]]; RETURN[NEW[SubrangeNodeBody_[position, length, SubrangenamedProdProcs, data]]]; END; -- SubrangeunnamedProd SubrangeunnamedProdProcs: PUBLIC SubrangeNodeProcs _ NEW[SubrangeNodeProcsBody _ [SubrangeunnamedProdMakeType, SubrangeunnamedProdAddFirstDependencies, SubrangeunnamedProdAddLastDependencies, SubrangeunnamedProdAddSizeDependencies, SubrangeunnamedProdCompileSizeOfTypeExpression, SubrangeunnamedProdCompileFirstOfTypeExpression, SubrangeunnamedProdCompileLastOfTypeExpression, SubrangeunnamedProdEvaluateSizeOfTypeExpression, SubrangeunnamedProdEvaluateFirstOfTypeExpression, SubrangeunnamedProdEvaluateLastOfTypeExpression]]; BuildSubrangeunnamedProdNode: PUBLIC PROC[position: INT, length: INT, Interval: IntervalNode] RETURNS[SubrangeNode] = BEGIN data: SubrangeunnamedProdData _ NEW[SubrangeunnamedProdDataBody _ [ Interval]]; RETURN[NEW[SubrangeNodeBody_[position, length, SubrangeunnamedProdProcs, data]]]; END; -- IntervalccProd IntervalccProdProcs: PUBLIC IntervalNodeProcs _ NEW[IntervalNodeProcsBody _ [IntervalccProdGetBoundsVal, IntervalccProdAddFirstDependencies, IntervalccProdAddLastDependencies, IntervalccProdAddSizeDependencies, IntervalccProdCompileSizeOfTypeExpression, IntervalccProdCompileFirstOfTypeExpression, IntervalccProdCompileLastOfTypeExpression, IntervalccProdEvaluateSizeOfTypeExpression, IntervalccProdEvaluateFirstOfTypeExpression, IntervalccProdEvaluateLastOfTypeExpression]]; BuildIntervalccProdNode: PUBLIC PROC[position: INT, length: INT, Bounds: BoundsNode] RETURNS[IntervalNode] = BEGIN data: IntervalccProdData _ NEW[IntervalccProdDataBody _ [ Bounds]]; RETURN[NEW[IntervalNodeBody_[position, length, IntervalccProdProcs, data]]]; END; -- IntervalcoProd IntervalcoProdProcs: PUBLIC IntervalNodeProcs _ NEW[IntervalNodeProcsBody _ [IntervalcoProdGetBoundsVal, IntervalcoProdAddFirstDependencies, IntervalcoProdAddLastDependencies, IntervalcoProdAddSizeDependencies, IntervalcoProdCompileSizeOfTypeExpression, IntervalcoProdCompileFirstOfTypeExpression, IntervalcoProdCompileLastOfTypeExpression, IntervalcoProdEvaluateSizeOfTypeExpression, IntervalcoProdEvaluateFirstOfTypeExpression, IntervalcoProdEvaluateLastOfTypeExpression]]; BuildIntervalcoProdNode: PUBLIC PROC[position: INT, length: INT, Bounds: BoundsNode] RETURNS[IntervalNode] = BEGIN data: IntervalcoProdData _ NEW[IntervalcoProdDataBody _ [ Bounds]]; RETURN[NEW[IntervalNodeBody_[position, length, IntervalcoProdProcs, data]]]; END; -- IntervalocProd IntervalocProdProcs: PUBLIC IntervalNodeProcs _ NEW[IntervalNodeProcsBody _ [IntervalocProdGetBoundsVal, IntervalocProdAddFirstDependencies, IntervalocProdAddLastDependencies, IntervalocProdAddSizeDependencies, IntervalocProdCompileSizeOfTypeExpression, IntervalocProdCompileFirstOfTypeExpression, IntervalocProdCompileLastOfTypeExpression, IntervalocProdEvaluateSizeOfTypeExpression, IntervalocProdEvaluateFirstOfTypeExpression, IntervalocProdEvaluateLastOfTypeExpression]]; BuildIntervalocProdNode: PUBLIC PROC[position: INT, length: INT, Bounds: BoundsNode] RETURNS[IntervalNode] = BEGIN data: IntervalocProdData _ NEW[IntervalocProdDataBody _ [ Bounds]]; RETURN[NEW[IntervalNodeBody_[position, length, IntervalocProdProcs, data]]]; END; -- IntervalooProd IntervalooProdProcs: PUBLIC IntervalNodeProcs _ NEW[IntervalNodeProcsBody _ [IntervalooProdGetBoundsVal, IntervalooProdAddFirstDependencies, IntervalooProdAddLastDependencies, IntervalooProdAddSizeDependencies, IntervalooProdCompileSizeOfTypeExpression, IntervalooProdCompileFirstOfTypeExpression, IntervalooProdCompileLastOfTypeExpression, IntervalooProdEvaluateSizeOfTypeExpression, IntervalooProdEvaluateFirstOfTypeExpression, IntervalooProdEvaluateLastOfTypeExpression]]; BuildIntervalooProdNode: PUBLIC PROC[position: INT, length: INT, Bounds: BoundsNode] RETURNS[IntervalNode] = BEGIN data: IntervalooProdData _ NEW[IntervalooProdDataBody _ [ Bounds]]; RETURN[NEW[IntervalNodeBody_[position, length, IntervalooProdProcs, data]]]; END; -- BoundsProd BoundsProdProcs: PUBLIC BoundsNodeProcs _ NEW[BoundsNodeProcsBody _ [BoundsProdGetLowerAndUpper, BoundsProdAddFirstDependencies, BoundsProdAddLastDependencies, BoundsProdAddSizeDependencies]]; BuildBoundsProdNode: PUBLIC PROC[position: INT, length: INT, Explower: ExpNode, Expupper: ExpNode] RETURNS[BoundsNode] = BEGIN data: BoundsProdData _ NEW[BoundsProdDataBody _ [ Explower, Expupper]]; RETURN[NEW[BoundsNodeBody_[position, length, BoundsProdProcs, data]]]; END; END..