CASLSig.hs revision e9458b1a7a19a63aa4c179f9ab20f4d50681c168
8b7304a34c751e519ede7d00b77f1f962c0a37e4David Lawrence{- |
bd911976d51f102751848568ccf56592fd5f6d77Tinderbox UserModule : ./CommonLogic/CASLSig.hs
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David LawrenceDescription : Central datastructures for development graphs
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark AndrewsCopyright : (c) Till Mossakowski, Uni Bremen 2002-2006
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark AndrewsLicense : GPLv2 or higher, see LICENSE.txt
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark AndrewsMaintainer : till@informatik.uni-bremen.de
8b7304a34c751e519ede7d00b77f1f962c0a37e4David LawrenceStability : provisional
8b7304a34c751e519ede7d00b77f1f962c0a37e4David LawrencePortability : non-portable(Logic)
a2734fa74aecefc958622b01467398985041cec1Mark Andrews
a2734fa74aecefc958622b01467398985041cec1Mark AndrewsFixed CASL signature needed for translation of CommonLogic to CASL
a2734fa74aecefc958622b01467398985041cec1Mark Andrews-}
a2734fa74aecefc958622b01467398985041cec1Mark Andrews
a2734fa74aecefc958622b01467398985041cec1Mark Andrewsmodule CommonLogic.CASLSig where
a2734fa74aecefc958622b01467398985041cec1Mark Andrews
a2734fa74aecefc958622b01467398985041cec1Mark Andrewsimport qualified CASL.Sign as CSign
a2734fa74aecefc958622b01467398985041cec1Mark Andrewsimport qualified Driver.AnaLib as AnaLib
a2734fa74aecefc958622b01467398985041cec1Mark Andrewsimport qualified Driver.Options as Options
a2734fa74aecefc958622b01467398985041cec1Mark Andrewsimport qualified Data.Map as Map
a2734fa74aecefc958622b01467398985041cec1Mark Andrewsimport qualified System.IO.Unsafe as SysUnsafe
a2734fa74aecefc958622b01467398985041cec1Mark Andrewsimport qualified Static.DevGraph as DevGraph
bff64bf12b58a6f80e740e94f2e42a32df18113aEvan Huntimport qualified Logic.Grothendieck as Grothendieck
a2734fa74aecefc958622b01467398985041cec1Mark Andrewsimport qualified Common.ExtSign as ExtSign
a2734fa74aecefc958622b01467398985041cec1Mark Andrewsimport qualified Logic.Coerce as Coerce
a2734fa74aecefc958622b01467398985041cec1Mark Andrewsimport qualified CASL.Logic_CASL as CASL
a2734fa74aecefc958622b01467398985041cec1Mark Andrews
a2734fa74aecefc958622b01467398985041cec1Mark AndrewsbaseCASLSig :: CSign.CASLSign
a2734fa74aecefc958622b01467398985041cec1Mark AndrewsbaseCASLSig = sig
a2734fa74aecefc958622b01467398985041cec1Mark Andrews where Just (_, lib) = SysUnsafe.unsafePerformIO $ AnaLib.anaLib Options.defaultHetcatsOpts "CommonLogic/CommonLogic.casl"
a2734fa74aecefc958622b01467398985041cec1Mark Andrews dgraph = head $ Map.elems lib
a2734fa74aecefc958622b01467398985041cec1Mark Andrews gsig = head $ Map.elems $ DevGraph.sigMap dgraph
a2734fa74aecefc958622b01467398985041cec1Mark Andrews Just esig = case gsig of
a2734fa74aecefc958622b01467398985041cec1Mark Andrews Grothendieck.G_sign lid extsign _
a2734fa74aecefc958622b01467398985041cec1Mark Andrews -> Coerce.coerceSign lid CASL.CASL "error: CommonoLogic.CASLSig" extsign
a2734fa74aecefc958622b01467398985041cec1Mark Andrews ExtSign.ExtSign sig _ = esig
a2734fa74aecefc958622b01467398985041cec1Mark Andrews