-- ThreeC4BasicAbTypes.ThreeC4
-- Sturgis, May 8, 1986 10:06:12 am PDT
Include[ThreeC4BaseDecl, ThreeC4RecFcnDecl];
ThreeC4BasicAbTypes: Module =
Begin
-- Here are the abstract types that are visible in more than one place
WholeFile: AbstractType[FormFileSeq, CollectValueTypes, CollectFunctionTypes,
CollectRightSideSymbols, FormLinkCallCode, SyntaxFileCodes];
ModuleItem: AbstractType[CollectModuleValueTypes, CollectModuleFunctionTypes,
CollectProductions, CollectRightSideSymbols, DefFileCode, ImplFileCode,
LinkFileCode, SyntaxFileCodes, TestLinkPresent];
CedarItems: AbstractType[CollectModuleValueTypes, CollectModuleFunctionTypes];
BaseItems: AbstractType[CollectModuleValueTypes, CollectModuleFunctionTypes,
DefFileCode, ImplFileCode];
AbGramItems: AbstractType[CollectModuleValueTypes, CollectModuleFunctionTypes,
DefFileCode, ImplFileCode];
CGramItems: AbstractType[CollectProductions, CollectRightSideSymbols, DefFileCode,
ImplFileCode, LinkFileCode, SyntaxFileCodes,
TestLinkPresent];
AbProductionFcnImpl: AbstractType[ImplFileCode];
ConcreteProduction: AbstractType[CollectProductions, ImplFileCode, LinkFileCode,
SyntaxFileCodes];
IdList: AbstractType[RecordCedarTypesFrom, RecordCedarTypes, RecordMultipleBaseTypes,
FormTypeListEarly, FormNameList, CollectValueTypes, CollectFunctionTypes,
CollectRightSideSymbols, BaseDeclCode, FormTypesCode, ProcFieldTypeCode,
FormProcsNamesCode, FormRecFcnsDeclCode, FormVarDeclCode, FormLinkCallCode,
SyntaxFileCodes];
ModId: AbstractType[FormName, FormFirstId, FormType, FormValueInfo, FormExpCode, FormTypeUse, FormTypeEarly];
ModIdList: AbstractType[FormNameList, FormAbstRightSideContext, FormTypeUse,
FormTypeListEarly, FormTypeList, ProdDataTypeDefCode, DataBodyFieldTypeCode,
ProdBuildDataRcdCode, FormTypesCode];
RopeList: AbstractType[CollectRightSideSymbols, SyntaxFileCodes,
SpecialSyntaxTokenFileCode];
DamageShareAssertions: AbstractType[FormRecordOfDamageShareAssertion];
-- following base functions require WholeFile
FindOrReadAndParseTree: BaseFunction[Context.arg, Name] Returns[Context.result, WholeFile]
DamagedReps[Context.arg];
FindParseTree: BaseFunction[Context, Name] Returns[WholeFile];
LookUpParseTree: BaseFunction[LookupContext, Name] Returns[WholeFile];
-- following base functions require IdList
RecordAbstractType: BaseFunction[Context.arg, Name, ROPE, MesaCode, IdList, NameList] Returns[Context.result]
DamagedReps[Context.arg];
LookUpAbTypeRecFcnsIdList: BaseFunction[LookupContext, Name] Returns[IdList]
End.