trifecta-0.47: Text/Trifecta/Language/Combinators.hs
-----------------------------------------------------------------------------
-- |
-- Module : Text.Trifecta.Language.Combinators
-- Copyright : (C) 2011 Edward Kmett
-- License : BSD-style (see the file LICENSE)
--
-- Maintainer : Edward Kmett <ekmett@gmail.com>
-- 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