Changeset 11231 for trunk/CspCASL/Morphism.hs
- Timestamp:
- 07.01.2009 14:48:37 (11 months ago)
- Files:
-
- 1 modified
-
trunk/CspCASL/Morphism.hs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/CspCASL/Morphism.hs
r11220 r11231 12 12 -} 13 13 14 module CspCASL.Morphism where 14 module CspCASL.Morphism ( symOf, 15 makeChannelNameSymbol, 16 makeProcNameSymbol 17 ) where 15 18 16 19 import CASL.Sign 17 import CASL.Morphism as CASL_Morphism20 import qualified CASL.Morphism as CASL_Morphism 18 21 import Common.Id(simpleIdToId) 22 import CspCASL.AS_CspCASL_Process (CHANNEL_NAME, PROCESS_NAME) 19 23 import CspCASL.SignCSP 20 24 21 25 import qualified Data.Map as Map 22 26 import qualified Data.Set as Set 27 28 channelNameSymbType :: SymbType 29 channelNameSymbType = OtherTypeKind "CHANNEL_KIND" 30 31 processNameSymbType :: SymbType 32 processNameSymbType = OtherTypeKind "PROC_NAME_KIND" 23 33 24 34 -- | Calculate the set of symbols for a CspCASL signature … … 29 39 chanNames = Set.fromList $ Map.keys (chans cspExt) -- Get the channel names 30 40 procNames = Set.fromList $ Map.keys (procSet cspExt) -- Get the process names 31 mkChanSymbol c = Symbol {32 symName = simpleIdToId c,33 symbType = OtherTypeKind "CHANNEL_KIND"34 }35 mkProcNameSymbol p = Symbol {36 symName = simpleIdToId p,37 symbType = OtherTypeKind "PROC_NAME_KIND"38 }39 41 -- Make channel symbols from names 40 chan Symbols = Set.map mkChanSymbol chanNames42 chanNameSymbols = Set.map makeChannelNameSymbol chanNames 41 43 -- Make process name symbols from names 42 procNameSymbols = Set.map mkProcNameSymbol procNames 43 in Set.unions [caslSymbols, chanSymbols, procNameSymbols] 44 procNameSymbols = Set.map makeProcNameSymbol procNames 45 in Set.unions [caslSymbols, chanNameSymbols, procNameSymbols] 46 47 makeChannelNameSymbol :: CHANNEL_NAME -> Symbol 48 makeChannelNameSymbol c = 49 Symbol {symName = simpleIdToId c, symbType = channelNameSymbType} 50 51 makeProcNameSymbol :: PROCESS_NAME -> Symbol 52 makeProcNameSymbol p = 53 Symbol {symName = simpleIdToId p, symbType = processNameSymbType}