content: {- |
  Module      :  ./CspCASL/CspCASL_Keywords.hs
  Description :  CspCASL keywords to be used for parsing and printing
  Copyright   :  (c) Andy Gimblett and Swansea University 2006
  License     :  GPLv2 or higher, see LICENSE.txt
  
  Maintainer  :  a.m.gimblett@swan.ac.uk
  Stability   :  provisional
  Portability :  portable
  
  String constants for CspCASL keywords to be used for parsing and
  printing.
  
  -}
  
  module CspCASL.CspCASL_Keywords where
  
  import Common.Keywords
  
  -- | Keywords identifying beginning of channel declaration part.
  channelS :: String
  channelS = "channel"
  
  -- | Keyword identifying beginning of process equation part.
  processS :: String
  processS = "process"
  
  -- | "RUN" primitive process
  runS :: String
  runS = "RUN"
  
  -- | "CHAOS" primitive process
  chaosS :: String
  chaosS = "CHAOS"
  
  -- | "div" primitive process
  divS :: String
  divS = "DIV"
  
  -- | "SKIP" primitive process
  skipS :: String
  skipS = "SKIP"
  
  -- | "STOP" primitive process
  stopS :: String
  stopS = "STOP"
  
  chan_sendS :: String
  chan_sendS = "!"
  
  chan_receiveS :: String
  chan_receiveS = "?"
  
  svar_sortS :: String
  svar_sortS = "::"
  
  doubleSemis :: String
  doubleSemis = ";;"
  
  -- | starting CSP-CASL keywords
  startCspKeywords :: [String]
  startCspKeywords =
    [ channelS
    , channelS ++ "s"
    , processS
    , processS ++ "es" ]
  
  -- | Reserved keywords specific to CSP-CASL.
  cspKeywords :: [String]
  cspKeywords = startCspKeywords ++
    [ -- sequentialS
    doubleSemis -- we add this as alternative sequential composition operator
    , interleavingS
    , synchronousS
  {- , genpar_openS
    , genpar_closeS
    , alpar_openS
    , alpar_sepS -- is identical to synchronousS
    , alpar_closeS
    , external_choiceS -}
    , internal_choiceS
    , prefix_procS
    , hiding_procS
  {- , ren_proc_openS
    , ren_proc_closeS -}
    , barS -- in case we want to use it within generialized parallel
    , runS
    , chaosS
    , divS
    , skipS
    , stopS ]
  {- , chan_sendS
    , chan_receiveS
    , svar_sortS -}
  