Advise-me-0.1: src/Recognize/Data/StringLexerOptions.hs
-----------------------------------------------------------------------------
-- Copyright 2019, Advise-Me project team. This file is distributed under
-- the terms of the Apache License 2.0. For more information, see the files
-- "LICENSE.txt" and "NOTICE.txt", which are included in the distribution.
-----------------------------------------------------------------------------
-- |
-- Maintainer : bastiaan.heeren@ou.nl
-- Stability : provisional
-- Portability : portable (depends on ghc)
--
-----------------------------------------------------------------------------
module Recognize.Data.StringLexerOptions
( StringLexerOptions, stringLexerOptions
, variableWhitelist, replaceXByMultiplication
) where
import Data.Semigroup
-- | Parameters for "Recognize.Parsing.MathLexer"
data StringLexerOptions = Opts
{ variableWhitelist :: [String] -- ^ Almost all natural language is removed. If some words need to be seen as variables then add them here
, replaceXByMultiplication :: Bool
}
stringLexerOptions :: StringLexerOptions
stringLexerOptions = Opts
{ variableWhitelist = []
, replaceXByMultiplication = False
}
instance Semigroup StringLexerOptions where
x <> y = Opts
{ variableWhitelist = variableWhitelist x ++ variableWhitelist y
, replaceXByMultiplication = replaceXByMultiplication x || replaceXByMultiplication y
}
instance Monoid StringLexerOptions where
mempty = stringLexerOptions
mappend = (<>)