<> <> <> <> <> SaffronGeneric: Module = Begin <> decimalnum: GenericToken = "tokenDECIMAL"; octalnum: GenericToken = "tokenOCTAL"; hexnum: GenericToken = "tokenHEX"; id: GenericToken = "tokenID"; string: GenericToken = "tokenROPE"; flnum: GenericToken = "tokenREAL"; char: GenericToken = "tokenCHAR"; atom: GenericToken = "tokenATOM"; End; SaffronBase: Module = Begin BOOLEAN: CedarType; INT: CedarType; ROPE: CedarType From Rope; STREAM: CedarType From IO; <> <> LocalContext: CedarType From SaffronContext; CreateEmptyContext: CedarFunction [ ] Returns [ LocalContext ] From SaffronContext; <> TypeGraphNode: CedarType From SaffronContext; FindBottomTGN: CedarFunction [ LocalContext ] Returns [ TypeGraphNode ] From SaffronContext; FindLocallyVisibleTGN: CedarFunction [ LocalContext, Id ] Returns [ TypeGraphNode ] From SaffronContext; CreateLocallyVisibleTGN: CedarFunction [ LocalContext, Id ] Returns [ LocalContext, TypeGraphNode ] From SaffronContext; AddArcFromLVTGNToTGN: CedarFunction [ LocalContext, TypeGraphNode, TypeGraphNode ] Returns [ LocalContext ] From SaffronContext; CreateRecordTGN: CedarFunction [ LocalContext, Paint, FrozenFieldList ] Returns [ LocalContext, TypeGraphNode ] From SaffronContext; CreateRefTGN: CedarFunction [ LocalContext, TypeGraphNode, TypeGraphNode ] Returns [ LocalContext, TypeGraphNode ] From SaffronContext; CreateEmptyEnumTypeTGN: CedarFunction [ LocalContext ] Returns [ LocalContext, TypeGraphNode ] From SaffronContext; AppendElementToEnumTypeTGN: CedarFunction [ LocalContext, TypeGraphNode, Id ] Returns [ LocalContext ] From SaffronContext; <> Field: CedarType From SaffronContext; FieldList: CedarType From SaffronContext; FrozenFieldList: CedarType From SaffronContext; CreateNamedField: CedarFunction [ Id, TypeGraphNode ] Returns [ Field ] From SaffronContext; CreateUnnamedField: CedarFunction [ TypeGraphNode ] Returns [ Field ] From SaffronContext; CreateEmptyFieldList: CedarFunction [ ] Returns [ FieldList ] From SaffronContext; AppendFieldToFieldList: CedarFunction [FieldList, Field ] Returns [ FieldList ] From SaffronContext; FreezeFieldList: CedarFunction [LocalContext, FieldList ] Returns [ LocalContext, FrozenFieldList ] From SaffronContext; <> EltList: CedarType From SaffronContext; BuildEmptyEltList: CedarFunction [ ] Returns [ EltList ] From SaffronContext; EltListInsert: CedarFunction [ EltList.a, id ] Returns [ EltList.b, BOOLEAN ] From SaffronContext; EltListLookup: CedarFunction [ EltList, id ] Returns [ OrdinalValue ] From SaffronContext; <> Paint: CedarType From SaffronContext; GetUnpaintedPaint: CedarFunction [ LocalContext ] Returns [ Paint ] From SaffronContext; GetUniquePaint: CedarFunction [ LocalContext ] Returns [ LocalContext, Paint ] From SaffronContext; End. <>