packages feed

calculator 0.2.2.0 → 0.2.2.1

raw patch · 3 files changed

+42/−18 lines, 3 filesdep −mtl

Dependencies removed: mtl

Files

calculator.cabal view
@@ -1,5 +1,5 @@ name:                calculator-version:             0.2.2.0+version:             0.2.2.1 synopsis:            A calculator repl. description:         A calculator repl that processes mathematical expressions.                      Does basic arithmetic, and provides pre-defined basic mathematical functions.@@ -33,12 +33,11 @@                      , Calculator.Prim.Expr                      , Calculator.Prim.Function                      , Calculator.Prim.Statement+                     , Calculator.Color   -- other-extensions:    -  build-depends:       QuickCheck >= 2.7.6 && <2.7.7-                     , base >=4.7 && <4.8+  build-depends:       base >=4.7 && <4.8                      , containers >= 0.5.5.1 && <0.5.6.0                      , haskeline >=0.7.1.0 && <0.7.2.0-                     , mtl >= 2.2.1                      , parsec >=3.1.7 && <3.2   hs-source-dirs:      src/   ghc-options:         -Wall@@ -68,7 +67,6 @@   build-depends:       QuickCheck >= 2.7.6 && <2.7.7                      , base >=4.7 && <4.8                      , containers >= 0.5.5.1 && <0.5.6.0-                     , mtl >= 2.2.1                      , parsec >=3.1.7 && <3.2   ghc-options:         -Wall   default-language:    Haskell2010
+ src/Calculator/Color.hs view
@@ -0,0 +1,26 @@+module Calculator.Color+    ( Color (..)+    , color+    , bold+    ) where++--------------------------------------------------------------------------------++data Color = Black | Red     | Green | Yellow+           | Blue  | Magenta | Cyan  | White+           | Reset+           deriving Enum++--------------------------------------------------------------------------------++color :: Color -> Bool -> String -> String+color c b s = let col = show (fromEnum c)+                  bol = if b then "1" else "22"+              in "\ESC[" ++ bol ++ ";3" ++ col ++ "m" ++ s ++ "\ESC[0;m"++--------------------------------------------------------------------------------++bold :: String -> String+bold = color Reset True++--------------------------------------------------------------------------------
src/Calculator/Parser/Cmd.hs view
@@ -1,9 +1,9 @@ module Calculator.Parser.Cmd     ( parseCmd+    , parseAssignCmd     , parseAssign-    , parseAssign'+    , parseFuncCmd     , parseFunc-    , parseFunc'     ) where  --------------------------------------------------------------------------------@@ -30,8 +30,8 @@ parseCmd' = parseShow          <|> parseHelp          <|> parseReset-         <|> parseAssign-         <|> parseFunc+         <|> parseAssignCmd+         <|> parseFuncCmd  -------------------------------------------------------------------------------- -- help -> "?" | "help"@@ -52,13 +52,13 @@ parseReset = string "reset" >> spaces >> return Reset  ----------------------------------------------------------------------------------- assign -> "var" id "=" expr+-- assignCmd -> "var" id "=" expr -parseAssign :: Parser Cmd-parseAssign = string "var" >> space >> spaces >> parseAssign'+parseAssignCmd :: Parser Cmd+parseAssignCmd = string "var" >> space >> spaces >> parseAssign -parseAssign' :: Parser Cmd-parseAssign' = do+parseAssign :: Parser Cmd+parseAssign = do   str <- parseId   _   <- spaces   _   <- char '='@@ -69,11 +69,11 @@ -------------------------------------------------------------------------------- -- func  -> "func" id (args) "=" expr -parseFunc :: Parser Cmd-parseFunc = string "func" >> space >> spaces >> parseFunc'+parseFuncCmd :: Parser Cmd+parseFuncCmd = string "func" >> space >> spaces >> parseFunc -parseFunc' :: Parser Cmd-parseFunc' = do+parseFunc :: Parser Cmd+parseFunc = do   ident <- try (parseId <* (spaces >> char '(' >> spaces))   args  <- (parseId <* spaces) `sepBy` (char ',' <* spaces) <* char ')'   _     <- spaces >> char '=' <* spaces