<> <> <> <> DIRECTORY ExampleBaseDef, ExampleATDef, ExampleAGDef, ExampleGenericDef; ExampleAGImpl: CEDAR PROGRAM IMPORTS ExampleAGDef EXPORTS ExampleAGDef= BEGIN OPEN ExampleBaseDef, ExampleATDef, ExampleAGDef, ExampleGenericDef; <> ExpressionbinProdProcs: PUBLIC ExpressionNodeProcs _ NEW[ExpressionNodeProcsBody _ [ExpressionbinProdEvaluate]]; BuildExpressionbinProdNode: PUBLIC PROC[position: INT, length: INT, Expressionleft: ExpressionNode, Opop: Op, Expressionright: ExpressionNode] RETURNS[ExpressionNode] = BEGIN data: ExpressionbinProdData _ NEW[ExpressionbinProdDataBody_[ Expressionleft, Opop, Expressionright]]; RETURN[NEW[ExpressionNodeBody_[position, length, ExpressionbinProdProcs, data]]]; END; <> ExpressionnumberProdProcs: PUBLIC ExpressionNodeProcs _ NEW[ExpressionNodeProcsBody _ [ExpressionnumberProdEvaluate]]; BuildExpressionnumberProdNode: PUBLIC PROC[position: INT, length: INT, number: numberNode] RETURNS[ExpressionNode] = BEGIN data: ExpressionnumberProdData _ NEW[ExpressionnumberProdDataBody_[ number]]; RETURN[NEW[ExpressionNodeBody_[position, length, ExpressionnumberProdProcs, data]]]; END; <> ExpressionlocProdProcs: PUBLIC ExpressionNodeProcs _ NEW[ExpressionNodeProcsBody _ [ExpressionlocProdEvaluate]]; BuildExpressionlocProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[ExpressionNode] = BEGIN RETURN[NEW[ExpressionNodeBody_[position, length, ExpressionlocProdProcs, NIL]]]; END; <> ExpressionsignalProdProcs: PUBLIC ExpressionNodeProcs _ NEW[ExpressionNodeProcsBody _ [ExpressionsignalProdEvaluate]]; BuildExpressionsignalProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[ExpressionNode] = BEGIN RETURN[NEW[ExpressionNodeBody_[position, length, ExpressionsignalProdProcs, NIL]]]; END; END..