module Recognize.Data.MathParserOptions
( MathParserOptions, mathParserOptions
, multByConcatenation, convertToLowercase, functionCallWhitelist
) where
import Data.Semigroup
data MathParserOptions = Opts
{ multByConcatenation :: Bool
, convertToLowercase :: Bool
, functionCallWhitelist :: [Char]
}
mathParserOptions :: MathParserOptions
mathParserOptions = Opts
{ multByConcatenation = True
, convertToLowercase = False
, functionCallWhitelist = []
}
instance Semigroup MathParserOptions where
x <> y = Opts
{ multByConcatenation = multByConcatenation x && multByConcatenation y
, convertToLowercase = convertToLowercase x || convertToLowercase y
, functionCallWhitelist = functionCallWhitelist x ++ functionCallWhitelist y
}
instance Monoid MathParserOptions where
mempty = mathParserOptions
mappend = (<>)