DIRECTORY ThreeC4BaseDecl1Def, ThreeC4RecFcnImplAbGramDef, ThreeC4BasicAbTypesDef; ThreeC4RecFcnImplAbGramImpl: CEDAR PROGRAM IMPORTS ThreeC4RecFcnImplAbGramDef EXPORTS ThreeC4RecFcnImplAbGramDef= BEGIN OPEN ThreeC4BaseDecl1Def, ThreeC4RecFcnImplAbGramDef, ThreeC4BasicAbTypesDef; -- AbProductionFcnImplProd AbProductionFcnImplProdProcs: PUBLIC AbProductionFcnImplNodeProcs _ NEW[AbProductionFcnImplNodeProcsBody _ [AbProductionFcnImplProdImplFileCode]]; BuildAbProductionFcnImplProdNode: PUBLIC PROC[position: INT, length: INT, ModId: ModIdNode, ModIdList: ModIdListNode, RecFcnImplList: RecFcnImplListNode] RETURNS[AbProductionFcnImplNode] = BEGIN data: AbProductionFcnImplProdData _ NEW[AbProductionFcnImplProdDataBody_[ ModId, ModIdList, RecFcnImplList]]; RETURN[NEW[AbProductionFcnImplNodeBody_[position, length, AbProductionFcnImplProdProcs, data]]]; END; -- RecFcnImplListoneProd RecFcnImplListoneProdProcs: PUBLIC RecFcnImplListNodeProcs _ NEW[RecFcnImplListNodeProcsBody _ [RecFcnImplListoneProdProdImplFileCode]]; BuildRecFcnImplListoneProdNode: PUBLIC PROC[position: INT, length: INT, Identifier: IdentifierNode, IdList: IdListNode, RecExpression: RecExpressionNode] RETURNS[RecFcnImplListNode] = BEGIN data: RecFcnImplListoneProdData _ NEW[RecFcnImplListoneProdDataBody_[ Identifier, IdList, RecExpression]]; RETURN[NEW[RecFcnImplListNodeBody_[position, length, RecFcnImplListoneProdProcs, data]]]; END; -- RecFcnImplListmanyProd RecFcnImplListmanyProdProcs: PUBLIC RecFcnImplListNodeProcs _ NEW[RecFcnImplListNodeProcsBody _ [RecFcnImplListmanyProdProdImplFileCode]]; BuildRecFcnImplListmanyProdNode: PUBLIC PROC[position: INT, length: INT, RecFcnImplLista: RecFcnImplListNode, RecFcnImplListb: RecFcnImplListNode] RETURNS[RecFcnImplListNode] = BEGIN data: RecFcnImplListmanyProdData _ NEW[RecFcnImplListmanyProdDataBody_[ RecFcnImplLista, RecFcnImplListb]]; RETURN[NEW[RecFcnImplListNodeBody_[position, length, RecFcnImplListmanyProdProcs, data]]]; END; -- RecExpressionwithWhereListProd RecExpressionwithWhereListProdProcs: PUBLIC RecExpressionNodeProcs _ NEW[RecExpressionNodeProcsBody _ [RecExpressionwithWhereListProdCompForArgs, RecExpressionwithWhereListProdCompForVars, RecExpressionwithWhereListProdCountVals, RecExpressionwithWhereListProdFormFcnImplGraph]]; BuildRecExpressionwithWhereListProdNode: PUBLIC PROC[position: INT, length: INT, RecExpression: RecExpressionNode, WhereExpSeq: WhereExpSeqNode] RETURNS[RecExpressionNode] = BEGIN data: RecExpressionwithWhereListProdData _ NEW[RecExpressionwithWhereListProdDataBody_[ RecExpression, WhereExpSeq]]; RETURN[NEW[RecExpressionNodeBody_[position, length, RecExpressionwithWhereListProdProcs, data]]]; END; -- RecExpressioncondProd RecExpressioncondProdProcs: PUBLIC RecExpressionNodeProcs _ NEW[RecExpressionNodeProcsBody _ [RecExpressioncondProdCompForArgs, RecExpressioncondProdCompForVars, RecExpressioncondProdCountVals, RecExpressioncondProdFormFcnImplGraph]]; BuildRecExpressioncondProdNode: PUBLIC PROC[position: INT, length: INT, RecExpressionifClause: RecExpressionNode, RecExpressionthenClause: RecExpressionNode, RecExpressionelseClause: RecExpressionNode] RETURNS[RecExpressionNode] = BEGIN data: RecExpressioncondProdData _ NEW[RecExpressioncondProdDataBody_[ RecExpressionifClause, RecExpressionthenClause, RecExpressionelseClause]]; RETURN[NEW[RecExpressionNodeBody_[position, length, RecExpressioncondProdProcs, data]]]; END; -- RecExpressioncallProd RecExpressioncallProdProcs: PUBLIC RecExpressionNodeProcs _ NEW[RecExpressionNodeProcsBody _ [RecExpressioncallProdCompForArgs, RecExpressioncallProdCompForVars, RecExpressioncallProdCountVals, RecExpressioncallProdFormFcnImplGraph]]; BuildRecExpressioncallProdNode: PUBLIC PROC[position: INT, length: INT, Identifier: IdentifierNode, RecExpSeq: RecExpSeqNode] RETURNS[RecExpressionNode] = BEGIN data: RecExpressioncallProdData _ NEW[RecExpressioncallProdDataBody_[ Identifier, RecExpSeq]]; RETURN[NEW[RecExpressionNodeBody_[position, length, RecExpressioncallProdProcs, data]]]; END; -- RecExpressionseqProd RecExpressionseqProdProcs: PUBLIC RecExpressionNodeProcs _ NEW[RecExpressionNodeProcsBody _ [RecExpressionseqProdCompForArgs, RecExpressionseqProdCompForVars, RecExpressionseqProdCountVals, RecExpressionseqProdFormFcnImplGraph]]; BuildRecExpressionseqProdNode: PUBLIC PROC[position: INT, length: INT, RecExpSeq: RecExpSeqNode] RETURNS[RecExpressionNode] = BEGIN data: RecExpressionseqProdData _ NEW[RecExpressionseqProdDataBody_[ RecExpSeq]]; RETURN[NEW[RecExpressionNodeBody_[position, length, RecExpressionseqProdProcs, data]]]; END; -- RecExpressionidProd RecExpressionidProdProcs: PUBLIC RecExpressionNodeProcs _ NEW[RecExpressionNodeProcsBody _ [RecExpressionidProdCompForArgs, RecExpressionidProdCompForVars, RecExpressionidProdCountVals, RecExpressionidProdFormFcnImplGraph]]; BuildRecExpressionidProdNode: PUBLIC PROC[position: INT, length: INT, Identifier: IdentifierNode] RETURNS[RecExpressionNode] = BEGIN data: RecExpressionidProdData _ NEW[RecExpressionidProdDataBody_[ Identifier]]; RETURN[NEW[RecExpressionNodeBody_[position, length, RecExpressionidProdProcs, data]]]; END; -- RecExpressionmodIdProd RecExpressionmodIdProdProcs: PUBLIC RecExpressionNodeProcs _ NEW[RecExpressionNodeProcsBody _ [RecExpressionmodIdProdCompForArgs, RecExpressionmodIdProdCompForVars, RecExpressionmodIdProdCountVals, RecExpressionmodIdProdFormFcnImplGraph]]; BuildRecExpressionmodIdProdNode: PUBLIC PROC[position: INT, length: INT, Identifiera: IdentifierNode, Identifierb: IdentifierNode] RETURNS[RecExpressionNode] = BEGIN data: RecExpressionmodIdProdData _ NEW[RecExpressionmodIdProdDataBody_[ Identifiera, Identifierb]]; RETURN[NEW[RecExpressionNodeBody_[position, length, RecExpressionmodIdProdProcs, data]]]; END; -- RecExpressionropeProd RecExpressionropeProdProcs: PUBLIC RecExpressionNodeProcs _ NEW[RecExpressionNodeProcsBody _ [RecExpressionropeProdCompForArgs, RecExpressionropeProdCompForVars, RecExpressionropeProdCountVals, RecExpressionropeProdFormFcnImplGraph]]; BuildRecExpressionropeProdNode: PUBLIC PROC[position: INT, length: INT, Rope: RopeNode] RETURNS[RecExpressionNode] = BEGIN data: RecExpressionropeProdData _ NEW[RecExpressionropeProdDataBody_[ Rope]]; RETURN[NEW[RecExpressionNodeBody_[position, length, RecExpressionropeProdProcs, data]]]; END; -- RecExpressionnumbProd RecExpressionnumbProdProcs: PUBLIC RecExpressionNodeProcs _ NEW[RecExpressionNodeProcsBody _ [RecExpressionnumbProdCompForArgs, RecExpressionnumbProdCompForVars, RecExpressionnumbProdCountVals, RecExpressionnumbProdFormFcnImplGraph]]; BuildRecExpressionnumbProdNode: PUBLIC PROC[position: INT, length: INT, NonNegInteger: NonNegIntegerNode] RETURNS[RecExpressionNode] = BEGIN data: RecExpressionnumbProdData _ NEW[RecExpressionnumbProdDataBody_[ NonNegInteger]]; RETURN[NEW[RecExpressionNodeBody_[position, length, RecExpressionnumbProdProcs, data]]]; END; -- RecExpressionsourcePositionProd RecExpressionsourcePositionProdProcs: PUBLIC RecExpressionNodeProcs _ NEW[RecExpressionNodeProcsBody _ [RecExpressionsourcePositionProdCompForArgs, RecExpressionsourcePositionProdCompForVars, RecExpressionsourcePositionProdCountVals, RecExpressionsourcePositionProdFormFcnImplGraph]]; BuildRecExpressionsourcePositionProdNode: PUBLIC PROC[position: INT, length: INT, ModId: ModIdNode] RETURNS[RecExpressionNode] = BEGIN data: RecExpressionsourcePositionProdData _ NEW[RecExpressionsourcePositionProdDataBody_[ ModId]]; RETURN[NEW[RecExpressionNodeBody_[position, length, RecExpressionsourcePositionProdProcs, data]]]; END; -- RecExpressionsourceLengthProd RecExpressionsourceLengthProdProcs: PUBLIC RecExpressionNodeProcs _ NEW[RecExpressionNodeProcsBody _ [RecExpressionsourceLengthProdCompForArgs, RecExpressionsourceLengthProdCompForVars, RecExpressionsourceLengthProdCountVals, RecExpressionsourceLengthProdFormFcnImplGraph]]; BuildRecExpressionsourceLengthProdNode: PUBLIC PROC[position: INT, length: INT, ModId: ModIdNode] RETURNS[RecExpressionNode] = BEGIN data: RecExpressionsourceLengthProdData _ NEW[RecExpressionsourceLengthProdDataBody_[ ModId]]; RETURN[NEW[RecExpressionNodeBody_[position, length, RecExpressionsourceLengthProdProcs, data]]]; END; -- RecExpSeqemptyProd RecExpSeqemptyProdProcs: PUBLIC RecExpSeqNodeProcs _ NEW[RecExpSeqNodeProcsBody _ [RecExpSeqemptyProdCompForArgs, RecExpSeqemptyProdCompForVars, RecExpSeqemptyProdCountVals, RecExpSeqemptyProdFormFcnImplGraph]]; BuildRecExpSeqemptyProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[RecExpSeqNode] = BEGIN RETURN[NEW[RecExpSeqNodeBody_[position, length, RecExpSeqemptyProdProcs, NIL]]]; END; -- RecExpSeqoneProd RecExpSeqoneProdProcs: PUBLIC RecExpSeqNodeProcs _ NEW[RecExpSeqNodeProcsBody _ [RecExpSeqoneProdCompForArgs, RecExpSeqoneProdCompForVars, RecExpSeqoneProdCountVals, RecExpSeqoneProdFormFcnImplGraph]]; BuildRecExpSeqoneProdNode: PUBLIC PROC[position: INT, length: INT, RecExpression: RecExpressionNode] RETURNS[RecExpSeqNode] = BEGIN data: RecExpSeqoneProdData _ NEW[RecExpSeqoneProdDataBody_[ RecExpression]]; RETURN[NEW[RecExpSeqNodeBody_[position, length, RecExpSeqoneProdProcs, data]]]; END; -- RecExpSeqmanyProd RecExpSeqmanyProdProcs: PUBLIC RecExpSeqNodeProcs _ NEW[RecExpSeqNodeProcsBody _ [RecExpSeqmanyProdCompForArgs, RecExpSeqmanyProdCompForVars, RecExpSeqmanyProdCountVals, RecExpSeqmanyProdFormFcnImplGraph]]; BuildRecExpSeqmanyProdNode: PUBLIC PROC[position: INT, length: INT, RecExpSeqa: RecExpSeqNode, RecExpSeqb: RecExpSeqNode] RETURNS[RecExpSeqNode] = BEGIN data: RecExpSeqmanyProdData _ NEW[RecExpSeqmanyProdDataBody_[ RecExpSeqa, RecExpSeqb]]; RETURN[NEW[RecExpSeqNodeBody_[position, length, RecExpSeqmanyProdProcs, data]]]; END; -- WhereExpSeqoneProd WhereExpSeqoneProdProcs: PUBLIC WhereExpSeqNodeProcs _ NEW[WhereExpSeqNodeProcsBody _ [WhereExpSeqoneProdCompWhere, WhereExpSeqoneProdFormFcnImplWhereGraph]]; BuildWhereExpSeqoneProdNode: PUBLIC PROC[position: INT, length: INT, IdList: IdListNode, RecExpression: RecExpressionNode] RETURNS[WhereExpSeqNode] = BEGIN data: WhereExpSeqoneProdData _ NEW[WhereExpSeqoneProdDataBody_[ IdList, RecExpression]]; RETURN[NEW[WhereExpSeqNodeBody_[position, length, WhereExpSeqoneProdProcs, data]]]; END; -- WhereExpSeqmanyProd WhereExpSeqmanyProdProcs: PUBLIC WhereExpSeqNodeProcs _ NEW[WhereExpSeqNodeProcsBody _ [WhereExpSeqmanyProdCompWhere, WhereExpSeqmanyProdFormFcnImplWhereGraph]]; BuildWhereExpSeqmanyProdNode: PUBLIC PROC[position: INT, length: INT, WhereExpSeqa: WhereExpSeqNode, WhereExpSeqb: WhereExpSeqNode] RETURNS[WhereExpSeqNode] = BEGIN data: WhereExpSeqmanyProdData _ NEW[WhereExpSeqmanyProdDataBody_[ WhereExpSeqa, WhereExpSeqb]]; RETURN[NEW[WhereExpSeqNodeBody_[position, length, WhereExpSeqmanyProdProcs, data]]]; END; END..