calculator-0.1.3.0: src/Calculator/Prim/Base.hs
module Calculator.Prim.Base where
--------------------------------------------------------------------------------
import Text.ParserCombinators.Parsec
--------------------------------------------------------------------------------
import Control.Applicative ((<$>))
import Control.Monad (liftM2)
--------------------------------------------------------------------------------
type Number = Double
--------------------------------------------------------------------------------
parseNumber :: Parser Number
parseNumber = read <$> do
dec <- many1 digit
flt <- option "" (liftM2 (:) (char '.') (many1 digit))
if null flt
then return dec
else return $ dec ++ flt
--------------------------------------------------------------------------------
parseId :: Parser String
parseId = (liftM2 (:) letter (many (letter <|> digit)))
--------------------------------------------------------------------------------