mulang-4.4.0: src/Language/Mulang/Identifier.hs
module Language.Mulang.Identifier (
andAlso,
anyOf,
anyone,
except,
like,
named,
Identifier,
IdentifierPredicate,
PredicateModifier) where
import Data.List (isInfixOf)
-- | An identifier
-- | Mulang does not assume any special naming convention or format
type Identifier = String
type IdentifierPredicate = Identifier -> Bool
type PredicateModifier = IdentifierPredicate -> IdentifierPredicate
andAlso :: IdentifierPredicate -> PredicateModifier
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 = (==)