Logic_DMU.hs revision af9a3a699c755ef4e1b0ceaad8ea3b9b3c0efb19
fdbad18e66c0e293f94694458d47df305f050c71Christian Maeder{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, DeriveDataTypeable
fdbad18e66c0e293f94694458d47df305f050c71Christian Maeder , GeneralizedNewtypeDeriving #-}
fdbad18e66c0e293f94694458d47df305f050c71Christian Maeder{- |
fdbad18e66c0e293f94694458d47df305f050c71Christian MaederModule : ./DMU/Logic_DMU.hs
5214cf3742dc626a7efc5ec851db09bf0ff1f579Christian MaederDescription : Instance of class Logic for DMU
5214cf3742dc626a7efc5ec851db09bf0ff1f579Christian MaederCopyright : (c) Christian Maeder DFKI, Uni Bremen 2009
b96b500ba4430269d97a08f07de87838278e9c5dChristian MaederLicense : GPLv2 or higher, see LICENSE.txt
b96b500ba4430269d97a08f07de87838278e9c5dChristian Maeder
5214cf3742dc626a7efc5ec851db09bf0ff1f579Christian MaederMaintainer : Christian.Maeder@dfki.de
5214cf3742dc626a7efc5ec851db09bf0ff1f579Christian MaederStability : provisional
5214cf3742dc626a7efc5ec851db09bf0ff1f579Christian MaederPortability : non-portable (imports Logic.Logic)
5214cf3742dc626a7efc5ec851db09bf0ff1f579Christian Maeder
dummy instance of class Logic for DMU
-}
module DMU.Logic_DMU where
import Logic.Logic
import Common.DefaultMorphism
import Common.Doc
import Common.DocUtils
import Common.ExtSign
import Common.Id
import Common.Utils
import ATerm.Lib
import Text.ParserCombinators.Parsec
import Data.List
import Data.Monoid
import qualified Data.Map as Map
import qualified Data.Set as Set
import Data.Typeable
data DMU = DMU deriving Show
instance Language DMU where
description _ = "a logic to wrap output of the CAD tool Catia"
newtype Text = Text { fromText :: String }
deriving (Show, Eq, Ord, GetRange, Typeable, ShATermConvertible)
instance Pretty Text where
pretty (Text s) = text s
-- use generic Category instance from Logic.Logic
instance Monoid Text where
mempty = Text ""
mappend (Text l1) (Text l2) = Text
. unlines $ lines l1 ++ lines l2
instance Syntax DMU Text () () () where
parse_basic_spec DMU = Just (\ _ -> fmap Text $ many1 anyChar)
instance Sentences DMU () Text (DefaultMorphism Text) () where
map_sen DMU _ = return
sym_of DMU _ = [Set.singleton ()]
symmap_of DMU _ = Map.empty
sym_name DMU _ = genName "DMU"
symKind DMU _ = "emptyKind"
instance StaticAnalysis DMU Text () () () Text (DefaultMorphism Text) () ()
where
basic_analysis DMU = Just $ \ (s, _, _) ->
return (s, mkExtSign s, [])
empty_signature DMU = Text ""
is_subsig DMU (Text s1) (Text s2) = isInfixOf (trim s1) s2
instance Logic DMU () Text () () () Text (DefaultMorphism Text) () () ()