{-# LANGUAGE CPP #-}
{-# LANGUAGE FlexibleContexts #-}
module Text.Heterocephalus.Parse.Option where
import Control.Monad.Reader (MonadReader, reader)
data ParseOptions = ParseOptions
{ parseOptionsControlPrefix :: Char
, parseOptionsVariablePrefix :: Char
}
defaultParseOptions :: ParseOptions
defaultParseOptions = createParseOptions '%' '#'
createParseOptions
:: Char
-> Char
-> ParseOptions
createParseOptions controlPrefix varPrefix = ParseOptions
{ parseOptionsControlPrefix = controlPrefix
, parseOptionsVariablePrefix = varPrefix
}
getControlPrefix :: MonadReader ParseOptions m => m Char
getControlPrefix = reader parseOptionsControlPrefix
getVariablePrefix :: MonadReader ParseOptions m => m Char
getVariablePrefix = reader parseOptionsVariablePrefix