DIRECTORY ThreeC4BaseDecl1Def, ThreeC4MiscAbGramDef, ThreeC4BasicAbTypesDef; ThreeC4MiscAbGramImpl: CEDAR PROGRAM IMPORTS ThreeC4MiscAbGramDef EXPORTS ThreeC4MiscAbGramDef= BEGIN OPEN ThreeC4BaseDecl1Def, ThreeC4MiscAbGramDef, ThreeC4BasicAbTypesDef; -- ModIdoneIdProd ModIdoneIdProdProcs: PUBLIC ModIdNodeProcs ← NEW[ModIdNodeProcsBody ← [ModIdoneIdProdFormName, ModIdoneIdProdFormFirstId, ModIdoneIdProdFormType, ModIdoneIdProdFormValueInfo, ModIdoneIdProdFormExpCode, ModIdoneIdProdFormTypeUse, ModIdoneIdProdFormTypeEarly]]; BuildModIdoneIdProdNode: PUBLIC PROC[position: INT, length: INT, Identifier: IdentifierNode] RETURNS[ModIdNode] = BEGIN data: ModIdoneIdProdData ← NEW[ModIdoneIdProdDataBody←[ Identifier]]; RETURN[NEW[ModIdNodeBody←[position, length, ModIdoneIdProdProcs, data]]]; END; -- ModIdtwoIdsProd ModIdtwoIdsProdProcs: PUBLIC ModIdNodeProcs ← NEW[ModIdNodeProcsBody ← [ModIdtwoIdsProdFormName, ModIdtwoIdsProdFormFirstId, ModIdtwoIdsProdFormType, ModIdtwoIdsProdFormValueInfo, ModIdtwoIdsProdFormExpCode, ModIdtwoIdsProdFormTypeUse, ModIdtwoIdsProdFormTypeEarly]]; BuildModIdtwoIdsProdNode: PUBLIC PROC[position: INT, length: INT, Identifierleft: IdentifierNode, Identifierright: IdentifierNode] RETURNS[ModIdNode] = BEGIN data: ModIdtwoIdsProdData ← NEW[ModIdtwoIdsProdDataBody←[ Identifierleft, Identifierright]]; RETURN[NEW[ModIdNodeBody←[position, length, ModIdtwoIdsProdProcs, data]]]; END; -- ModIdListEmptyProd ModIdListEmptyProdProcs: PUBLIC ModIdListNodeProcs ← NEW[ModIdListNodeProcsBody ← [ModIdListEmptyProdFormNameList, ModIdListEmptyProdFormAbstRightSideContext, ModIdListEmptyProdFormTypeUse, ModIdListEmptyProdFormTypeListEarly, ModIdListEmptyProdFormTypeList, ModIdListEmptyProdProdDataTypeDefCode, ModIdListEmptyProdDataBodyFieldTypeCode, ModIdListEmptyProdProdBuildDataRcdCode, ModIdListEmptyProdFormTypesCode]]; BuildModIdListEmptyProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[ModIdListNode] = BEGIN RETURN[NEW[ModIdListNodeBody←[position, length, ModIdListEmptyProdProcs, NIL]]]; END; -- ModIdListManyProd ModIdListManyProdProcs: PUBLIC ModIdListNodeProcs ← NEW[ModIdListNodeProcsBody ← [ModIdListManyProdFormNameList, ModIdListManyProdFormAbstRightSideContext, ModIdListManyProdFormTypeUse, ModIdListManyProdFormTypeListEarly, ModIdListManyProdFormTypeList, ModIdListManyProdProdDataTypeDefCode, ModIdListManyProdDataBodyFieldTypeCode, ModIdListManyProdProdBuildDataRcdCode, ModIdListManyProdFormTypesCode]]; BuildModIdListManyProdNode: PUBLIC PROC[position: INT, length: INT, ModIdList: ModIdListNode, ModId: ModIdNode] RETURNS[ModIdListNode] = BEGIN data: ModIdListManyProdData ← NEW[ModIdListManyProdDataBody←[ ModIdList, ModId]]; RETURN[NEW[ModIdListNodeBody←[position, length, ModIdListManyProdProcs, data]]]; END; -- IdListEmptyProd IdListEmptyProdProcs: PUBLIC IdListNodeProcs ← NEW[IdListNodeProcsBody ← [IdListEmptyProdRecordCedarTypesFrom, IdListEmptyProdRecordCedarTypes, IdListEmptyProdRecordMultipleBaseTypes, IdListEmptyProdFormTypeListEarly, IdListEmptyProdFormNameList, IdListEmptyProdCollectValueTypes, IdListEmptyProdCollectFunctionTypes, IdListEmptyProdCollectRightSideSymbols, IdListEmptyProdBaseDeclCode, IdListEmptyProdFormTypesCode, IdListEmptyProdProcFieldTypeCode, IdListEmptyProdFormProcsNamesCode, IdListEmptyProdFormRecFcnsDeclCode, IdListEmptyProdFormVarDeclCode, IdListEmptyProdFormLinkCallCode, IdListEmptyProdSyntaxFileCodes]]; BuildIdListEmptyProdNode: PUBLIC PROC[position: INT, length: INT] RETURNS[IdListNode] = BEGIN RETURN[NEW[IdListNodeBody←[position, length, IdListEmptyProdProcs, NIL]]]; END; -- IdListnonEmptyProd IdListnonEmptyProdProcs: PUBLIC IdListNodeProcs ← NEW[IdListNodeProcsBody ← [IdListnonEmptyProdRecordCedarTypesFrom, IdListnonEmptyProdRecordCedarTypes, IdListnonEmptyProdRecordMultipleBaseTypes, IdListnonEmptyProdFormTypeListEarly, IdListnonEmptyProdFormNameList, IdListnonEmptyProdCollectValueTypes, IdListnonEmptyProdCollectFunctionTypes, IdListnonEmptyProdCollectRightSideSymbols, IdListnonEmptyProdBaseDeclCode, IdListnonEmptyProdFormTypesCode, IdListnonEmptyProdProcFieldTypeCode, IdListnonEmptyProdFormProcsNamesCode, IdListnonEmptyProdFormRecFcnsDeclCode, IdListnonEmptyProdFormVarDeclCode, IdListnonEmptyProdFormLinkCallCode, IdListnonEmptyProdSyntaxFileCodes]]; BuildIdListnonEmptyProdNode: PUBLIC PROC[position: INT, length: INT, Identifier: IdentifierNode, IdList: IdListNode] RETURNS[IdListNode] = BEGIN data: IdListnonEmptyProdData ← NEW[IdListnonEmptyProdDataBody←[ Identifier, IdList]]; RETURN[NEW[IdListNodeBody←[position, length, IdListnonEmptyProdProcs, data]]]; END; -- RopeListOneProd RopeListOneProdProcs: PUBLIC RopeListNodeProcs ← NEW[RopeListNodeProcsBody ← [RopeListOneProdCollectRightSideSymbols, RopeListOneProdSyntaxFileCodes, RopeListOneProdSpecialSyntaxTokenFileCode]]; BuildRopeListOneProdNode: PUBLIC PROC[position: INT, length: INT, Rope: RopeNode] RETURNS[RopeListNode] = BEGIN data: RopeListOneProdData ← NEW[RopeListOneProdDataBody←[ Rope]]; RETURN[NEW[RopeListNodeBody←[position, length, RopeListOneProdProcs, data]]]; END; -- RopeListManyProd RopeListManyProdProcs: PUBLIC RopeListNodeProcs ← NEW[RopeListNodeProcsBody ← [RopeListManyProdCollectRightSideSymbols, RopeListManyProdSyntaxFileCodes, RopeListManyProdSpecialSyntaxTokenFileCode]]; BuildRopeListManyProdNode: PUBLIC PROC[position: INT, length: INT, RopeList: RopeListNode, Rope: RopeNode] RETURNS[RopeListNode] = BEGIN data: RopeListManyProdData ← NEW[RopeListManyProdDataBody←[ RopeList, Rope]]; RETURN[NEW[RopeListNodeBody←[position, length, RopeListManyProdProcs, data]]]; END; END..