module Calculator.Parser.Base where -------------------------------------------------------------------------------- import Control.Applicative ((<$>)) import Control.Monad (liftM2) import Text.ParserCombinators.Parsec -------------------------------------------------------------------------------- parseNumber :: Parser Double parseNumber = read <$> do dec <- many1 digit flt <- option "" (liftM2 (:) (char '.') (many1 digit)) return $ dec ++ flt -------------------------------------------------------------------------------- parseId :: Parser String parseId = liftM2 (:) letter (many (letter <|> digit)) --------------------------------------------------------------------------------