AS_CspCASL.der.hs revision c33036c31bad841cedd0a93cb331bc6a95741b62
063f9c091f49da786526337bf560e4b114200a98Christian Maeder{- |
a2d195b00abd99de9fb6b0b0855cf92671fb814eChristian MaederModule : $Id$
a2d195b00abd99de9fb6b0b0855cf92671fb814eChristian MaederDescription : Abstract syntax fo CspCASL
063f9c091f49da786526337bf560e4b114200a98Christian MaederCopyright : (c) Markus Roggenbach and Till Mossakowski and Uni Bremen 2004
98890889ffb2e8f6f722b00e265a211f13b5a861Corneliu-Claudiu ProdescuLicense : similar to LGPL, see HetCATS/LICENSE.txt or LIZENZ.txt
063f9c091f49da786526337bf560e4b114200a98Christian Maeder
3f69b6948966979163bdfe8331c38833d5d90ecdChristian MaederMaintainer : a.m.gimblett@swan.ac.uk
063f9c091f49da786526337bf560e4b114200a98Christian MaederStability : provisional
549fcb59564bcd22136d9250bbf733d978ae5fceChristian MaederPortability : portable
063f9c091f49da786526337bf560e4b114200a98Christian Maeder
063f9c091f49da786526337bf560e4b114200a98Christian MaederAbstract syntax of CSP-CASL processes.
063f9c091f49da786526337bf560e4b114200a98Christian Maeder
063f9c091f49da786526337bf560e4b114200a98Christian Maeder-}
063f9c091f49da786526337bf560e4b114200a98Christian Maedermodule CspCASL.AS_CspCASL where
063f9c091f49da786526337bf560e4b114200a98Christian Maeder
222fb348903086b94ec1675ca61423da49b95c0eChristian Maederimport Common.Id
ad4da9d870c666f00992431e3badbbe9cc4f19aaChristian Maeder
063f9c091f49da786526337bf560e4b114200a98Christian Maederimport CASL.AS_Basic_CASL (SORT, VAR)
063f9c091f49da786526337bf560e4b114200a98Christian Maeder
fd0fd1700c2022745053bfae220a808bb16462b9Christian Maederimport CspCASL.AS_CspCASL_Process (CHANNEL_NAME, COMM_TYPE, PROCESS(..),
063f9c091f49da786526337bf560e4b114200a98Christian Maeder PROCESS_NAME)
063f9c091f49da786526337bf560e4b114200a98Christian Maeder
063f9c091f49da786526337bf560e4b114200a98Christian Maederimport Common.Id
063f9c091f49da786526337bf560e4b114200a98Christian Maeder
063f9c091f49da786526337bf560e4b114200a98Christian Maeder-- DrIFT command
063f9c091f49da786526337bf560e4b114200a98Christian Maeder{-! global: GetRange !-}
063f9c091f49da786526337bf560e4b114200a98Christian Maeder
063f9c091f49da786526337bf560e4b114200a98Christian Maederdata CspBasicSpec = CspBasicSpec
549fcb59564bcd22136d9250bbf733d978ae5fceChristian Maeder { channels :: [CHANNEL_DECL]
549fcb59564bcd22136d9250bbf733d978ae5fceChristian Maeder , proc_items :: [PROC_ITEM]
549fcb59564bcd22136d9250bbf733d978ae5fceChristian Maeder } deriving Show
812ee1f62e0e0e7235f3c05b41a0b173497b54ffChristian Maeder
549fcb59564bcd22136d9250bbf733d978ae5fceChristian Maederdata CHANNEL_DECL = ChannelDecl [CHANNEL_NAME] SORT
063f9c091f49da786526337bf560e4b114200a98Christian Maeder deriving Show
fd0fd1700c2022745053bfae220a808bb16462b9Christian Maeder
data PROC_ITEM = Proc_Decl PROCESS_NAME PROC_ARGS PROC_ALPHABET
| Proc_Eq PARM_PROCNAME PROCESS
deriving Show
type PROC_ARGS = [SORT]
data PARM_PROCNAME = ParmProcname PROCESS_NAME [VAR]
deriving Show
data PROC_ALPHABET = ProcAlphabet [COMM_TYPE] Range
deriving Show
-- Sentences
data CspCASLSentence = CspCASLSentence PROCESS_NAME [VAR] PROCESS
deriving (Show, Eq, Ord)
emptyProcName :: PROCESS_NAME
emptyProcName = mkSimpleId "empty"
emptyCCSentence :: CspCASLSentence
emptyCCSentence = CspCASLSentence emptyProcName [] (NamedProcess emptyProcName [] nullRange)