----------------------------------------------------------------------------- -- | -- Module : Text.Trifecta.Language.Combinators -- Copyright : (C) 2011 Edward Kmett -- License : BSD-style (see the file LICENSE) -- -- Maintainer : Edward Kmett -- Stability : experimental -- Portability : non-portable -- ---------------------------------------------------------------------------- module Text.Trifecta.Language.Combinators ( identifier , reserved , reservedByteString , op , reservedOp , reservedOpByteString ) where import Data.ByteString import Text.Trifecta.Language.Class import Text.Trifecta.Language.Prim import Text.Trifecta.Parser.Identifier identifier :: MonadLanguage m => m ByteString identifier = asksLanguage languageIdentifierStyle >>= ident reserved :: MonadLanguage m => String -> m () reserved i = asksLanguage languageIdentifierStyle >>= \style -> reserve style i reservedByteString :: MonadLanguage m => ByteString -> m () reservedByteString i = asksLanguage languageIdentifierStyle >>= \style -> reserveByteString style i op :: MonadLanguage m => m ByteString op = asksLanguage languageOperatorStyle >>= ident reservedOp :: MonadLanguage m => String -> m () reservedOp i = asksLanguage languageOperatorStyle >>= \style -> reserve style i reservedOpByteString :: MonadLanguage m => ByteString -> m () reservedOpByteString i = asksLanguage languageOperatorStyle >>= \style -> reserveByteString style i