mulang-3.5.2: src/Language/Mulang/Identifier.hs
module Language.Mulang.Identifier (
andAlso,
anyOf,
anyone,
except,
like,
named,
Identifier,
IdentifierPredicate) where
import Data.List (isInfixOf)
-- | An identifier
-- | Mulang does not assume any special naming convention or format
type Identifier = String
type IdentifierPredicate = Identifier -> Bool
andAlso :: IdentifierPredicate -> IdentifierPredicate -> IdentifierPredicate
andAlso p1 p2 identifier = p1 identifier && p2 identifier
anyOf :: [Identifier] -> IdentifierPredicate
anyOf options identifier = any (== identifier) options
anyone :: IdentifierPredicate
anyone = const True
except :: String -> IdentifierPredicate
except = (/=)
like :: String -> IdentifierPredicate
like = isInfixOf
named :: String -> IdentifierPredicate
named = (==)